You are on page 1of 10

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA

DIRECCIÓN GENERAL DE ASUNTOS ACADÉMICOS

PROGRAMA DE ASIGNATURA POR COMPETENCIAS

I. DATOS DE IDENTIFICACIÓN

1. Unidad Académica: _____Facultad de Ciencias Químicas e Ingeniería____________________________

2. Programa (s) de estudio: (Técnico, Licenciatura) Ingeniero en Computación 3. Vigencia del plan:_2003-1_

4. Nombre de la Asignatura: PROGRAMACION ORIENTADA A OBJETOS I 5. Clave: __5033___

6. HC: 3 HL_2__ HT____ HPC_____ HCL_____ HE 3 CR__8___

7. Ciclo Escolar: 2009-2 8. Etapa de formación a la que pertenece: __DISCIPLINARIA___

9. Carácter de la Asignatura: Obligatoria ______X_____ Optativa ______

10. Requisitos para cursar la asignatura: Programación Estructurada__

Formuló: M.C. José Reyes Juárez Ramírez

Vo. Bo. _Dr. Guillermo Rodríquez Ventura Cargo: _Sub-director Académico_______Fecha: Junio del 2003
II. PROPÓSITO GENERAL DEL CURSO

Aprender a programar en objetos, estudiando las características principales del paradigma de Programación Orientada a Objetos, el análisis
de problemas y el diseño de soluciones usando clases, todo esto apoyado mediante el lenguaje JAVA, el cual es un lenguaje de
programación universal que permite desarrollar aplicaciones que corren en cualquier arquitectura de hardware y que es compatible con
muchas plataformas de software y con el WEB.

El curso se desarrolla mediante clases teóricas, ejercicios y prácticas de laboratorio bajo el ambiente nativo de JAVA, el cual permite
diferenciar entre la Programación Orientada a Objetos, la programación estructurada y la programación visual. El curso se imparte usando
computadoras con ambientes Windows o ambientes Unix, usando un editor de texto, la Máquina Virtual de Java (JVM), la línea de
comandos o el ambiente gráfico.

Esta materia está clasificada como disciplinaria, permite al estudiante que ya sabe programar, ver la programación desde otra perspectiva y
le proporciona las bases necesarias para comprender los ambientes de programación visual, además de dotarlo con los conocimientos
necesarios para las materias de Programación Orientada Objetos II, Sistemas de Información, Aplicaciones Distribuidas, Desarrollo de
Aplicaciones para Internet, entre otras.

III. COMPETENCIA (S) DEL CURSO

Aplicar en forma eficiente y creativa el paradigma de la Programación Orientada a Objetos en la resolución de problemas del mundo real,
de tal manera que se logren aplicaciones que satisfagan completamente una necesidad, que cubran de manera íntegra el dominio del
problema que se trate y que dichas aplicaciones resulten en un código pequeño, reutilizable, fácil de mantener y que no requiera grandes
modificaciones a su estructura cuando se requiera implementar cambios a la funcionalidad de un sistema desarrollado; todo esto respetando
la filosofía del modelo de objetos.
IV. EVIDENCIA (S) DE DESEMPEÑO

- Crear programas en JAVA que resuelvan tareas específicas de procesamiento de datos.


- Crear un sistema para el procesamiento de información utilizando el paradigma de programación orientada a objetos.
- Analizar problemas reales bajo la óptica de objetos.
- Diseñar soluciones basadas en clases y objetos.

V. DESARROLLO POR UNIDADES


COMPETENCIA
Identificar, mediante un estudio exploratorio y con una actitud objetiva, los elementos fundamentales del paradigma de Programación Orientada
a Objetos como son la abstracción, el dominio del problema, jerarquía, polimorfismo y la reutilización de código, lo cual permita diferenciar la
orientación a objetos respecto a la programación estructurada, además de permitir ver la programación desde otra perspectiva y resolver tareas
bajo una lógica más natural apegada al problema que se trata y menos dependiente del lenguaje utilizado para implementar una solución de
software.

