Vous êtes sur la page 1sur 12

MIT

Stanford

Carnegie
Mellon

Berkeley

Motivation for using C/C++;


discussion of where C and C++ sit
in the abstraction hierarchy;
writing our first C programs

1.
Introduction.
Eclipse
features. Modular unit testing
with JUnit.

Administrative
stuff,
object-oriented
programming, Java vs.
C++,
writing
and
running a Java program

Fundamentals:
Types
and
Variables;
input/output; flow of control; functions, value
parameters, and reference parameters; classes,
member functions, public and private data, use
of interface and implementation files; scope;
function overloading.

The logistics of memory manipulation


in C (pointers, structs)

2.
OOP
Design:
basic
encapsulation, client oriented
design,
API
design,
inheritance, patterns.

Program control

Arrays, Strings, and I/O Streams: Indexing;


multidimensional
arrays;
interaction
of
constructors for container/containee classes;
straightforward use of files and string streams.

More advanced memory manipulation


in C. We'll show double linked-list
insert in place, inserting into a linked
list using a double pointer, corner
cases of using memory (when we
actually need heap allocation), etc.
Introduction to C++; encapsulation:
classes, namespaces, constructors and
destructors; memory management in
C++
(new,
delete);
operator
overloading and standard input/output

3. Finish OOP design, javadoc.


Inner and nested classes.
Collectionclassimplementation
.

Initialization&cleanup

Linked Structures: Pointers; new and delete;


building and using linked lists and trees; use of
iterators; the "this" pointer; copy constructors;
destructors;
memory
allocation
and
deallocation.

4. Anonymous inner classes.


Basic Swing component setup
and controls. Start threading
and synchronization. (Stanford
course drop deadline this
week)
5. More threading. GUIs and
threading. Integrating the GUI
thread with worker threads.
6. Swing paintComponent()
style.
repaint().
More
advanced drawing, mouse
tracking. JTable MVC data
handlingpattern,
modeldelegation.
7. Document file save/open,
serialization,
XML.
Basic
sockets. Techniques for large
projects.

Implementationhiding,
composition&inheritan
ce

Class Design: Function and class templates;


operator overloading; derived classes; virtual
functions; friends.

1.

Inheritance
and
polymorphism;
templates; standard library containers
Tricks of the trade. Things people
might see in interviews, etc. Review
and discussion of thecoveredtopics,
Q&A.

Polymorphism

Interfaces
&InnerClasses

Collection
introducing
regression

classes,
symbolic

More
on
collection
classes, watch a movie
on
genetic
programming

Exceptions and Java I/O


Threads, JDBC

Mit http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-088-introduction-to-c-memorymanagement-and-c-object-oriented-programming-january-iap-2010/syllabus/

UNAM

UNAM

LICENCIATURA EN MATEMTICAS
APLICADAS Y COMPUTACIN
Unidad 1.CONCEPTOS BSICOS
DE
LA
PROGRAMACIN
ORIENTADA A
OBJETOS
1.1 Antecedentes de la
programacin orientada a
objetos.
1.2 Enfoque orientado a objetos.
1.3 Terminologa: abstraccin,
encapsulamiento, sobrecarga de
funciones, herencia y
polimorfismo.
1.4 Ventajas de la programacin
y mtodos orientados a objetos.
1.5 Lenguajes de programacin
orientados a objetos.

LICENCIATURA EN
INFORMTICA
I.-INTRODUCCION A LA
PROGRAMACIN
ORIENTADA A OBJETOS.
1.- El Paradigma de la
orientacin a objetos.
2.- Definicin de clases,
objetos, herencia y
polimorfismo.
3.-Lenguajes de
programacin
orientados a objetos.

Unidad 2.
CLASES Y OBJETOS
2.1 Conceptos bsicos.
2.2 Definicin de clases.
2.3 Creacin de objetos.
2.3 Proteccin.

II.-CLASES Y OBJETOS.
1.-Definicin de clase y
objeto.
2.-Atributos.
3.-Mtodos.
3.1-sobrecarga de

IPN

UACJ

ISC - POO

ISC-POO

