Sobre la materia#
Este curso tiene dos objetivos centrales: introducir a los estudiantes a la programación y exponerlos a los conceptos fundamentales del pensamiento computacional. En cuanto a programación, se introduce a los estudiantes a los elementos de la programación imperativa en Python. Esto incluye variables, expresiones, tipos datos básicos, funciones, tipos de datos estructurados, estructuras de control (condicionales y ciclos), testing, debugging, patrones de programación, entre otros. Los estudiantes también aprenderán las nociones elementales de la programación orientada a objetos, de forma tal de poder interactuar de manera práctica con librerías que utilicen clases y métodos. A medida que los estudiantes aprendan a utilizar las herramientas básicas de la programación, también serán expuestos y entrenados en los fundamentos del pensamiento computacional. Esto incluye la descomposición de problemas en unidades computables, abstracción y modularización de procesos computacionales en funciones de entrada-salida, representación de datos y relaciones mediante estructuras de datos y el pensamiento algorítmico. En cuanto a esto último, se introducirá a los estudiantes a los conceptos de algoritmo y complejidad algorítmica mediante el estudio de algoritmos clásicos de búsqueda, ordenamiento, inserción, etc. Al terminar el curso, los estudiantes podrán resolver de manera independiente problemas concretos de mediana complejidad mediante el diseño e implementación de programas computacionales.
Computational thinking is a kind of analytical thinking. It shares with mathematical thinking in the general ways in which we might approach solving a problem. It shares with engineering thinking in the general ways in which we might approach designing and evaluating a large, complex system that operates within the constraints of the real world. It shares with scientific thinking in the general ways in which we might approach understanding computability, intelligence, the mind and human behaviour.
Jeannette M. Wing, "Computational thinking and thinking about computing", Phil. Trans. R. Soc. A (2008)
Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer—human or machine—can effectively carry out.
Jeannette M. Wing, "Computational Thinking Benefits Society", Corporate Vice President, Microsoft Research, 2014.