¿Cómo puedo enseñar ciencias de la computación sin usar computadoras?

21

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?

Abhimanyu
fuente
13
La gente ha estado fascinada por las matemáticas durante miles de años. Nadie tenía acceso a una computadora digital en ese entonces. De hecho, generalmente en los cursos de teoría no necesitas computadoras en absoluto.
Juho
3
Me gustaría señalar que el primer programa de computadora fue escrito aproximadamente 100 años antes de que se construyera la primera computadora.
Gabe
2
Echa un vistazo a la teoría . Lo más probable es que esos tipos solo necesiten lápiz y papel, y puede que sea lo más avanzado en informática (no tengo idea de qué hablan la mayor parte del tiempo).
Trylks
1
Probablemente ayudaría si resaltara las áreas de CompSci que tiene la intención de cubrir. Cosas como matemáticas discretas e incluso estructuras de datos o algoritmos se pueden cubrir solo con lápiz y papel. La ingeniería de software, por otro lado, es probable que sea problemática.
NotMe
1
@abhimanyu Genial, la pregunta se "protegió" antes de que pudiera publicar mi respuesta; Lo puse aquí ahora: pastebin.com/6tbMtVM8 (Esta es una respuesta larga , ya que las posibilidades deberían ser obvias pero parecen no serlo. Hay muchas ideas allí y espero que encuentres algo útil ...)
nadie

Respuestas:

24

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!

David Richerby
fuente
11
¡+1 esta distinción entre CS y programación es clave! Mi curso de CS de pregrado tenía requisitos mínimos para usar una computadora, más allá de acceder al material de lectura en línea que fácilmente podría haber buscado en forma de árbol muerto en una biblioteca.
Cosmic Ossifrage
44
@CosmicOssifrage Estoy de acuerdo pero, aunque CS no está programando, la programación es una herramienta muy útil para que los informáticos tengan a su disposición. Y es por eso que lo enseñamos.
David Richerby
2
@Abhimanyu Eso dependería de tu propia calificación. Si tiene el conocimiento y las habilidades, están a solo un pizarrón de las mentes de sus alumnos.
Raphael
2
@vzn No, una gran parte de la programación es aprender el arte de la depuración. Es muy importante. Pero no es informática .
David Richerby
2
@vzn Si cita al hombre, hágalo bien. Está hablando de experimentos de tiempo de ejecución con el propósito de verificar / refutar hipótesis (científicas), no de depuración. No creo que Sedgewick afirme que probar / depurar sus implementaciones experimentales era ciencia .
Raphael
10

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:

Casi todos los artículos de esta serie que aparecen después de 1972 están escritos a mano. Habiendo inventado gran parte de la tecnología del software, Dijkstra evitó el uso de computadoras en su propio trabajo durante muchas décadas. Incluso después de sucumbir al estímulo de sus colegas de UT y adquirir una computadora Macintosh, la usó solo para correo electrónico y para navegar por la World Wide Web.

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 .

Finn Årup Nielsen
fuente
¿Algún consejo sobre cómo hacer esto de manera efectiva? Es posible que el maestro no haya tenido los beneficios de una conferencia de tiza en una gran universidad.
Raphael
3
Mucha matemática se enseña con tiza blackboarded. Supongo que simplemente haces lo mismo con la informática.
Finn Årup Nielsen
A modo de ejemplo, aquí hay una buena conferencia de pizarra sobre splay trees: youtube.com/watch?v=So8szqIvIFs
Finn Årup Nielsen
2
Personalmente, apliqué mis conocimientos de algoritmos y estructuras de datos al trabajo de oficina en un trabajo de verano. Utilicé una clasificación de radix en cajas de talones de cheques y fui entre uno y dos órdenes de magnitud más rápido que cualquier otra persona que hizo esa tarea, hasta el punto de la incredulidad. Utilicé un tipo de fusión natural en tarjetas impresas que debían archivarse. Las estructuras de datos y la computación existen en el mundo real .
JDługosz
8

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.

Dave Clarke
fuente
55
Esto me parece ser más un comentario.
Raphael
7

Ver http://csunplugged.org/ para algunas ideas geniales. Google es uno de los patrocinadores.

Desde el sitio:

CS Unplugged es una colección de actividades de aprendizaje gratuitas que enseñan Ciencias de la Computación a través de juegos y acertijos atractivos que usan tarjetas, cuerdas, crayones y muchos juegos.

Las actividades presentan a los estudiantes conceptos subyacentes como números binarios, algoritmos y compresión de datos, separados de las distracciones y detalles técnicos que generalmente vemos con las computadoras.