1. Fundamentos.
1. Breve introduccin al paradigma
1.1 Antecedentes
POO
1.2 Modelo orientado a1.1 Tecnologia Orientda a Objetos
1.1.1 Una perspectiva
objetos.
histricaAntecedentes
1.3 Principio de
1.1.2
Ventajas
de un lenguaje orientado a
abstraccin.
objetos
1.4 Principio de
1.2 El modelo orientado a objetos
modularidad.
1.2.1
Objetos
1.5 Principio de
1.2.2
Clases
jerarqua.
1.2.3 Herencia
1.6 Principio de
1.2.4 Envo de mensajes
tipificacin.
1.3 Caractersticas asociadas a la POO
1.3.1 Abstraccin
1.3.2 Encapsulamiento
1.3.3 Ocultamiento
1.3.4 Polimorfismo
1.4 Lenguajes de programacin
orientada a objetos.
2. Clases y objetos.
2. Clases y objetos en POO
2.1 Clases y objetos.
2.1 Representacin de la informacin
2.1.1 Atributos y
por medio de objetos.
2.2 Atributos o estado.
mtodos.
2.1.2 Constructores y 2.3 Mtodos o comportamiento.
destructores. 2.4 Abstraccin de objetos en clases.

2.4 Datos y funciones miembro


de una clase.
2.5 Constructores e instanciacin.
2.6 Destructores

Mtodos.
4.-Mensajes.
5.-Encapsulacin.
6.-Constructores.
7.-Destructores.

Unidad 3.
SOBRECARGA DE FUNCIONES,
COPIA Y REFERENCIA
3.1 Redefinicin de operadores.
3.2 Sobrecarga de funciones.
3.3 Funcin amiga.
3.4 Asignacin y copia de objetos.
3.5 Paso de objetos como
parmetros en funciones.
3.6 Funciones que retornan
objetos

III.-HERENCIA.
1.-Definicin.
2.-Polimorfismo.
3.-Herencia simple.
4.-Herencia mltiple.

Unidad 4.
HERENCIA
4.1 Ampliacin mediante
herencia.
4.2 Herencia y proteccin.
4.3 Constructores y herencia.
4.4 Funciones virtuales.

IV.-EXCEPCIONES.
1.-Definicin.
2.-Sintaxis de
excepciones.
3.-Tipos de excepciones.
4.-Implementacin.

2.1.3

Variables y
2.5 Necesidad y relevancia de los
mtodos de
constructores de clase: por defecto y
clase.
propios.
2.6
Mtodos de acceso y modificacin
2.2 Sobrecarga
del
estado de un objeto.
2.2.1 Sobrecarga de
2.7
Modificadores
de acceso: relevancia
funciones.
y necesidad de los modificadores
2.2.2 Sobrecarga de
pblico y privado.
operadores.
2.8 Encapsulacin de la informacin.
2.9 Prcticas definidas por el
docente, relativas a la unidad
temtica.
III. Relaciones entre
3. Sobrecarga de operadores
objetos.
3.1 Sobrecarga de operadores
3.1 Agregacin.
operadores aritmticos
3.2 Herencia.
operadores de relacin
3.2.1 Herencia simple.
operadores unarios
3.2.2 Herencia
operador de indexacin
mltiple.
operador de funcin
operadores new y delete
- sobrecarga de los operadores de
insercin y extraccin de flujo (<<,
>>).

IV Polimorfismo
4.1 Enlace esttico y
enlace dinmico.
4.2 Clases abstractas.
4.3 Forzamiento.
4.3.1 Forzamiento
hacia arriba(upcasting)

3.2 Funciones amigas


3.3 Prcticas definidas por el
docente, relativas a la unidad
temtica.
4. Herencia y relaciones entre clases
4.1 Comunicaciones entre distintas
clases.
4.2 Clases que contienen objetos
como atributos:
- Relaciones de agregacin
-Relaciones de composicin

4.5 Polimorfismo.
4.6 Herencia mltiple.
4.7 Herencia y composicin.

Unidad 5.
TPICOS ABSTRACTOS
5.1
Clases abstractas.
5.2 Genericidad: clases
contenedoras, funciones
genricas, arreglos y diccionarios
de datos
5.3 Constantes y objetos
compartidos.
Unidad 6.
DESARROLLO DE SISTEMAS
BASADOS EN EL PARADIGMA
ORIENTADO A OBJETOS
6.1 Anlisis orientado a objetos.
6.2 Diseo orientado a obj
etos.
6.3 Desarrollo del sistema
6.4 Implementacin

