De acuerdo a la carta al estudiante:
Los ejercicios de programación están agrupados en aproximadamente 14 temas. Cada estudiante podrá inventar 10 ejercicios durante el semestre y recibirá crédito por un 5% de la nota del curso. Cada ejercicio inventado debe tener el formato usado en la plataforma HackerRank y debe pertenecer a un tema distinto de los 14 disponibles. La creación de ejercicios correlaciona con una mayor comprensión de los conceptos de programación, de acuerdo a la literatura científica. Para crearlos, el estudiante debe prestar atención a los conceptos de programación involucrados en el tema, y puede tomar como ejemplo los ejercicios propuestos por el profesor y asistentes en la plataforma HackerRank. Los ejercicios inventados deben ser únicos entre estudiantes. Es decir, si dos o más estudiantes proponen el mismo ejercicio, se dará crédito sólo al primero en someterlo. El profesor servirá como el ente centralizador de los ejercicios inventados por estudiantes, y podrá ayudarles en el proceso de creación de los mismos durante las horas de consulta.
Para presentar los ejercicios inventados, descargue uno de los archivos comprimidos anteriores, acorde al lenguaje de programación que se va a usar para resolverlo. Luego siga estas instrucciones:
problem.es.md
para escribir el enunciado de su ejercicio en notación Markdown. Ubique el problema en un contexto: una situación hipotética pero realista que haga al ejercicio aplicado y más interesante. El enunciado del problema debe incluir un ejemplo de entrada que recibirán los programas que intenten resolverlo, y su correspondiente salida esperada.solution.c
o solution.cpp
acorde al lenguaje de programación (C ó C++ respectivamente).Makefile
provisto para compilar en línea de comandos (make solution
), o abrir el proyecto solution.pro
en QtCreator.problem.es.md
) en dos archivos: input01.txt
para la entrada y ouput01.txt
para la salida correspondiente.input02.txt
, output02.txt
) y (input03.txt
, output03.txt
). Piense en valores interesantes, extremos o inválidos a probar. Por ejemplo, un programa para encontrar números primos puede probarse con números negativos, cero, uno (que no es primo), y valores muy grandes que pueden hacer fallar por exceso de tiempo para una solución fuerza bruta../solution < input01.txt | diff output01.txt -
no debe producir salida.given.c
ó given.cpp
. Escriba en él el código fuente inicial que dispondrán las personas que resuelvan su ejercicio. Es un extracto de su solución (y por tanto, un extracto de solution.c
o solution.cpp
). Por ejemplo, puede proveer una función main()
completa y pedir a quienes resuelvan el reto escribir otras funciones faltantes. O bien, proveer varias funciones y que ellos tengan que implementar el main()
y otras funciones, o proveer una clase incompleta, o una clase que depende de otra que está ausente...7z
o zip
. No incluya en su comprimido, archivos generados a partir del código fuente, como código objeto/binario generado por el compilador. Es decir, su comprimido debería tener archivos fuente de C/C++, archivos de Markdown, casos de prueba en .txt
, Makefiles, y el proyecto de Qt (.pro
). Si usa la linea de comandos puede escribir make 7z
ó make zip
.1.5-validador_ajedrez.7z
". Los temas de los ejercicios se muestran abajo.Los ejercicios del curso están agrupados en secciones temáticas, y se listan a continuación.
Paradigma | Num | Tema |
---|---|---|
Programación procedimental Metaprogramación | 1.1 | Entrada y salida en C |
1.2 | Expresiones y condicionales | |
1.3 | Ciclos | |
1.4 | Subrutinas, arreglos y matrices | |
1.5 | Punteros, arreglos y matrices | |
1.6 | Cadenas de caracteres de C | |
1.7 | Registros (estructuras) | |
Programación orientada a objetos | 2.1 | Clases, objetos, atributos, métodos |
2.2. | Sobrecarga de operadores (clase String) | |
Programación genérica | 3.1 | Arreglo dinámico |
3.2 | Lista enlazada | |
3.3 | Árbol binario | |
Programación orientada a objetos | 4.1 | Herencia y polimorfismo |