En algunos lugares del mundo, las personas generalmente no tienen acceso a (y por lo tanto poco conocimiento de) computadoras, e incluso si lo tienen, el hardware y el software están desactualizados y el uso está plagado de cortes de energía y demás. También suele faltar el acceso a libros (buenos). ¿Cómo puedo enseñar informática en tales circunstancias?
Me preocupa que sin poder hacer experimentos y aplicar lo que aprenden, no aprenderán (bien) a pesar de estar increíblemente motivados y dedicar la mayor parte de su tiempo a este pasatiempo. ¿Es posible enseñar CS solo teóricamente?
Respuestas:
Preguntar cómo puedes estudiar informática sin computadoras es como preguntar cómo puedes estudiar cosmología sin telescopios. Claro, es bueno poder ver las cosas que estás estudiando y, a menudo, es muy útil poder jugar con las cosas. Pero hay muchas cosas que puede hacer sin acceso a una computadora: en extremo , probablemente podría hacer casi todo un curso de pregrado sin computadoras.
En términos prácticos, el acceso a las computadoras ayuda a reforzar mucho de lo que aprende en un curso de informática. Los cursos de programación son, obviamente, mucho más naturales con acceso a una computadora. Por otro lado, verse obligado a escribir código en papel alienta a las personas a pensar en su código y asegurarse de que realmente funciona, en lugar de simplemente ejecutarlo a través de un compilador una y otra vez hasta que se compila y luego ejecuta casos de prueba triviales una y otra vez hasta que desaparezcan los errores obvios.
Los temas que serían más naturales sin las computadoras serían los más matemáticos. Todas las matemáticas de fondo, como la combinatoria y la probabilidad. Computabilidad, lenguajes formales, lógica, teoría de la complejidad, diseño y análisis de algoritmos, teoría de la información y la codificación. ¡Cualquier cosa que ver con la computación cuántica!
fuente
Existe el uso obvio de papel y lápiz. Cuando me enseñaron el procesamiento de señales, el procesador especial de señales no estaba directamente disponible para nosotros y solo entregamos informes en papel.
Tenga en cuenta que el gran científico informático Dijkstra aparentemente no usaba mucho las computadoras:
Citado del Memorial de Disjkstra
¡Esto demuestra que puedes hacer una gran informática sin una computadora!
Además de los problemas informáticos de papel y lápiz, también se pueden resolver 'en el mundo real', por ejemplo, la demostración de algoritmos de clasificación con tarjetas o, lo que es más inusual, con el baile realizado por la Universidad Sapientia .
fuente
Muchas teorías de la informática son puramente teóricas y pueden resolverse usando lápiz (cil) y papel. Obtener información sobre ellos y comunicarlos al mundo exterior requiere una computadora.
fuente
Ver http://csunplugged.org/ para algunas ideas geniales. Google es uno de los patrocinadores.
Desde el sitio:
fuente
Puedes, es bastante obvio cómo lo harías. No estoy seguro de lo útil que sería para las personas, pero tú puedes.
Pero ni siquiera sé cómo sería un profesor de ciencias de la computación, puedo preguntar cómo puedes enseñar ciencias de la computación sin una computadora.
Porque si puedes enseñar informática, entonces sabrías cómo.
Si sabes eso
Estudiar la normalización, la estructura de tablas de datos para bases de datos, se puede hacer en papel y lápiz. (Solo hice eso con lápiz y papel cuando estudié bases de datos relacionales)
Los libros de texto de informática no requieren una computadora.
Si alguna vez tomaste un libro de texto de ciencias de la computación y lo estudiaste en una biblioteca, sabrías que no necesitas una computadora para entenderlo.
Pero debe tener en cuenta que cualquiera que se haya sentado en una clase de ciencias de la computación puede ver que la mayoría de la gente no puede programar, está más allá de ellos. Demasiado abstracto para las personas. Eso es incluso cierto a nivel universitario.
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
Añadiría que llamarlo una minoría sustancial es una subestimación. Es una pequeña minoría la que puede programar.
Sin embargo, señalaría la causa de la disminución que presenció. A medida que las computadoras se hicieron más populares, por ejemplo, entre 2000 y 2010 (escribió que a mediados de esa década), más wollies estaban interesados en estudiar 'informática'. Antes de eso, solo las personas más fanáticas estaban interesadas. Y antes, el uso de computadoras era más técnico, pero a medida que las computadoras eran más fáciles de usar para la persona promedio y más poderosas en las aplicaciones que podían ejecutar, más wollies las usaban y más personas que solo estaban interesadas en lo que podían hacer. en lugar de cómo lo hacen y cómo hacerlo.
fuente
Sería posible enseñar los conceptos de informática sin una computadora. Por supuesto, sin acceso a una computadora, ¿de qué sirve realmente aprender Ciencias de la Computación?
Cuando estaba aprendiendo Ciencias de la Computación en la escuela secundaria, nuestras primeras clases no incluían computadoras en absoluto. En cambio, trabajamos en un libro llamado Karel ++ , que enseñaba conceptos orientados a objetos. El lenguaje inventado se puede "ejecutar" en una pizarra o pizarra con bastante facilidad porque todo el código realiza acciones en un gráfico. Nuestras primeras tareas fueron todas escritas a mano y el profesor demostraría la solución correcta en la pizarra al comienzo de la próxima clase.
Cuando comenzamos a discutir algoritmos, nuestro profesor nos llamó a todos al frente de la sala y nos dijo que nos pusiéramos en fila. Procedió a demostrar algunos algoritmos de clasificación diferentes: comenzando con algo tonto que llamó "clasificación de mono", donde intercambiaba aleatoriamente a dos de nosotros y luego verificaba si estábamos ordenados en cada iteración, pero luego realizaba la clasificación de burbujas y la clasificación de conchas , por "corriendo" sobre nosotros.
Dibujó diagramas en la pizarra, explicando los conceptos básicos de cómo funcionan la memoria de la computadora y la pila. Mostró variables y punteros (era una clase de C ++) y de allí a listas y árboles vinculados ...
Probablemente podría agregar a esto si repasara las notas que guardé de esa clase, pero eso es todo lo que recuerdo ahora. Si estas sugerencias son interesantes, puedo ampliar esta respuesta.
fuente
Estudié informática y pensé que nos habían enseñado mucha programación (en varios idiomas), también nos enseñaron muchos aspectos matemáticos (y también algunos de hardware).
Las partes de matemáticas fueron más importantes para el primer año: piense en las matemáticas de matriz que son esenciales para los gráficos en 3D (¿cómo calcula una superficie normal para iluminar un vértice? ). Hicimos muchas estadísticas: piense en el análisis del rendimiento del trabajo, ¿qué tasa de trabajos puede pasar a un sistema antes de que se obstruya? Eso es bastante importante para muchos sistemas centralizados y redes.
Puede enseñar muchos algoritmos, uno de los carteles aquí mencionados les da a los estudiantes un número cada uno y luego hacer que se clasifiquen usando varios algoritmos (que es activo e informativo). De hecho, cualquier algoritmo que se pueda describir en una imagen animada en Internet se puede enseñar de esta manera. Del mismo modo, los fundamentos de la informática: contador de programa, acumulador y registrospuede enseñarse de la misma manera o en papel. ¿Qué hay de los subprocesos múltiples basados en los estudiantes? Establezca un grupo de estudiantes con un juego de cartas con una pila entre cada uno de ellos en un ejercicio clásico de subprocesos múltiples (o el problema de 1 cuchara compartida). O patrones de diseño, puedo pensar que la arquitectura de pizarra es perfecta para que los estudiantes aprendan cómo se puede implementar la comunicación multiproceso, o una arquitectura de n niveles descrita como una especie de juego de susurros chinos o máquinas de estado finito sería adecuada para los estudiantes que actúan como módulos en una 'computadora viva'. Podría enseñar matemática binaria o ejecución basada en pila (es decir, pulido inverso).
Por supuesto, si tiene acceso a la electrónica, podría construir una computadora analógica con amplificadores operacionales. Son geniales.
Desafortunadamente, todo esto se parecerá más a las matemáticas que a la informática, pero gran parte se mantendrá y algún día entenderán por qué se les enseñó (suponiendo que entren en la industria de la informática). Recuerda que cualquier cosa que una computadora pueda hacer, una persona puede hacerlo: solo le tomará mucho más tiempo y aburrimiento lograr el mismo resultado. Solo tiene que tomar ejemplos simples para demostrar lo que haría la computadora y la imaginación para describir los fundamentos de la computación de una manera menos seca que me enseñaron hace mucho tiempo :)
fuente
Principalmente estoy respondiendo solo para reaccionar a esta afirmación y porque estoy totalmente en desacuerdo con otras respuestas. La comparación correcta sería en mi opinión
La informática se trata de computadoras, no solo de usarlas. Es cierto que gran parte de la informática se basa en las matemáticas, por lo que las partes matemáticas pueden estudiarse sin computadoras (por lo tanto, está enseñando matemáticas), al igual que en lugar de la cosmología, puede estudiar física, lo que será útil una vez que haya un cosmos (o tener acceso a telescopios), pero al final lo que estás estudiando sigue siendo física.
Ahora, lo que todo el mundo está haciendo en las respuestas aquí es observar cómo la informática a nivel de licenciatura es en su mayoría teórica y no requiere computadoras, lo que esas personas están IMHO olvidando es que las mismas personas han usado computadoras ampliamente hasta ese momento. Sin una comprensión natural, profundizar directamente en las cosas teóricas solo hará que muchos estudiantes se den por vencidos o tengan una visión terriblemente desigual de la informática. Así que enseñe algo de programación, comprenda qué son las computadoras primero y solo luego entre en lo teórico.
Depende del presupuesto:
Entonces, déjenme ser claro, no estoy diciendo que la informática no se pueda enseñar sin computadoras, solo que necesitan estar acostumbrados a las computadoras y conocerlas bastante bien antes de comenzar a considerar tal cosa.
fuente
La informática se trata de algoritmos y no (estrictamente) sobre computadoras (y electrónica).
Como tal, el estudio de algoritmos (incluso de aritmética elemental) puede lograr la comprensión de la informática y la programación. Recuerde que incluso el término "algoritmo" es una paráfrasis del autor de un libro de aritmética ( al-Khwārizmī , alrededor del siglo noveno. CE).
El estudio de algoritmos se puede hacer utilizando medios elementales, pero debe proporcionar una cobertura de por qué funciona el algoritmo, cómo surgió y cómo se puede demostrar que funciona correctamente.
La historia detrás de la evolución de la informática y los algoritmos y la programación no debe subestimarse. Por ejemplo, la calculadora de Babbage / Ada, la máquina Enigma, el plankalkul de Konrad Zuse , ENIAC, etc.
Entonces uno puede introducir programación (y lenguajes de programación) como una forma de formalizar algoritmos. Esto también se puede hacer (en gran medida) utilizando medios elementales.
Tenga en cuenta que algunos estudios han demostrado que la programación de aprendizaje personal tiene dos dificultades principales en la comprensión (relacionada con la sobrecarga de símbolos, por ejemplo, la tarea de prueba de igualdad vs tarea y la operación de una máquina RAM).
Por lo tanto, uno puede asegurarse de que la gente los comprenda y comprenda claramente.
Además, si se puede acceder a cualquier computadora (incluso una calculadora que se puede programar), esto se puede usar para proporcionar ejemplos de aplicaciones y experiencia práctica. De lo contrario, se puede usar una computadora simulada. Esto se puede hacer de varias maneras, por ejemplo, un grupo de personas puede simular partes de una computadora y la clase puede diseñar algoritmos para resolver varios problemas para esta computadora simulada y ver cómo funciona. Esto puede verse como un juego también, ser creativo y hacer cosas.
Luego, se pueden introducir algunos modelos de cómputo (abstractos) (por ejemplo, Máquinas de Turing ) y relacionarlos con el material anterior sobre algoritmos y la formación en un lenguaje (de programación).
Si se quiere introducir la electrónica de una computadora real, esto se puede hacer también en dos partes.
Recuerde que incluso en las universidades, algunos cursos de electrónica y arquitectura de computadoras son teóricos (uno no entra en contacto con una CPU o una de diseño).
Por lo tanto, se pueden introducir algunos principios de funcionamiento de la electrónica (y la física subyacente) relacionados con la arquitectura de la computadora ( semiconductores , zonas de energía de estado sólido, puertas p-np, etc.).
Luego, se puede aprovechar el material anterior sobre programación y algoritmos e introducir técnicas (modernas) de diseño de CPU (y descripción) que se utilizan en la industria ( puertas lógicas , flip-flops , FPGA , VHDL , circuitos CMOS , etc.).
Esto puede llevarse más allá en cuestiones de arquitectura de diseño de CPU como paralelismo, canalización, memoria caché, direccionamiento de vectores, microprogramación, DMA, etc.
Bueno, bueno, tal vez esto puede ser demasiado, pero agregado para hacer que la respuesta sea autónoma.
fuente
¿Estás buscando enseñar programación?
Cuando era niño, nos fuimos de vacaciones de campamento y me llevé el manual de la computadora. Pude escribir un juego simple con lápiz y papel.
Supongo que este fue mi primer programa real, por lo que tuve que aprender mucho. Sabía lo que quería hacer, pero hubo muchos comienzos falsos mientras lo descubría. Pero finalmente pude escribir todo el código.
Supongo que lo que digo es comenzar con pseudocódigo y \ o diagramas de flujo para planificar el proyecto y luego traducirlo a código. Pude depurar una gran parte de mi código con solo leerlo. También puede usar revisiones por pares aquí.
fuente
Para hacer eco a las respuestas anteriores: hay mucho que aprender simplemente leyendo y haciendo ejercicios con lápiz y papel. Si puede resolver el problema en papel, tiene la parte difícil. Sin embargo, también deseo mencionar la existencia de formas bastante baratas de exponer a los estudiantes a CS. ¿Conoces el proyecto Raspberry Pi ? Incluso si varias personas tienen que compartir o si solo puede darse el lujo de obtener 1 o 2 unidades, podría valer la pena considerarlo como una forma de exponer a sus estudiantes a la tecnología.
fuente
voy a intentar moverme un poco en esto y "pensar fuera de la caja". Las computadoras completas son realmente caras, a veces requieren recursos y son difíciles de mantener. pero hay muchos sistemas electrónicos de bajo costo que imitan a las computadoras completas, por ejemplo, con pantallas LCD, etc., y que pueden aplicarse muchos principios básicos de programación, muchos funcionan con batería. También existe una estrecha conexión entre los principios de EE y la informática, como la construcción de circuitos lógicos binarios, etc .; También hoy en día algunos juguetes tienen capacidades de programación.
calculadoras programables . algunos tienen lenguajes de programación completos (no tan de alto nivel pero más como lenguajes de ensamblaje) integrados en ellos. algunos apoyarían programas avanzados.
El miniordenador / microcontrolador Raspberry pi fue desarrollado para este propósito y funciona con Linux. menos de $ 40 en muchos casos.
El microcontrolador del kit parallax STAMP requiere una conexión USB, pero tal vez un Raspberry pi sea suficiente. ver también microcontrolador PIC
sistemas de robótica. Hay muchos de bajo costo que tienen una lógica programable. Lego robotics mindstorms / nxt es uno de los mejores y hay modelos menos costosos.
Algunos juegos de consola tienen principios de programación incorporados. por ejemplo, Little Big Planet tiene increíbles funciones de programación integradas. Hay algunas versiones portátiles de juegos programables. Hay muchos videos de YouTube de construcciones complejas para inspirarse.
Los teléfonos inteligentes son el nuevo mundo de programación. tienen navegadores que ejecutan javascript, y hay muchas aplicaciones relacionadas con la programación, e incluso se puede navegar por sitios de programación con conexión a Internet (incluido wifi).
sugiera también, como en los comentarios, la creación de programas de MT, por ejemplo, para agregarlos, etc., e intentar seguirlos a mano.
fuente