4.3.2 Forzamiento
hacia
abajo(downcasting)

V. INTERFASES
GRAFICAS
1.-Creacin de
ventanas.
2.-Eventos.
3.-Grficos.
4.-Ejemplos prcticos de
POO con interfases
grficas.
VI.-ARCHIVOS.
1.-Creacin de un
archivo.
2.-Consulta de un
archivo.
3.-Modificacin de un
archivo.
4.-Eliminacin de un
archivo.

- Relaciones de asociacin
4.3 Relaciones de
especializacin/generalizacin.
4.4 Definicin de la relacin de
herencia entre clases.
- Representacin de relaciones de
herencia en UML.
- Declaracin y definicin de
relaciones de herencia en C++.
4.5 Redefinicin de mtodos en
clases heredadas.
4.6 Modificador de acceso
protegido y posibilidades de uso.
4.7 Prcticas definidas por el
docente, relativas a la unidad
temtica.
5. Plantillas

REESCRIBIR CARTA DESCRIPTIVA

1. Introduccin al paradigma POO


1.1 Antecedentes
1.2 Terminologia
1.2.1 Abstraccion
1.2.2 Clases
1.2.3 Objetos
1.2.4 Metodos
1.2.5 Encapsulamiento
1.2.6 Herencia
1.2.7 Polimorfismo
1.3 Ventajas y desventajas de la POO
1.4 Lenguajes de programacin
orientada a objetos.

El docente describir sobre la metodologa de


enseanza-aprendizaje a utilizar durante el
curso, as como los criterios de evaluacin.

El docente describir sobre la metodologa de


enseanza-aprendizaje a utilizar durante el curso,
as como los criterios de evaluacin.

1.1El docente explicar la tecnologa orientada a


objetos.
- El alumno escribir un ensayo sobre la
importancia de la programacin orientada a
objetos con base a las ventajas y desventajas
del paradigma, mencionando ejemplos de
aplicacin, identificando a su vez la importancia
que la POO tiene dentro de las necesidades de
la industria, la complejidad de los sistemas y la
convergencia de la tecnologa.
1.2 El docente explicar el modelo orientado a
objetos, definiendo los conceptos de: objeto,
clase, herencia, mensajes, etc.

1.1 El docente explicar la importancia de la


programacin orientada a objetos mencionando
ejemplos de aplicacin, identificando a su vez la
importancia que la POO tiene dentro de las
necesidades de la industria, la complejidad de los
sistemas y la convergencia de la tecnologa.
1.2 El docente explicar el modelo orientado a
objetos, definiendo los conceptos de: objeto, clase,
herencia, mensajes, etc.
- Mediante el anlisis de un escenario real (cocina,
consultorio, aula, taller, etc.), el estudiante deber
reconocer los objetos y los posibles mensajes entre
ellos.

- Mediante el anlisis de un escenario real


(cocina, consultorio, aula, taller, etc.), el alumno
deber reconocer los objetos y los posibles
mensajes entre ellos.
- El alumno investigar y comprobar el
significado de los trminos de abstraccin,
encapsulamiento y ocultamiento, adems del
rol que ocupan en la POO.
- El alumno definir clases identificando
atributos y comportamiento (UML).
- El alumno disear relaciones de herencia
entre clases y sub-clases (UML).
1.3 El docente explicar los conceptos de
abstraccin, encapsulamiento y ocultamiento.las
ventajas y desventajas de la POO.
- El alumno investigar y comprobar el
significado de los trminos de abstraccin,
encapsulamiento y ocultamiento, adems del
rol que ocupan en la POO.
1.4 El estudiante realizar trabajo de

Investigacin en equipos de dos a tres


integrantes, de las diferentes
herramientas que se pueden usar para
programar en C++ (DevC++, Visual
Studio C++, Code Bloks, Eclipse, etc.),
al igual de las plataformas (Linux,
Windows) sobre las que se pueden
ejecutar. Hacer una comparativa, y
dar su opinin personal de cual tiene
ms ventajas. Elaborar una encuesta
en el grupo y determinar cul se
considera por todos la mejor. El
trabajo debe tener un formato
establecido para darle su calificacin

