¡Bienvenido a INE018, el curso introductorio de programación! Aquí aprenderemos a pensar computacionalmente y resolver problemas con el lenguaje de programación C++. Además, exploraremos algunas técnicas de programación, abstracciones y estructuras de datos clásicas para adquirir práctica con estas herramientas y enfrentarnos a problemas más complejos.
Tras completar INE018, esperamos que hayas alcanzado los siguientes objetivos de aprendizaje:
- Quiero usar la programación para resolver problemas del mundo real fuera del salón de clases.
- Puedo identificar conceptos de programación y abstracciones computacionales en las tecnologías que uso en mi día a día pues entiendo cómo funciona la computadora.
- Puedo evaluar las ventajas y desventajas del diseño de una solución cuando creamos una estructura de datos o utilizamos un determinado algoritmo.
- Estoy en una posición en la cual puedo competentemente formar parte de un proyecto de investigación, emprendimiento, empleo o curso con componentes de programación.
La página principal de INE018 es donde te encuentras ahora mismo. Aquí tienes un resumen rápido de nuestras herramientas:
- Nuestra página web del curso se encuentra en el repositorio ine-018-unmsm en GitHub. Aquí encontrarás toda la información del curso, incluyendo material de clases, enlaces, soluciones, etc.
- Para resolver las listas de ejercicios, utilizarás Virtual Judge, donde recibirás retroalimentación inmediata, ya que evalúa tus soluciones de manera automatizada.
- Utilizamos Discord como nuestro foro de preguntas y respuestas, medio de comunicación y plataforma para anunciar asesorías.
- Deberás descargar, instalar y configurar Visual Studio Code y aprender a utilizar GitHub Desktop para completar las tareas.
- Encontrarás útil utilizar Markdown, LaTeX y Mermaid para contribuir al repositorio.
Este curso está dirigido a estudiantes con poca o ninguna experiencia en programación. Solo se requiere conocimiento básico de la escuela secundaria.
Nuestras clases se llevan a cabo durante cuatro horas a la semana en los laboratorios de informática. Es fundamental mantener el ritmo con las clases en lugar de acumularlas y resolver todos los ejercicios de una vez (eso funciona muy bien para las series de Netflix, pero no es ideal para el aprendizaje). Para motivarte, hemos reservado el 5% de tu calificación para la participación en clases de una manera que solo puede ayudar y no perjudicar tu calificación.
No es necesaria, ya que todo se aprenderá en clase. Sin embargo, no estaría de más revisar los siguientes recursos: la documentación de C++ en cppreference y algunos papers relevantes. En el cronograma se han especificado los enlaces correspondientes para cada clase. Además, se recomiendan tres libros para este curso: Programming: Principles and Practices Using C++, Third Edition de Bjarne Stroustrup. The C++ Programming Language, Fourth Edition de Bjarne Stroustrup, e Introduction to Algorithms, Fourth Edition de Cormen, Leiserson, Rivest y Stein.
Las notas finales del curso serán determinadas usando los siguientes pesos:
- 40% Listas de ejercicios
- 20% Examen parcial
- 20% Examen final
- 15% Tareas
- 5% Participación
clases
- contiene las notas de clase y el código desarrollado durante estas.ejercicios
- contiene las soluciones de las listas de ejercicios del curso.examenes
- contiene los enunciados y soluciones de los exámenes parciales y finales del curso.tareas
- contiene los enunciados de las tareas del curso.
El nombre del curso podría inducir a confusión, ya que podría implicar que su contenido abarca alguno de los siguientes campos:
- Matemática Discreta: combinatoria, teoría de números, teoría de la computación.
- Computación Científica: ajuste de datos, álgebra lineal numérica, cálculo numérico, optimización, métodos iterativos.
De conformidad con la resolución decanal 000040-2022-D-FIEE/UNMSM, el curso Matemática Computacional impartido en el primer ciclo comprende lo siguiente:
La asignatura corresponde al área de formación de estudios generales, es obligatoria y de naturaleza práctica. La asignatura tiene por finalidad desarrollar las capacidades para comprender estructuras de datos y algoritmos, y usar un lenguaje de programación imperativo para la solución de un problema de ingeniería: formulación, especificación, diseño, implantación, prueba, documentación y evaluación.