Skip to content

Trabajos practicos y algunos ejercicios de la materia Algoritmos y programación III - 75.07 Suarez - 1C2020

License

Notifications You must be signed in to change notification settings

brunograssano/Algoritmos-3-fiuba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algoritmos-3-fiuba

Trabajos prácticos y algunos ejercicios de la materia Algoritmos y programación III (Cátedra Suarez)

Durante esta materia se busca que los alumnos adquieran los conceptos centrales de la programación orientada a objetos más algo de diseño y calidad de código, junto con algunas buenas prácticas básicas de construcción de software. También se ve al final de la materia parte del desarrollo de aplicaciones de interfaz de usuario gráfica y algunas problemáticas típicas, como persistencia y concurrencia.

Durante la materia se utilizó Java y Smalltalk.

Se dejan algunas de las lecturas usadas en el transcurso de la cursada.

Lecturas obligatorias

Primera parte:

  • "Design Principles Behind Smalltalk", Dan Ingalls
  • "Unit Testing Guidelines", Petroware SA
  • "8 Principles of Better Unit Testing", Dror Helper
  • "The Art of Enbugging", Andy Hunt & Dave Thomas
  • "GetterEradicator", Martin Fowler
  • "Replace Conditional With Polymorphism", SourceMaking
  • "What's a Model For?", Martin Fowler
  • "Pruebas de software", Carlos Fontela
  • "Code Complete", Chapter 5 Design in Construction, Steve McConnell

Segunda parte:

  • "Continuous Integration", Martin Fowler
  • "Estado del arte y tendencias en Test-Driven Development", Carlos Fontela
  • "Using Java Reflection", Glen McCluskey

Programa Analítico

Primera parte

  • Programación orientada a objetos y prácticas metodológicas
  • Resolución de problemas mediante objetos y mensajes.
  • Diagramas de secuencia de UML. Comportamiento como noción central. Encapsulamiento. Polimorfismo (noción). Responsabilidades de los objetos. Uso en Smalltalk (ambiente Pharo).
  • Implementación del comportamiento de objetos con clases usando diseño por contrato y pruebas unitarias como especificaciones.
  • Excepciones básicas. Automatización de pruebas unitarias. Principios de construcción de pruebas unitarias. Implementación en Smalltalk y SUnit.
  • Colaboraciones de objetos. Delegación y programación por diferencia. Relaciones entre clases: asociación y herencia. Diagrama de clases de UML. Implementación en Smalltalk.
  • Polimorfismo (profundización): Implementación en lenguajes con y sin chequeo estático e implementación en lenguajes sin clases. Interfaces en Java (noción).
  • Java como lenguaje con verificación estática. Polimorfismo en Java, con herencia y con interfaces.
  • Excepciones en general y excepciones chequeadas en Java.
  • Atributos de clase. Métodos de clase. Encapsulamiento y visibilidad. Inicialización, construcción, asociación y composición. UML y modelado (clases, secuencias, paquetes, estados).

Segunda parte

  • Calidad de código, buenas prácticas y temas avanzados
  • Diseño orientado a objetos (noción). Refactorización. TDD. Uso de dobles de prueba (noción).
  • Buenas prácticas de XP. Integración y delivery continuos (noción).
  • Temas generales de diseño. Principios de diseño. Algunos patrones de diseño.
  • Construcción de aplicaciones con interfaz de usuario gráfica. MVC como patrón arquitectónico. Experiencia de usuario y usabilidad. Java FX.

Temas avanzados

  • Información de tipos en tiempo de ejecución y reflexión, copia y clonación, genericidad.
  • Persistencia: serialización nativa y portable (nociones).
  • Concurrencia y su implementación en Java.

About

Trabajos practicos y algunos ejercicios de la materia Algoritmos y programación III - 75.07 Suarez - 1C2020

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published