Silabo de Programacion de Videojuegos UCSP
Silabo de Programacion de Videojuegos UCSP
Silabo de Programacion de Videojuegos UCSP
Escuela Profesional de
Ciencia de la Computación
SILABO
2. DOCENTE
Mag. Marc-Antoine Le Guen
4. SUMILLA
1. Historia2. Sistemas de tipos básicos3. Conceptos Fundamentales de Programación4. Análisis Básico5. Algoritmos y
Estructuras de Datos fundamentales6. Algoritmos y Diseño7. Programación orientada a objetos8. Métodos de Desarrollo
5. OBJETIVO GENERAL
1
6. CONTRIBUCIÓN A LA FORMACIÓN PROFESIONAL Y FORMACIÓN GENERAL
Esta disciplina contribuye al logro de los siguientes resultados de la carrera:
a) Aplicar conocimientos de computación y de matemáticas apropiadas para la disciplina. (Usar)
b) Analizar problemas e identificar y definir los requerimientos computacionales apropiados para su solución. (Usar)
c) Diseñar, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las
necesidades deseadas. (Usar)
i) Utilizar técnicas y herramientas actuales necesarias para la práctica de la computación. (Usar)
k) Aplicar los principios de desarrollo y diseño en la construcción de sistemas de software de complejidad variable.
(Familiarizarse)
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas utilizando el pensa-
miento computacional.⇒ Outcome b
8. CONTENIDOS
UNIDAD 1: Historia(5)
Competencias: C4
CONTENIDO OBJETIVO GENERAL
2
UNIDAD 2: Sistemas de tipos básicos(2)
Competencias: C1
CONTENIDO OBJETIVO GENERAL
Tipos como conjunto de valores junto con un con- Tanto para tipo primitivo y un tipo compuesto, des-
junto de operaciones. cribir de manera informal los valores que tiene dicho
tipo[Familiarizarse]
• Tipos primitivos (p.e. numeros, booleanos)
• Composición de tipos construidos de otros tipos Para un lenguaje con sistema de tipos estático, des-
(p.e., registros, uniones, arreglos, listas, funcio- cribir las operaciones que están prohibidas de forma
nes, referencias) estática, como pasar el tipo incorrecto de valor a una
función o método[Familiarizarse]
Asociación de tipos de variables, argumentos, resul-
tados y campos. Describir ejemplos de errores de programa detecta-
das por un sistema de tipos[Familiarizarse]
Tipo de seguridad y los errores causados ??por el uso
de valores de manera incompatible dadas sus tipos Para múltiples lenguajes de programación, identifi-
previstos. car propiedades de un programa con verificación es-
tática y propiedades de un programa con verificación
dinámica[Usar]
Usar tipos y mensajes de error de tipos para escribir
y depurar programas[Usar]
Definir y usar piezas de programas (tales como, fun-
ciones, clases, métodos) que usan tipos genéricos, in-
cluyendo para colecciones[Usar]
3
UNIDAD 3: Conceptos Fundamentales de Programación(9)
Competencias: C1
CONTENIDO OBJETIVO GENERAL
Estructuras de control condicional e iterativas. Escribe programas que usan tipos de datos primiti-
vos[Usar]
Paso de funciones y parámetros.
Modifica y expande programas cortos que usen es-
Concepto de recursividad. tructuras de control condicionales e iterativas ası́ co-
mo funciones[Usar]
4
UNIDAD 4: Análisis Básico(2)
Competencias: C1,C5
CONTENIDO OBJETIVO GENERAL
Diferencias entre el mejor, el esperado y el peor caso Explique a que se refiere con “mejor”, “esperado”
de un algoritmo. y “peor” caso de comportamiento de un algorit-
mo[Familiarizarse]
Definición formal de la Notación Big O.
En el contexto de a algoritmos especı́ficos, identifi-
Clases de complejidad como constante, logarı́tmica, que las caracterı́sticas de data y/o otras condiciones
lineal, cuadrática y exponencial. o suposiciones que lleven a diferentes comportamien-
Uso de la notación Big O. tos[Familiarizarse]
5
UNIDAD 5: Algoritmos y Estructuras de Datos fundamentales(8)
Competencias: C1,C2,C5
CONTENIDO OBJETIVO GENERAL
Algoritmos numéricos simples, tales como el cálculo Implementar algoritmos numéricos básicos[Usar]
de la media de una lista de números, encontrar el
mı́nimo y máximo. Implementar algoritmos de busqueda simple y ex-
plicar las diferencias en sus tiempos de compleji-
Algoritmos de búsqueda secuencial y binaria. dad[Evaluar]
Algoritmos de ordenamiento de peor caso cuadrático Ser capaz de implementar algoritmos de ordenamien-
(selección, inserción) to comunes cuádraticos y O(N log N)[Usar]
Algoritmos de ordenamiento con peor caso o caso Describir la implementación de tablas hash, in-
promedio en O(N lg N) (Quicksort, Heapsort, Mer- cluyendo resolución y el evitamiento de colisio-
gesort) nes[Familiarizarse]
Tablas Hash, incluyendo estratégias para evitar y re- Discutir el tiempo de ejecución y eficiencia de me-
solver colisiones. moria de los principales algoritmos de ordenamiento,
busqueda y hashing[Familiarizarse]
Árboles de búsqueda binaria:
Discutir factores otros que no sean eficiencia compu-
• Operaciones comunes en árboles de búsqueda tacional que influyan en la elección de algoritmos,
binaria como seleccionar el mı́nimo, máximo, tales como tiempo de programación, mantenibilidad,
insertar, eliminar, recorrido en árboles. y el uso de patrones especı́ficos de la aplicación en
Grafos y algoritmos en grafos: los datos de entrada[Familiarizarse]
• Representación de grafos (ej., lista de adyacen- Explicar como el balanceamiento del arbol afecta la
cia, matriz de adyacencia) eficiencia de varias operaciones de un arbol de bús-
queda binaria[Familiarizarse]
• Recorrido en profundidad y amplitud
Resolver problemas usando algoritmos básicos de
Montı́culos (Heaps) grafos, incluyendo busqueda por profundidad y bus-
Grafos y algoritmos en grafos: queda por amplitud[Usar]
• Algoritmos de la ruta más corta (algoritmos de Demostrar habilidad para evaluar algoritmos, para
Dijkstra y Floyd) seleccionar de un rango de posibles opciones, para
proveer una justificación por esa selección,y para im-
• Árbol de expansión mı́nima (algoritmos de plementar el algoritmo en un contexto en especı́fi-
Prim y Kruskal) co[Evaluar]
Búsqueda de patrones y algoritmos de cadenas/texto Describir la propiedad del heap y el uso de
(ej. búsqueda de subcadena, búsqueda de expresio- heaps como una implementación de colas de prio-
nes regulares, algoritmos de subsecuencia común más ridad[Familiarizarse]
larga)
Resolver problemas usando algoritmos de grafos, in-
cluyendo camino más corto de una sola fuente y ca-
mino más corto de todos los pares, y como mı́nimo
un algoritmo de arbol de expansion minima[Usar]
6
UNIDAD 6: Algoritmos y Diseño(9)
Competencias: C1,C2,C5
CONTENIDO OBJETIVO GENERAL
7
UNIDAD 7: Programación orientada a objetos(4)
Competencias: C2
CONTENIDO OBJETIVO GENERAL
Entornos modernos de programación: Construir y depurar programas que utilizan las bi-
bliotecas estándar disponibles con un lenguaje de
• Búsqueda de código. programación elegido[Familiarizarse]
• Programación usando libreria de componentes
y sus APIs.
8
9. METODOLOGÍA
El profesor del curso presentará clases teóricas de los temas señalados en el programa propiciando la intervención de
los alumnos.
Los alumnos deberán asistir a clase habiendo leı́do lo que el profesor va a presentar. De esta manera se facilitará la
comprensión y los estudiantes estarán en mejores condiciones de hacer consultas en clase.
10. EVALUACIONES
Evaluación Permanente 1 : 20 %
Examen Parcial : 30 %
Evaluación Permanente 2 : 20 %
Examen Final : 30 %
Referencias
[Brookshear, 2011] Brookshear, J. G. (2011). Computer Science: An Overview. Addison-Wesley.
[Guttag, 2013] Guttag, J. V. (2013). . Introduction To Computation And Programming Using Python. MIT Press.
[Zelle, 2010] Zelle, J. (2010). Python Programming: An Introduction to Computer Science. Franklin, Beedle & Associates
Inc.