[UCR]
[/\]

Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
[<=] [home] [<>] [\/] [=>

CI-0202 Principios de Informática

II Semestre 2009 Adolfo Di Mare

 

Páginas de otros profesores

Francisco Arroyo <farroyo@ecci.ucr.ac.cr>
http://farroyo.ecci.ucr.ac.cr/ci0202/
Edgar Casasola <edgar.casasola@ecci.ucr.ac.cr>
http://zafiro.ecci.ucr.ac.cr/ci1101/materialCurso/
Braulio Solano <braulio.solano@ecci.ucr.ac.cr>
http://bsolano.com/ecci/claroline/course/index.php?cid=CI0202
Roberto Ulloa <roberto.ulloa@ecci.ucr.ac.cr>
https://sites.google.com/site/principiosci0202/

 

OBJETIVO

      Proveer al estudiante la formación básica en programación y construcción de algoritmos para su adecuado desempeño en los cursos subsiguientes de la carrera, fomentándole sus habilidades generales para la resolución de problemas.

 

OBJETIVOS ESPECIFICOS

      Al finalizar el curso, el estudiante será capaz de:

  1. Comprender el funcionamiento de equipo básico de computación.
  2. Diseñar, organizar e implementar algoritmos para resolver problemas específicos.
  3. Usar un ambiente de programación para la edición, documentación, depuración y prueba de programas.
  4. Reutilizar componentes de programación.
  5. Aplicar a nivel básico buenas prácticas de construcción de programas.

 

CONTENIDOS

  1. Nociones básicas de sistema operativo, arquitectura de un computador, lenguaje de programación, algoritmo.
  2. Conceptualización y definición de clases, atributos de clases, instancias de clases, tipos y variables.
  3. Entrada y salida de datos y valores.
  4. Estructuras básicas de control: secuenciación, bifurcación, iteración.
  5. Especificación e implementación de métodos y de funciones.
  6. Distintos tipos de módulos: procedimiento, función, clase, programa, unidad.
  7. Estructuras de datos basadas en arreglos.
  8. Estructura de una clase: parte pública, parte privada, constructores y destructores.
  9. Introducción a la recursividad y la programación concurrente.
  10. Algoritmos de búsqueda y ordenamiento básicos.
  11. Memoria estática y memoria dinámica; clases contenedoras básicas.

EVALUACION

      El peso de la evaluación estará en los exámenes, aunque es indispensable que todos los estudiantes realicen los trabajos programados. Los exámenes se realizarán en horas lectivas cuya fecha será anunciada con 2 semanas naturales de anticipación.
Tareas, proyectos, quices   30%    (Prof. Di Mare)
Examen Parcial #1   15%    viernes 25 de abril
Examen Parcial #2   20%    viernes 30 de octubre
Examen Final   35%    Viernes 27 de noviembre
 


 

INDICE DE MATERIALES DEL CURSO

Exámenes
P #1  -  P #2  -  (Rep)
Final  -  (Amp)
Tareas
#1  -  #2  -  #3  -  #4  -  #5
#6  -  #7  -  #8  -  #9
(Prof. Di Mare)
Tareas (Prof. Di Mare)
# 1: Números de Armstrong
# 2: Inversión de los dígitos de un número
# 3: Comparación de vectores
# 4: Juego de toques y famas
# 5: Ordenamiento de vectores por selección
# 6: Juego mejorado de toques y famas
# 7: Caída matricial de una piedra
# 8: Remolvo en Espiral
# 9: Remolvo en Espiral con Dibujitos
Ejemplos de laboratorio (Prof. Di Mare)
Laboratorio # 1   [Java]   [C++]: Números de Armstrong
Laboratorio # 2   [Java]   [C++]: El tamaño de cada tipo de datos
Laboratorio # 3   [Java]   [C++]: while vs for [Matriz]
Laboratorio # 4   [Java]   [C++]: La clase año bisiesto
Laboratorio # 5   [Java]   [CIN]   [C++]: Calculadora de números enteros
Laboratorio # 6   [Java]   [C++]: Clase ord_int para mantener varios números ordenados
Laboratorio # 7   [Java]   [C++]: Recursividad de las funciones Fibonacci() y Factorial()
Laboratorio # 8   [Java]   [C++]: Ordenamiento por Seleccion(), Insercion() y Burbuja()
Laboratorio # 9   [Java]   [C++]: Una clase para clasificar edades
Laboratorio # 10   [C++]: La clase Bolsa para contar números
Laboratorio # 11   [C++]: Argumentos por valor y argumentos por referencia
Laboratorio # 12   [C++]: Uso de argumentos en la línea de comandos
Laboratorio # 13   [C++]: Lectura de los nombres de archivos del directorio actual
Laboratorio # 14   [Java]   [C++]: Búsqueda lineal y binaria en un vector ordenado
Laboratorio # 15   [Java]   [C++]: Muestra cómo centrar una hilera.
Laboratorio # 16   [Java]   [C++]: Muestra como usar una matriz NxM.
Laboratorio # 17   [Java]   [C++]: La lista.
Laboratorio # 18   [Java]: Java pasa copias de referencias
Laboratorio # 19   [Java]: Fibonacci() super-lerdo y super-rápido
Laboratorio # 20   [Java]: Manejo de Excepciones
Laboratorio # 21   [Java]: Manipulación de hileras
Laboratorio # 22   [Java]: Ventanas
Laboratorio # 23   [Java]: Iteradores
Herramientas
http://www.DrJava.org && DrJava.htm
http://cs.joensuu.fi/jeliot
http://www.BlueJ.org
http://www.JCreator.com
http://java.sun.com/javase/downloads/index.jsp
Bibliotecas de programas
http://math.nist.gov/javanumerics/jama/
http://jchart2d.sourceforge.net/
http://sourceforge.net/projects/javacsv/
http://www.jfree.org/jfreechart/

 

LIBRO DE TEXTO

      Como lenguaje de programación en el curso se usa Java, por lo que conviene que el estudiante adquiera un buen libro de texto para el lenguaje sobre Java, que es el lenguaje que se usará como marco de referencia en todo el curso. Cada estudiante es responsable de conseguir sus libros. Estos son buenos libros de texto:

Barnes, David J. & Kölling Michael
Programación orientada a objetos con Java, ISBN: 978-84-8322-350-5, Pearson Educación, 2007.
      http://www.bluej.org/objects-first/
      http://www.bluej.org/objects-first/resources/projects.zip
Ceballos, Francisco Javier
Java 2 - Curso de Programación - 3º ed., ISBN 970-15-1164-6, Alfaomega Ra-Ma, 2006.
      http://www.fjceballos.es/publicaciones_java.html
      http://www.ra-ma.es/down/Java2-IGyApIn3ed-Ceballos.zip
Deitel, H.M.; Deitel, P.J.
Java Cómo programar 5ta edición, ISBN 970-26-0518-0, Prentice-Hall, 2004.
      http://www.deitel.com/
      ftp://ftp.prenhall.com/pub/deitel/J_HTP/java-htp5e/examples/java5-examples.zip

BIBLIOGRAFIA

Di Mare, Adolfo
Convenciones de Programación para Pascal, Reporte Técnico ECCI­01­88, Proyecto 326­86­053, Escuela de Ciencias de la Computación e Informática, Universidad de Costa Rica, 1988.
      http://www.di-mare.com/adolfo/p/convpas.htm
Gosling,James & Joy, Bill & Steele, Guy & Bracha, Gilad
The Java Language Specification, 3rd Ed; Addison-Wesley, 2005.
Hommel, Scott (editor)
Java Code Conventions
      http://java.sun.com/docs/codeconv/CodeConventions.pdf
Stroustrup, Bjarne
"The C++ programming language (3rd ed)"; Addison-Wesley; 1998.
      http://www.research.att.com/~bs/3rd.html
Sun Microsystems
"Página oficial de Javasoft"
      http://java.sun.com
Sun Microsystems
JavaTM Platform, Standard Edition 6 API Specification
      http://java.sun.com/javase/6/docs/api/
Sun Microsystems
Trail: Learning the Java Language; The JavaTM Tutorials
      http://java.sun.com/docs/books/tutorial/java/

 

Políticas de Corrección de Tareas

 

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>
Copyright © 2009
Derechos de autor reservados © 2009
[home] <> [/\]