The main objective of the subject is the improvement of the students' programming skills and knowledge, and for that reason this course is practice oriented. The assessment is based on developing two games: one in C and the other in Java or Python (to be chosen by student). The development of games, as a basis for the practices of the subject, provides the obligation to use many different aspects of the programming languages and makes the subject more attractive.
It is oriented to students of any degree (maths, physics, engineering, chemistry, etc.; not necessarily computer science) who have already started programming and want to improve their knowledge and skills.
The subject has two different parts. A first objective is to achieve a good level of structured programming (with C), so students will be able to structure an application and to program complex algorithms. Concepts as pointers, dynamic memory allocation, referenced parameters, recursivity, scalability and algorithms structure will be learnt by developing lists, stacks and trees, applied to a game.
A second objective is to achieve a good level in Object-Oriented Programming (with Java and Python) and also how to structure and develop an application using OOP. The concepts taught in this part (class definition, inheritance, overloading, overriding, etc.) can be used as the basis for learning any other object-oriented language (e.g. C++). This second part also includes App development on smartphones (e.g. Android).