- El estudiante investigar y comprobar el


significado de
los trminos de abstraccin,
encapsulamiento y ocultamiento, adems del rol que
ocupan en la POO.
- El estudiante definir clases identificando atributos
y comportamiento (UML).
1.3 El docente explicar las ventajas y desventajas
de la POO.
1.4 El estudiante realizar trabajo de Investigacin
en equipos de dos a tres integrantes, de las
diferentes herramientas que se pueden usar para
programar en C++ (DevC++, Visual Studio C++,
Code Bloks, Eclipse, etc.), al igual de las plataformas
(Linux, Windows) sobre las que se pueden ejecutar.
Hacer una comparativa, y dar su opinin personal de
cual tiene ms ventajas. Elaborar una encuesta en el
grupo y determinar cul se considera por todos la
mejor. El trabajo debe tener un formato establecido
para darle su calificacin (puntos por objetivo,
desarrollo, conclusiones, citas, etc.)
- El estudiante Instalar el compilador del lenguaje
de programacin que se usar durante el curso (C+
+).
- El docente codificar el primer proyecto clsico de
Hola Mundo.
- El docente mostrar el funcionamiento del
compilador y las funciones para depurar un
programa.

(puntos por objetivo, desarrollo,


conclusiones, citas, etc.)
- El alumno estudiante Instalar el compilador
del lenguaje de programacin que se usar
durante el curso (C++).
- El docente codificar el primer proyecto clsico
de Hola Mundo.
- El docente mostrar el funcionamiento del
compilador y las funciones para depurar un
programa.

2. Clase y objeto.
2.1 Atributos y modificadores de
acceso.
2.2 Mtodos.
2.3.Mensajes.
2.4 Encapsulacin.
2.5. Constructores (default, copia,
alternativo).
2.6. Destructores.

-2.2 El docente El docente explica los conceptos


de atributos, modificadores de acceso mtodo y
comportamiento.
2.3 El instructor explica el uso de los modificadores
de acceso y puntualizar las diferencias entre
las etiquetas public y private.
El instructor muestra un ejemplo de uso de los
especificadores de acceso.
El alumno deber posicionar los especificadores
de acceso en cada una de las clases diseadas
(ejemplo: escenario propuesto por el instructor).
2.2 El docente explica cmo los
mtodos pueden cambiar el estado
de un objeto mediante el acceso
directo a los atributos del mismo.
El instructor muestra un ejemplo ilustrativo de
modificacin de atributos mediante el uso de
mtodos.
El alumno disea e implementa en cdigo, los
mtodos necesarios para las clases
especificadas (ejemplo: escenario propuesto por

2.1 El docente explica los conceptos de


atributos, y modificadores de acceso.
El docente explica el uso de los
modificadores de acceso y puntualizar las
diferencias entre las etiquetas public y private.
- El docente muestra un ejemplo de uso de los
especificadores de acceso.
Elestudiante
deber
posicionar
los
especificadores de acceso en cada una de las
clases
diseadas
(ejemplo:
escenario
propuesto por el docente).
2.2 El docente explica cmo los mtodos
pueden cambiar
el estado de un objeto mediante el acceso
directo a los atributos del mismo.
- El docente muestra un ejemplo ilustrativo de
modificacin de atributos mediante el uso de
mtodos.
- El estudiante disea e implementa en cdigo,
los mtodos necesarios para las
clases
especificadas (ejemplo: escenario propuesto

el instructor).
El instructor codifica un programa que manipule
objetos de las clases diseadas. Lo anterior con
el objetivo de verificar el comportamiento de los
objetos.
- El alumno estudiante define los mtodos
relacionados con cada tipo de objeto
especificado.
- El instructor explica el concepto de clase y
cmo especificarlo mediante un diagrama
(UML).
El alumno estudiante define los diagramas de
las clases, agregando atributos y mtodos para
cada uno de los objetos definidos.
El instructor utiliza el diagrama de clases
obtenido y lo traduce al cdigo del lenguaje
utilizado (C++).
2.4 El docente explica el concepto de
encapsulacin.
2.4 El instructor docente explica el por qu del uso
del constructor y muestra un ejemplo de
programacin, ilustrando los diferentes tipos de
constructores.
El alumno estudiante implementa los
constructores necesarios para las clases
diseadas en las actividades del punto 2.4.
2.5 El instructor explica cmo los mtodos pueden
cambiar el estado de un objeto mediante el
acceso directo a los atributos del mismo.
El instructor muestra un ejemplo ilustrativo de
modificacin de atributos mediante el uso de
mtodos.

por el docente).
- El docente codifica un programa que
manipule objetos de las clases diseadas. Lo
anterior con el objetivo de verificar el
comportamiento de los objetos.
El
estudiante
define
los
mtodos
relacionados con cada tipo de objeto
especificado y lo codifica.
- El docente explica el concepto de clase y
cmo especificarlo mediante un diagrama
(UML).
- El estudiante define los diagramas de las
clases, agregando atributos y mtodos para
cada uno de los objetos definidos.
- El docente utiliza el diagrama de clases
obtenido y lo traduce al cdigo del lenguaje
utilizado.
2.4 El docente explica el concepto de
encapsulacin.
- El estudiante deber definir, en sus propios
trminos, el concepto de encapsulacin de
datos y la importancia en la programacin
orientada a objetos.
- El docente revisa el diagrama de clases y el
cdigo correspondiente al escenario dado
como ejemplo desde el principio de la unidad
temtica.
2.5 El docente explica el por qu del uso del
constructor y
muestra un ejemplo de programacin,
ilustrando
los
diferentes
tipos
de
constructores.
- El estudiante implementa los constructores
necesarios.
2.6 El docente muestra un ejemplo de

