Introducción a los conceptos de programación (terminología básica, lenguajes de programación y paradigmas de programación). Paradigma Lógico (programas recursivos, programación lógica, aplicaciones del paradigma: inteligencia artificial, sistemas expertos y procesamiento de lenguaje natural), Programación Paralela y Concurrente (conceptos básicos de concurrencia, uso de la clase Thread, interfaz Runnable, deadlock, inanición, semáforos, monitores, algoritmos de sincronización, aplicaciones de la programación concurrente y paralela), Programación Orientada a Objetos (patrones de diseño: Factory Method, Abstract Factory, Singleton, Facade, Adapter, Decorator, Prototype, Bridge, Chain of Responsibiliy, Command y Strategy, tests unitarios).