Skip to main content

Systems programming (19/20) (T2)

Enrollment in this course is by invitation only

About This Course

Programming knowledge is not only useful for programming today’s devices such as computers and smartphones, it also opens doors to the valuable skill of computational thinking, i.e. the application of computing techniques to every-day processes.

The goal of this course is for the student to deepen their knowledge in programming techniques, including advanced object orientation, as well as some of the more fundamental data structures and algorithms. The programming language of the course is Java, although the acquired knowledge can be applied to other programming languages as well.

Emphasis is put on immediate feedback and on having a fun experience.

Practical information

  • Language: English
  • Level: Bachelor
  • ECTS: 6
  • Assessment: Evaluation of theoretical concepts through tests. Evaluation of practical concepts by developing small programs with paper and pen
  • Exam date: to be determined from 14 to 29 May 2020 / Exam resit: to be determined from 15 to 30 June 2020

Additional information about the residential course available here.

Learning Objectives:

The learners should learn from this course:

  • Design and develop applications using the Java programming language
  • Understand the main concepts of object based programming, object oriented programming, recursion, data structures and algorithms

Course Structure

Week 1. Object-Oriented Programming I

Week 2. Object-Oriented Programming II

Week 3. Object-Oriented Programming III

Week 4. Testing

Week 5. Recursion

Week 6. Linear Data Structures

Week 7. Stacks

Week 8. Queues

Week 9. Trees

Week 10. Sorting


Basic knowledge on programming (at least one course). Knowledge of the imperative part of Java. Complementary materials will be provided to catch up.


Carlos Delgado Kloos

Carlos Delgado Kloos received the PhD degree in Computer Science from the Technical University of Munich and in Telecommunications Engineering from the Technical University of Madrid. He is Full Professor at the Universidad Carlos III de Madrid, where he is Director of the UNESCO Chair on “Scalable Digital Education for All” and Vice President for Strategy and Digital Education. He introduced the teaching of Java at his University in 1997.

Course Staff Image #2

Carlos Alario Hoyos

Carlos Alario received his MSc and PhD degrees in Information and Communication Technologies from the Universidad of Valladolid, Spain, in 2007 and 2012. He is currently a postdoctoral researcher and Teaching Assistant in the Department of Telematics Engineering at the Universidad Carlos III de Madrid, Spain.