El alumno disea e implementa en cdigo, los


mtodos necesarios para las clases
especificadas (ejemplo: escenario propuesto por
el instructor).
El instructor codifica un programa que manipule
objetos de las clases diseadas. Lo anterior con
el objetivo de verificar el comportamiento de los
objetos.
2.6 El instructor explica el uso de los modificadores
de acceso y puntualizar las diferencias entre
las etiquetas public y private.
El instructor muestra un ejemplo de uso de los
especificadores de acceso.
El alumno deber posicionar los especificadores
de acceso en cada una de las clases diseadas
(ejemplo: escenario propuesto por el instructor).
2.7 El instructor explica el concepto de
encapsulacin.
El estudiante deber definir, en sus propios
trminos, el concepto de encapsulacin de
datos y la importancia en la programacin
orientada a objetos.
El instructor revisa el diagrama de clases y el
cdigo correspondiente al escenario dado como
ejemplo desde el principio de la unidad
temtica.
2.8 El instructor revisa las prcticas de la unidad
temtica. Cada prctica debe ser entregada con
su respectivo diagrama de clases as como el
cdigo correspondiente. La revisin ser en el
lugar de trabajo mostrando la funcionalidad del
programa.
2.9
3. Sobrecarga de funciones y manejo de3.1 El docente explicar la sobrecarga de
operadores y mostrar un ejemplo en cada
objetos

destructor.
- El estudiante se integra en un equipo y de
forma colaborativa propone un problema el
cual se resuelve con todos los temas vistos
hasta el momento.

3.1 El docente explicar la sobrecarga de


operadores y mostrar un ejemplo en cada

3.1 Redefinicin de operadores


(aritmticos, relacin, unarios, insercin
y extraccin de flujo).
3.2 Sobrecarga de funciones.
3.3 Funcin amiga.
3.2
3.4 Clase amiga.
3.5 Asignacin y copia de objetos.
3.6 Paso de objetos como parmetros
en funciones.
3.7 Funciones que retornan objetos.

4. Herencia
4.1 Herencia y proteccin.
4.2 Herencia y constructores.
4.3 Relaciones entre clases.
4.4 Funciones virtuales.
4.5 Polimorfismo.

