Course Objectives

This course introduces the fundamental concepts of programming, and their implementation in the Java language.

Emphasis is placed on abstraction mechanisms, such as methods, classes, inheritance hierarchies and polimorphism.


There will be 2 lecture sessions and 1 lab session each day, with a total of 20 lecture hours and 10 lab hours. The topics covered each day are:
  1. Introduction to programming with Java. Primitive types and operators.
    Lab: Basic usage of a Java programming environment.
  2. Control flow. Methods.
    Lab: Development of simple methods.
  3. Arrays. Classes and objects.
    Lab: Creation of classes, derivation of objects.
  4. Polimorphism. Inheritance.
    Lab: Usage of polimorphism and development of an inheritance hierarchy.
  5. Dynamic data structures.
    Lab: Definition and usage of those structures.
Some students of ETSIT/UPM offered to collaborate as laboratory assistants.

Examples and exercises to be developed during laboratory sessions can be found here.


Basic knowledge of computers.
Basic knowledge of any programming language.
Basic knowledge of object-orientation.

Course exam

Students will be asked to work on a mini-project following the examples developed during the lab sessions.
Final written exercise.


Deitel and Deitel.
Java, How to Program, 2nd. ed.
Prentice Hall, 1998