Este texto tiene una orientacion fundamentalmente practica para ello, se ha intercalado un buen numero de actividades entre los contenidos teoricos para asimilar las ideas y dinamizar el desarrollo de las clases. Ademas al final del libro se incluyen Actividades de ampliacion y Comprueba tu aprendizaje. Los objetivos principales que se alcanzaran estudiando este libro seran los siguientes: Conceptos basicos relacionados con el software, como que se entiende por programa o algoritmo y que diferencia existe entre programa y proceso, lenguaje de programacion, clasificacion de los lengua-jes de programacion, compilacion del software o entornos de desarrollo preparados para la creacion de software. Centraremos nuestra atencion en lenguajes como C# y Java y los IDE Visual Studio y Netbeans. Metodologia de la programacion. Antes de comenzar a programar en C# o Java se realizaran peque-ños algoritmos al mismo tiempo que se estudian los componentes principales de un programa estruc-turado. Creacion de diagramas de flujo y pseudocodigos. Una vez se conocen los elementos que componen un programa estructurado se pasaran a codificar estos en C# y Java. Variables, identificadores, tipos de datos simples y compuestos, sentencias de control alternativas o bucles, etc., consiguiendo construir aplicaciones funcionales. Programacion orientada a objetos. Los conceptos principales que conforman este paradigma de la programacion. Clases, objetos, herencia, polimorfismo, interfaz, etc. Desarrollo de aplicaciones de consola y aplicaciones graficas. Se profundizara en los elementos que forman una aplicacion grafica, asi como en la programacion orientada a eventos. Flujos de datos. Programacion de aplicaciones que gestionan el flujo de informacion entre diferentes tipos de dispositivos, sobre todo entre el software y un dispositivo de almacenamiento elegido. Gestion de errores tanto en la compilacion como en tiempo de ejecucion (excepciones). Desarrollo de aplicaciones de gestion de bases de datos relacionales o bases de datos orientadas a objetos (BDOO) en C# y Java. Colecciones tipicas de C# y Java como ArrayList, List, etc.