Advanced Programming
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 Java and the other in Python. 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, recursively, scalability and algorithm's 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 both 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++) and also App development on smartphones (e.g., Android).
Week | Contents | Teaching/learning activities |
---|---|---|
1 |
C programming 1. Reminder of structured programming C
2. Recursivity.
|
The 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 and algorithm's structure will be learnt by developing lists, stacks and trees, applied to a game.
During the course, some not graded activities will be proposed to students. The main activity (graded) is the development of a game. Parts of the sessions will be dedicated to consultation of students respecting their development. |
2 | Object Oriented Programming with Java 3. Object-oriented programming
|
The 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++).
During the course, some not graded activities will be proposed to students.
|
3 | Object Oriented Programming with Python 5. Python
|
The main activity (graded) is the development of a game. The development of the game will take place each day, turning small parts in to complete the game at the end of the week. Parts of the sessions will be dedicated to consultation of students respecting their development. |
From Monday to Friday.
From 9 a.m. to 12:30 p.m.
The assessment is based on developing two games: one in C or Java and another in Python, 50% each.
-
K. N. King , “C Programming: A Modern Approach”, Ed. WW Norton & Co, 2008
-
"The C++ Programming Language", B.Stroustrup, 3ªed.,Addison-Wesley, 1997.
-
P.Naughton, H.Schildt ,"Java2: The Complete Reference", Osborne/McGraw-Hill, 2000
-
"Core Java" Volumes I y II, C.S.Horstmann, G.Cornell, Sun Microsystems Press.
-
Mark Lutz, "Learning Python", Ed. O'Reilly, 2013
Vicenç Soler Ruiz obtained his PhD in Computer Science at UAB. He is the professor of the Advanced Programming subject since 2002 and professor at UAB since 2000. He was the Director of the Java Specialist Postgraduate course at UAB and, since September 2010, he is the Coordinator of UAB Specific Courses at the Sabadell Campus of the School of Engineering (UAB). He has also participated in several European research projects.
Department of Microelectronics and Electronic Systems
E-mail: vicenc.soler@uab.cat
Información complementaria
Where the course will take place
Faculty of Education
Computer Classroom 3
Contacto
Para resolver cualquier duda, contacte con nosotros: