sábado, 29 de abril de 2017

Apuntes desarrollo de software - Introducción

Estos son mis apuntes de lo que he avanzado en el mini-curso "Cómo programar: datos simples", el cual hace parte del curso completo de desarrollo de software impartido por la Universidad British Columbia a través edx.org

El curso completo es en inglés, es de acceso gratuito y de forma virtual. Los mini-cursos que lo componen son los siguientes:

How to code: simple data (como programar: datos simples)

Objetivos de aprendizaje:
- Cómo representar información como datos
- Cómo enfocar cada parte de su programa en una sola tarea.
- Cómo usar ejemplos y pruebas para clarificar lo que su programa debe hacer
- Cómo simplificar la estructura de su programa usando patrones comunes
- Reconocer y representar información más complicada.

How to code: complex data (como programar: datos complejos)

Objetivos de aprendizaje:
- Cómo identificar aspectos comunes en deficiones de datos y funciones
- Cómo evitar la repetición utilizando la abstracción.
- Cómo diseñar funciones que operen sobre grafos.
- Cómo diseñar programas que buscan un problema de espacio determinado  para encontrar una solución valida.

Software construction: Data abstraction (Construcción de software: Abstracción de datos)

Objetivos de aprendizaje:
- Cómo leer y escribir programa de Java
- Cómo probar programas de Java con JUnit
- Cónstruir sistemas más grandes usando abstracción y descomposición.
- Cómo especificar, implementar, usar y probar una abstracción de datos.

Software construction: object oriented design (Construcción de software: diseño orientado a objetos)

Objetivos de aprendizaje:
- Cómo leer y usar patrones de diseño de software
- Implementr y probar un diseño orientado a objetos
- Cómo desarrollar una aplicación usando servicios online y APIs

Software engineering: Introduction: (Ingeniería de software: Introducción)

Objetivos de aprendizaje:
- Cómo construir un sistema de software no trivial usando el enfoque "agile" en parejas o en equipos.
- Aprender técnicas para especificar los aspectos funcionales y no funcionales de un sistema de software.
- Aprender técnicas para diseñar y probar un sistema de software
- el papel de la refactorización en la construcción de un sistema de calidad.

Software development Capstone project:  (Desarrollo de software proyecto Capstone)

Objetivos de aprendizaje:
- Aprender desarrollo web full-stack usando Typescript y Node.js
- Aprender como un equipo de desarrolladores construye un software
- Aprender la metodología "Agile".
- "Meter las manos" en la experiencia de la construcción de un software no trivial.

Siguiente

Cómo programar: datos simples (21) - Enumeración

Diseñar una definición de datos para representar las letras de calificaciones en un curso.  Estas letras son A, B y C, que significan bueno,...