0% encontró este documento útil (0 votos)
103 vistas6 páginas

Curso Programación 1 UCR

Este curso enseña programación orientada a objetos en Java, cubriendo temas como diseño de clases, métodos, estructuras de datos, algoritmos y calidad de código. La evaluación consta de exámenes, tareas cortas y proyectos de programación grupales.

Cargado por

Fabio Viales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
103 vistas6 páginas

Curso Programación 1 UCR

Este curso enseña programación orientada a objetos en Java, cubriendo temas como diseño de clases, métodos, estructuras de datos, algoritmos y calidad de código. La evaluación consta de exámenes, tareas cortas y proyectos de programación grupales.

Cargado por

Fabio Viales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación 1

1. Características generales

Nombre: Programación 1
Sigla: CI-0112
Créditos: 4
Horas: 5
Requisitos: CI-0110 Introducción a la Computación
Clasificación: Curso propio
Ciclo: II, 1er año
Profesor: Edgar Casasola Murillo ([email protected])
Horarios: II Semestre 2023
Grupo: 01
Lugar: Aula 302 - L 16 a 17:50 / J 15 a 17:50
Asistentes: Angie Solis Manzano ([email protected])
Horario de consulta: Oficina 4-3 edificio anexo ECCI L-18 a 21 J-13 a 15 y 18 a 21

Plataforma educativa: http://www.mediacionvirtual.ucr.ac.cr


Modalidad: Bajo virtual

2. Descripción del curso

Este curso fomenta en cada estudiante habilidades generales para la resolución de problemas de
programación, con énfasis en la etapa de implementación de soluciones. Se usa el paradigma de
programación orientado a objetos porque permite solucionar problemas de forma más natural.

3. Objetivos

Objetivo general
El objetivo general del curso es que cada estudiante sea capaz de resolver problemas mediante la
programación de computadoras utilizando el paradigma de programación orientado a objetos.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


1 de 6
Objetivos específicos
Durante este curso cada estudiante desarrollará habilidades para:

1. Explicar el modelo de ejecución de los programas.

2. Analizar problemas y diseñar soluciones básicas orientadas a objetos.

3. Implementar soluciones utilizando el paradigma de programación orientado a objetos.

4. Validar informalmente la ejecución de los programas mediante la definición de un


conjunto básico de casos de prueba.

5. Aplicar buenas prácticas de programación.

6. Implementar y manipular estructuras de datos.

7. Implementar algoritmos básicos.

8. Utilizar un ambiente de desarrollo integrado.

9. Corregir errores en programas utilizando un depurador.

4. Contenidos

Objetivo Eje temático Desglose


específico

8, 9 Herramientas de desarrollo: compilador, depurador,


Herramientas de
ambiente de desarrollo integrado (IDE).
desarrollo

1 Rastreo de memoria de programa.


Modelo de ejecución
de programas

2 Resolución de Proceso de resolución de problemas, análisis, diseño,


problemas implementación, prueba, patrones, técnicas de
resolución de problemas: divide y vencerás.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


2 de 6
2, 3 Conceptualización y definición de clases, atributos de
Diseño e
clases, instancias de clases, tipos y variables, parte
implementación de
pública, parte privada.
soluciones

2, 3 Conceptualización e implementación de métodos (sin


Diseño e
parámetros, con parámetros de valor, con parámetros
implementación de
de referencia), constructores y destructores.
soluciones

6 Estructuras de datos estáticas: arreglos de una y más


Estructuras de datos
dimensiones.

6 Estructuras de datos dinámicas: lista enlazada y árbol


Estructuras de datos
binario.

3, 5, 7 Flujos de entrada y salida de datos. Validación de datos.


Entrada y salida de
datos

7 Estructuras básicas de control: secuenciación,


Algoritmos
bifurcación, iteración.

7 Algoritmos básicos de búsqueda como: secuencial y


Algoritmos
binaria, y algoritmos de ordenamiento como: burbuja,
selección e inserción.

7 Funciones recursivas tales como: factorial, Fibbonacci,


Algoritmos
multiplicación de enteros, potencia de dos números,
máximo común divisor de dos números, Torres de Hanoi;
además, recorrido, inserción y borrado sobre árboles
binarios.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


3 de 6
4, 5, 8, 9 Casos de prueba básicos: casos extremos, intermedios,
Calidad de
inválidos.
programas
Buenas prácticas de programación: nombres
significativos, convenciones de escritura de nombres
(clases, variables, métodos, constantes), disposición del
texto (tabulación, delimitadores de bloques, espacios y
líneas en blanco), documentación interna, orden de las
declaraciones (campos, constructores, métodos),
modificadores de acceso (privado y público), uso de
constructores.

5. Metodología

La metodología de enseñanza se basará en el estudio de temas específicos y el


desarrollo de programas de ejemplo o pruebas de concepto. Seguido de la introducción de cada
concepto se procederá a utilizar todos los conocimientos previos para solucionar problemas de
programación. Por lo tanto, la complejidad de los problemas aumentará en forma de espiral
ascendente donde será necesario tanto dominar los conceptos, como aplicarlos en forma
práctica para la resolución de problemas.

Los proyectos programados también conocidos como tareas programadas serán