CONTENIDO DURACIÓN 5 HORAS

1. El paradigma de la programación orientada a objetos


1.1. Los elementos de la programación estructurada.
1.1.1 Descomposición algorítmica.
1.1.2 Subrutinas.
1.1.3 Estructuras de datos.
1.2. Los elementos de la programación orientada a objetos.
1.2.1 Descomposición orientada a objetos.
1.2.2 Abstracción (datos y comportamientos expresados en
clases).
1.2.3 Jerarquía (herencia).
1.2.4 Polimorfismo y reutilización de código.
1.3. Comparación entre la programación estructurada y la
Orientada a objetos.
1.4. Fusión de las dos programaciones.

V. DESARROLLO POR UNIDADES


COMPETENCIA
Identificar objetivamente, con paciencia y tolerancia, los elementos que distinguen a un lenguaje de Programación Orientado a Objetos, tales
como las clases, encapsulamiento, herencia, tipificación, instancias, métodos y parámetros, esto mediante un análisis exploratorio de los
fundamentos del lenguaje JAVA, conociendo también la estructura de los principales tipos de programas en este lenguaje e identificando además
a otros lenguajes de programación Orientados a Objetos, lo cual permitirá una visión más precisa de los beneficios del paradigma de
Programación Orientado a Objetos.

CONTENIDO DURACIÓN 5 HORAS


2. Elementos básicos de un lenguaje orientado a objetos.

2.1. Topología de los lenguajes de programación orientados a objetos.


2.2. Clases y objetos.
2.2.1 ¿Qué es una clase ?
2.3. Elementos básicos: clases, subclases, encapsulamiento,
tipificación, instancias, métodos, mensajes, herencia,
polimorfismo y modularidad.
2.4. Ejemplos de lenguajes de programación orientados a objetos.
2.5. Historia y filosofía del lenguaje JAVA.
2.5.1 Fundamentos de JAVA.
2.5.2 Tipos de programas en JAVA.
2.5.3. Estructura de una aplicación y de un applet.
2.5.4. Compilación y ejecución de programas en JAVA.
V. DESARROLLO POR UNIDADES
COMPETENCIA
Manipular adecuadamente las distintas estructuras de control de flujo de la computación que maneja el lenguaje JAVA e identificar las
capacidades de cada una de ellas con el fin de hacer una selección apropiada, libre del gusto personal y con objetividad, dependiendo de la
naturaleza del problema que se trate y poder lograr programas más cortos y eficientes en cuanto a tiempo de ejecución y rendimiento.

CONTENIDO DURACIÓN 5 HORAS

3. Estructuras de control de programa

3.1. La selección.
3.1.1 El enunciado if …else.
3.1.2 El operador condicional.
3.1.3 El enunciado switch.
3.2. La iteración.
3.2.1 El enunciado for.
3.2.2 El enunciado while.
3.2.3 El enunciado do … while.
3.2.4 Ciclos anidados
V. DESARROLLO POR UNIDADES
COMPETENCIA
Implementar en forma eficiente y precisa los tipos de métodos boleanos, void, recursivos o dependientes de otros métodos, siendo cuidadosos
respecto a la funcionalidad o el desempeño que éstos deben tener, de tal manera que se decida satisfactoriamente su estructura en cuanto a la
forma de invocación, parámetros que recibe y retorno de datos, aplicando para lograr esto una lógica objetiva y libre de vicios o malos
hábitos de programación.

CONTENIDO DURACIÓN 10 HORAS

4. Métodos (sobrecargado de métodos)

4.1.¿Que es un método y como se define?