CS Unplugged es adecuado para personas de todas las edades, desde la escuela primaria hasta la tercera edad, y de muchos países y entornos. ¡Desenchufado se ha utilizado en todo el mundo durante más de veinte años, en aulas, centros de ciencias, hogares e incluso para eventos festivos en un parque!

cdjc
fuente
Las condiciones son complejas, pero vale la pena intentarlo cuando los recursos lo permitan.
Abhimanyu
Estoy de acuerdo en que esto se ve bien, pero para que sea una respuesta adecuada, debe abordar los problemas específicos planteados en la pregunta: ¿qué recursos se necesitan? ¿Podemos esperar tenerlos, por ejemplo, en África (rural)?
Rafael
3

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

-Algorithms can be written on pen and paper, and traced on pen and paper.
-Flow charts are written on paper.

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

Una minoría sustancial de estudiantes falla en cada curso introductorio de programación en todas las universidades del Reino Unido. A pesar del heroico esfuerzo académico, la proporción ha aumentado en lugar de disminuir con los años. A pesar de una gran cantidad de investigación sobre los métodos de enseñanza y las respuestas de los estudiantes, no tenemos idea de la causa.

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.

barlop
fuente
2
¿Qué diablos son "wollies"?
Nate Eldredge
1
@NateEldredge Urban dictionary : «Término jovial para alguien que dice o hace algo tonto / Alguien que suma 2 y 2 y obtiene 5." Qué tonto "»
Paul A. Clayton
@NateEldredge Normalmente se escribe "wally".
David Richerby
2
Regañar al OP no es una respuesta.
Rafael
2

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.

Blackhawk
fuente
1
Usted parece confundir la programación (la nave) con el ordenador de la ciencia .
Raphael
@Raphael Entiendo que la mecánica de la programación en un lenguaje en particular puede no ser importante para la parte de la ciencia , pero ¿cuánto puede realmente separar la informática de la programación antes de que sea tan teórica que sea incomprensible para los estudiantes que posiblemente no estén familiarizados? ¿Cómo operar una computadora? Podría alterar mi respuesta para separar los dos, pero la imagen que me viene a la mente basada en las preguntas del OP no son adultos que buscan aprender sobre el fundamento matemático de la teoría de la complejidad, sino estudiantes de primaria que necesitan una introducción a las aplicaciones de CS.
Blackhawk
@DavidRicherby Le he pedido al OP que me aclare quién (edad / experiencia con las computadoras) será el grupo objetivo de estudiantes y qué material tiene la intención de enseñar. Ajustaré mi respuesta en consecuencia. Si puedo, sugeriría que una analogía más directa sería la escritura creativa frente a saber usar alfabetos y vocabularios. Excepto que incluso esa analogía se queda corta porque el estudio de los lenguajes de programación en realidad está abarcado por la informática.
Blackhawk
@Blackhawk Por supuesto, ninguna analogía es perfecta (casi por definición). Pero, si bien el diseño de los lenguajes de programación es CS, simplemente usarlos no lo es.
David Richerby
1
@DavidRicherby Acabo de leer la página del recorrido para CS y específicamente el "preguntar por ..." y "NO preguntar por ..." y tengo la impresión de que demasiadas personas hacen / responden preguntas en este sitio que sería mucho mejor en SO ... así que me disculpo si he contribuido a eso. ¿Puede señalarme las cosas específicas que podría cambiar sobre esta respuesta para alinearla con los objetivos del sitio? Sospecho que debería, como mínimo, eliminar las referencias a "punto y coma" y "C ++", pero ¿qué pasa con el uso de Karel ++ como herramienta de enseñanza para el concepto de lenguajes orientados a objetos? O memoria de la computadora?
Blackhawk
2

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 :)

gbjbaanb
fuente
1

Preguntar cómo puedes estudiar informática sin computadoras es como preguntar cómo puedes estudiar cosmología sin telescopios.

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

Preguntar cómo puedes estudiar ciencias de la computación sin computadoras es como preguntar cómo puedes estudiar cosmología sin un cosmos .

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.

¿Como si estuviera enseñando a estudiantes en África que no tienen conocimiento de una computadora además del conocimiento de nivel general pero que aspiran a aprender informática avanzada y dedicar la mayor parte de su tiempo a este pasatiempo?