trabajos de mayor complejidad para ser desarrollados por grupos de estudiantes. El Proyecto de
Programación se utiliza como mecanismo para incentivar el trabajo en equipo y a modo de
motivador para asimilar el material del curso. Cada tarea programada contará con un enunciado
que será colocado en la plataforma educativa del curso. En cada enunciado se explicarán los detalles
de entrega y requisitos específicos del trabajo por desarrollar.

Los exámenes se llevarán a cabo en cuaderno de examen escrito a mano y en forma


individual. Durante el examen el estudiante podrá traer una hoja tamaño carta de
apoyo con toda la información que considere relevante incluidos conceptos, sintaxis o código
fuente de ejemplo. La hoja deberá tener el nombre escrito de puño y letra del estudiante en la parte
superior.

Cuando se indique que una prueba es de carácter individual se considerará


ilegal utilizar o suministrar parcial o totalmente código escrito por otras personas u
obtenido de fuentes de información, como por ejemplo de libros o de Internet, sin la autorización
expresa del docente. Si el estudiante incumple con esta política se le asignará un cero como nota en
la evaluación y se aplicará lo que indique el reglamento estudiantil en cada caso.

Plataforma educativa.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


4 de 6
La plataforma http://www.mediacionvirtual.ucr.ac.cr se utilizará con la modalidad bajo
virtual para: comunicación entre los participantes del curso, comunicación de eventos,
distribución de materiales de curso, entrega y recepción de enunciados de tareas y soporte
a las actividades académicas del curso.

El estudiante deberá registrarse en la plataforma utilizando su correo institucional de la


Universidad de Costa Rica @ucr.ac.cr. Es obligatorio proporcionar una foto para
identificación personal en el perfil de mediación, además es necesario completar toda su
información personal para permitir la interacción con los demás participantes de la
plataforma. Con el mismo usuario deberán acceder a los ejemplos de código visto en clase
que será colocado en la plataforma git delcurso https://git.ucr.ac.cr/ci0112/grupo06/

Lenguaje y ambiente de programación.

El desarrollo de este curso estará basado en el lenguaje de programación Java. Se utilizará


tanto el modo de compilación y ejecución mediante comandos en una terminal, como el
uso del ambiente integrado de desarrollo BlueJ.

6. Evaluación

60% Exámenes (2 exámenes)

10% Pruebas y tareas cortas

30% Proyectos de Programación

Las pruebas cortas se llevarán a cabo sin previo aviso. Se indicará en cada caso si es un trabajo que
se debe llevar a cabo en grupo o en forma individual. Algunas pruebas cortas serán trabajos de
práctica que se aplicarán durante la lección y en otras ocasiones se dejarán como tarea para la
siguiente clase.

Los Proyectos de Programación deben realizarse en grupos de no más de 3 estudiantes (excepto en


casos particulares, lo cual se indicará en el enunciado de cada tarea) y deberán ser entregadas a más
tardar a las 11:55 pm de la fecha especificada. Sin embargo, será posible entregar en forma tardía
con una penalización de 20% diario. (Nota máxima de 80% con 1 día natural de atraso y de 0%
después del 5to día natural de atraso).

Los rubros y forma de evaluación de cada Proyecto de Programación se indicarán en su enunciado.

En caso de que sea permitido por el profesor para algún trabajo en específico, el uso de
herramientas de Inteligencia Artificial ( IA ) debe estar declarado mediante una leyenda obligatoria
que enmarque el inicio y fin de contenido donde se haya utilizado de la siguiente forma.
// *** ATENCIÓN USO DE IA - INICIO DEL CONTENIDO ***
// *** Para generar el siguiente contenido se utilizaron herramientas consideradas de inteligencia artificial ***
// *** Herramienta: ***
// *** Utilizada para: ***
//*** Persona(s) responsable(s): ***
//*** Autorizado por: Fecha: Hora: ***

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


5 de 6
Cada uso específico debe estar documentado con el debido responsable y se debe indicar el fin del
contenido generado
// *** ATENCIÓN USO DE IA - FINAL CONTENIDO ***

7. Cronograma

El cronograma del curso estará disponible en la plataforma educativa del curso y se


actualizará de acuerdo con el desarrollo real de los temas. Las evaluaciones se llevarán a cabo en
las siguientes semanas:

Primer examen: Semana 9 del curso


Segundo examen: Semana 16 del curso
Proyecto 1 de Programación: Semana 8 del curso
Proyecto 2 de Programación: Semana 12 del curso
Proyecto 3 de Programación: Semana 16 del curso

8. Bibliografía

Barnes, David y Kolling, Michael. Programación orientada a objetos con Java usando BlueJ. Quinta
edición. Pearson. 2013.

Deitel y Deitel. Java How To Program: Early Objects. Décima edición. Pearson. 2014.

Wu, C. Thomas. An Introduction to Object-Oriented Programming with Java. McGraw-Hill. Quinta


edición. 2009.

Ceballos, Francisco Javier. Java2: Curso de Programación. Cuarta edición. Editorial Alfaomega.
2011.

9. Recursos estudiantiles

Para información sobre recursos estudiantiles disponibles en la UCR, incluyendo el


Sistema de bibliotecas y la normativa universitaria vigente, favor visitar la página:
https://www.ecci.ucr.ac.cr/vida-estudiantil/servicios-institucionales-para-estudiantes/guia-
de-recursos-estudiantiles-de-la-ucr

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr [email protected]


6 de 6

También podría gustarte