4.1.1 Un par de ejemplos sencillos.
4.1.2 Las variables locales.
4.3. Métodos que invocan a otros métodos.
4.4. Métodos que se invocan a si mismos.
4.5. Métodos booleanos.
4.6. Métodos void.
4.7. Sobrecargado de nombres de métodos.
V. DESARROLLO POR UNIDADES
COMPETENCIA
Crear y manipular en forma lógica y creativa las clases, tomando en consideración el ámbito de alcance, los tipos de acceso público o
privado, la inicialización de los objetos mediante los diferentes tipos de constructores, definiendo estos conceptos en base a la naturaleza de la
clase y al desempeño que debe tener dentro del dominio del problema, cuidando además la convivencia entre clases a nivel de identidad,
igualdad y equivalencia, de tal manera que no halla conflictos entre ellas y evitar problemas de compilación y sobre todo de ejecución de los
programas completos.

CONTENIDO DURACIÓN 10 HORAS

5. Manipulación de clases y objetos

5.1. Declaración de las clases.


5.2. Especificadores de acceso.
5.3. Los constructores.
5.3.1 Definición de constructor.
5.3.2 Constructores copia (copy constructors).
5.3.3 Constructores por omisión (default constructors).
5.4. Identidad, igualdad y equivalencia.
5.5. Clases de envoltura (wrapper classes).
V. DESARROLLO POR UNIDADES
COMPETENCIA
Identificar adecuadamente las subdivisiones que los elementos de un problema pueden tener y decidir en forma objetiva la formación de clases
para esas subdivisiones, aplicando en forma cuidadosa las relaciones entre clases a nivel de herencia, procurando tener los niveles jerárquicos
necesarios y suficientes para tratar un problema, sin generar conflictos entre los grupos de clases formadas, tales como la repetición de
código, herencias cruzadas o relaciones cíclicas.

CONTENIDO DURACIÓN 14 HORAS

6. Herencia y jerarquía de clases

6.1. La composición.
6.2. Clases recursivas.
6.3. Herencia.
6.4. Sobreescritura de variables y métodos.
6.5. La palabra reservada super.
6.6. Herencia contra composición.
6.7. Jerarquías de clases.
6.8. La clase object y la jerarquía de clases de Java.
V. DESARROLLO POR UNIDADES
COMPETENCIA
Implementar en forma creativa y eficiente las interfaces, de tal manera que éstas cumplan con el cometido de permitir que una clase herede
atributos y funcionamiento a partir de más de una interfaz, cuidando además no alterar las abstracciones realizadas para cada clase e interfaces
definidas para resolver un problema en particular y siendo respetuosos de las restricciones del lenguaje JAVA sobre la herencia múltiple.
CONTENIDO DURACIÓN 8 HORAS

7. Interfaces (tipo especial de clases).

7.1. ¿ Que es una interfaz ?


7.2. Diferencias entre una clase y una interfaz.
7.3. Herencia en las interfaces.
7.4. Implementación de interfaces.
V. DESARROLLO POR UNIDADES
COMPETENCIA
Aplicar en forma creativa y eficiente las capacidades de las clases String, StringBuffer y los Streams en el manejo de cadenas de caracteres y
procesamiento de datos a través de los dispositivos de Entrada/Salida, tanto en los estándar como la pantalla y el teclado, así como en
archivos, aplicando una lógica racional y adecuada en las operaciones y el tratamiento sobre las cadenas y los datos, procurando además
mantener la integridad de los mismos en todo momento.
CONTENIDO DURACIÓN 7 HORAS
8. E/S datos.

8.1 La entrada de datos.


8.1.1. Ejemplos sencillos: Cálculo del año de nacimiento y área de
un círculo.
8.2. La clase String.
8.2.1 Usando la clase String.
8.2.2 Los métodos de la clase String.
8.3. La clase StringBuffer.
8.3.1 Utilizando la clase StringBuffer.
8.3.2 Los métodos de la clase StringBuffer.
8.4 Streams, readers y writers:
8.4.1 Uso de la clase File
8.4.2. Utilizando InputStream
8.4.3 Utilizando OutputStream
8.4.4 Utilizando FileInputStream
8.4.5 Utilizando File OutputStream.

You might also like