caso.
El estudiante deber conocer la importancia de
la sobrecarga y para qu sirve. Para ello
escribir una cuartilla explicando la utilidad de la
sobrecarga de operadores.
El docente explicar el concepto de las
funciones amigas y su aplicacin.
El docente define un escenario, por ejemplo: A
un programador su jefe le entrega los diagramas
de una aplicacin que es una calculadora que
tiene bsicamente cuatro operaciones
(suma,resta multiplicacin y divisin), la
aplicacin deber estar terminada para el da
siguiente sin excusa ni pretexto. Nota: el
escenario puede cambiar de acuerdo al
docente.
El estudiante analizar el escenario presentado
para encontrar los conceptos fundamentales
que finalmente se convertirn en los objetos
principales que utilizar la aplicacin.
El estudiante deber de entregar el diagrama de
clases y la codificacin correspondiente.
3.3 El docente revisa la
prcticas de la unidad temtica. Cada prctica
debe ser entregada con su respectivo diagrama
de clases as como el cdigo correspondiente.
La revisin ser en el lugar de trabajo
mostrando la funcionalidad del programa.

4.1 El docente explica las diferentes formas de


comunicacin entre clases mediante el uso de
un ejemplo prctico en UML.
El estudiante explicar las diferentes formas de
comunicacin entre clases, dando ejemplos.
4.2 El docente explica cada uno de los conceptos
de agregacin, composicin y asociacin

caso.
- El estudiante deber conocer la importancia
de la sobrecarga y para qu sirve. Para ello
escribir una cuartilla explicando la utilidad de
la sobrecarga de operadores.
3.2 El docente explicar la sobrecarga de
funciones y mostrar un ejemplo prctico.
- El estudiante resolver un problema
propuesto por el mismo, utilizando la
sobrecarga de funciones.
3.3 El docente explicar el concepto de funcin y
clase amiga y su aplicacin.

4.1El docente explica el concepto de herencia simple


y la necesidad de su implementacin.
El docente muestra la representacin de relaciones
de herencia usando un ejemplo en UML.
El docente muestra la traduccin del diagrama de
relacin de herencia a cdigo.
4.3 El docente explica las diferentes formas de

4.6 Herencia mltiple.

usando diagramas UML.


El docente define un escenario, por ejemplo:
Disear un pequeo programa que pueda
detectar discos compactos, y debe contar con:
Registro de prestamos
Consultas por: persona, categora, fecha de
prstamo
El estudiante deber de Implementar los
diagramas pertinentes ( de clases, agregacin,
composicin y asociacin).
Nota: el escenario puede cambiar de acuerdo al
docente.
El estudiante deber implementar los diagramas
de clases, relaciones de agregacin,
composicin y asociacin, usando el lenguaje
C++, del escenario analizado.
4.3 El docente explicar las relaciones de
especializacin/generalizacin mediante un
ejemplo prctico.
4.4 El docente muestra las ventajas de uso de
relaciones de herencia: reutilizacin de cdigo.
El docente muestra la representacin de
relaciones de herencia usando un ejemplo en
UML.
El docente muestra la traduccin del diagrama
de relacin de herencia a cdigo en lenguaje C+
+.
4.5 El docente explicar la redefinicin de
mtodos en clases heredadas.
4.6 El docente explicar el uso del modificador de
acceso protegido en clases, mediante un
ejemplo prctico.
El docente revisa las prcticas de la unidad
temtica. Cada prctica debe ser entregada con
su respectivo diagrama de clases as como el
cdigo correspondiente. La revisin ser en el

comunicacin entre clases mediante el uso de un


ejemplo prctico en UML.
El estudiante explicar las diferentes formas de
comunicacin entre clases, dando ejemplos.
- El docente explica cada uno de los conceptos de
agregacin, composicin y asociacin usando
diagramas UML.
El docente define un escenario, por ejemplo: Disear
un pequeo programa que pueda detectar discos
compactos, y debe contar con:
Registro de prestamos
Consultas por: persona, categora, fecha de
prstamo
El estudiante deber de Implementar los diagramas
pertinentes ( de clases, agregacin, composicin y
asociacin).
Nota: el escenario puede cambiar de acuerdo al
docente.
El estudiante deber implementar los diagramas de
clases, relaciones de agregacin, composicin y
asociacin, usando el lenguaje C++, del escenario
analizado.
4.5 El docente explicar la redefinicin de mtodos
en clases heredadas.

lugar de trabajo mostrando la funcionalidad del


programa.
5. Plantillas
5.1 Definicin de Plantillas
5.2 Plantillas de funciones
5.3 Plantillas de clases
5.4 Ejemplos de uso de la Librera
Estndar de Plantillas (STL)

Vous aimerez peut-être aussi