GithubHelp home page GithubHelp logo

brunograssano / algoritmos-3-fiuba Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 1.25 MB

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

License: MIT License

Smalltalk 73.72% Java 7.06% TeX 19.22%
principles trabajos-practicos oop solid-principles smalltalk java fiuba 7507

algoritmos-3-fiuba's Introduction

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.

algoritmos-3-fiuba's People

Contributors

brunograssano avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.