Depende del presupuesto:

  • Casi sin presupuesto Si tiene el dinero para viajar a África, tome un montón de clones arduino (hay clones arduino funcionales por $ 13, consulte esta lista, por ejemplo ), algunos componentes de salida (como LED) y una computadora portátil. Comience con una programación básica, enséñeles en papel y tenga que ingresarlos en la computadora portátil. No es la forma más eficiente, pero les enseñará al menos una comprensión básica básica de lo que las computadoras son prácticamente.
  • Presupuesto bajo Compre $ 750 dólares en $ 50 teléfonos inteligentes y teclados Android (teclados microusb o teclados bluetooth, consulte ebay.com o aliexpress.com tanto para teléfonos inteligentes como para teclados). Sí, son horribles de un millón de maneras, ni siquiera me lo cuentes. Sin embargo, puede ingresar datos en ellos (aunque ni siquiera considere usar los teclados en pantalla) y hay aplicaciones de codificación simples para Android. Tener varios estudiantes por teléfono inteligente y eso puede funcionar bastante bien.

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.

David Mulder
fuente
No he entendido bien tu desacuerdo con mi respuesta o no estoy de acuerdo con ella. Si supiéramos que no hay cosmos, la cosmología sería una fabricación total. Si realmente creyéramos en la existencia del cosmos, la cosmología sería en el peor de los casos un desperdicio de recursos bien intencionado. Pero, en realidad, sabemos que existe. La cosmología sin telescopios dice: "Oye, no puedo observar el cosmos esta semana, pero definitivamente está allí. Puedo aprenderlo ahora y verlo la próxima semana". CS sin computadoras dice: "Oye, las computadoras definitivamente existen para poder estudiarlas ahora y experimentarlas físicamente más tarde".
David Richerby
Y enseñarle a alguien ciencias de la computación sin que ellos hayan usado o prácticamente entendido qué es una computadora es tan inventado. No interactúas directamente con el cosmos a través de un telescopio, es solo una de las muchas formas de observarlo. Por la noche todavía se puede ver y se puede entender fácilmente a un nivel básico. Lo mismo simplemente no se aplica a las computadoras.
David Mulder
Estoy completamente en desacuerdo con que es una invención enseñar a alguien acerca de algo que realmente existe pero que no ha experimentado.
David Richerby
2
@DavidRicherby: Usted y otros aquí están tan arraigados con el uso de las computadoras que es difícil comprender lo que realmente significa intentar enseñar a alguien la informática sin una base con las computadoras en primer lugar ... Conozco a alguien que realmente ha dado cursos. a los jóvenes que nunca usaron computadoras con computadoras reales ... ni siquiera intentó enseñar programación o ciencias de la computación y simplemente llegar al nivel básico de comprensión de lo que es una computadora es una tarea propia si no creciste con computadoras. (continuación)
David Mulder
2
Hoy en día es relativamente más fácil ya que más jóvenes tienen al menos algo de experiencia, pero la pregunta era sobre aquellos casos en los que no tienen ninguna experiencia. Ese mismo individuo me contó cómo en el país donde enseñaba hubo un período en el que los estudiantes de secundaria llegarían a cursos de informática en la universidad sin haber tocado una computadora antes ... habiendo aprendido algo de teoría en la escuela secundaria y cómo La mayoría (de lejos, no todos) los casos que terminan mal. El problema / idea es que los trabajos informáticos pagan bien, por lo que solo quieren obtenerlos sin importar qué ...
David Mulder
1

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).

  1. Las construcciones de bucle (por ejemplo, for, while, etc.) parecen difíciles.
  2. Asignación vs prueba de igualdad, también parece difícil.

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.

Nikos M.
fuente
-1

¿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í.

Ricky
fuente
Definitivamente iría con pseudocódigo en lugar de diagramas de flujo.
David Richerby
Esta pregunta merece más de un punto de datos de experiencia por respuesta.
Rafael
-2

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.

liko
fuente
Esto no agrega nada sobre las respuestas existentes.
Rafael
1
@Raphael True, aunque tenga en cuenta que las otras respuestas que mencionan dispositivos informáticos baratos se publicaron después de esta.
David Richerby
-3

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.

vzn
fuente
2
Sospecho que las personas que no tienen acceso a computadoras tampoco tienen acceso a Lego Mindstorms, sistemas de juegos de consola, teléfonos inteligentes o wifi.
David Richerby
un punto justo / obvio / anticipado, pero nada de lo mencionado se excluyó explícitamente en los criterios de la pregunta. no se sabe por la pregunta si los estudiantes no tienen cosas porque es, por ejemplo, costoso, y todo lo mencionado anteriormente es más barato que las computadoras de escritorio como punto de referencia. los estudiantes o las escuelas que pueden pagar los libros de texto podrían pagar lo anterior (tal vez compartirlo). y si los libros de texto no son asequibles, ¿qué más queda?
vzn
(el alcance de su pregunta se modificó significativamente por el mod desde que se escribió esta respuesta, para mí esa edición de preguntas hace suposiciones importantes no nec intencionadas por el escritor original y prefieren la ambigüedad original como una característica, no un error)
vzn