21011 - ADVANCED COMPUTER PROGRAMMING
Department of Computing Sciences
Course taught in English
FABRIZIO IOZZI
Mission & Content Summary
MISSION
CONTENT SUMMARY
- Python programming: basic and advanced programming techniques.
- Python scientific modules
- Object-oriented programming.
- Relational databases
- Other advanced topics
Intended Learning Outcomes (ILO)
KNOWLEDGE AND UNDERSTANDING
- Describe fundamental programming strategies.
- Describe the functioning principles of database systems.
APPLYING KNOWLEDGE AND UNDERSTANDING
- Develop advanced object-oriented Python code
- Develop code for algorithmic problem solving.
- Organize and Use databases.
Teaching methods
- Lectures
- Practical Exercises
- Individual works / Assignments
DETAILS
Face-to-face lectures will contain both theoretical and applied parts. During the applied part of the lecture, the instructors will solve, together with the class, some exercises pertaining to the concepts discussed in the theory section. Then, after a few guided exercises, students can apply autonomously the techniques illustrated during the course, and they are encouraged to propose and discuss their solutions with the rest of the class.
Exercises consist in programming assignments and/or questions to be done in class under the supervision of the Instructor and the Teaching Assistant(s). Learning is to be complemented with the use of AI, available to the students. AI should be used to furhter clarify concepts, show more exercises, and provide guidance in understanding the topics. Solving the assignments improves understanding of the theoretical concepts and complements them with hands-on knowledge of the programming tools and techniques.
Assessment methods
| Continuous assessment | Partial exams | General exam | |
|---|---|---|---|
|
x | ||
|
x | ||
|
x |
ATTENDING AND NOT ATTENDING STUDENTS
There are no partial exams. The exam consists in 4 programming exercises and some theory questions. The submitted solutions will be discussed during the subsequent oral part. In the oral examination students are required to clearly justify their programming choices. Failure to provide justification will result in a (possibly heavy) reduction of the final grade.
During the course some assignments will be given to the class. If the assignments' overall score is positive, students can choose to skip one of the four exercises in the exam paper.
All assignments and exams consist of programming exercises and/or questions of several types (multiple choice, true/false, open-ended) whose aim is to assess the understanding of fundamental programming strategies and the knowledge of database systems. Collectively, the exercises will test the ability of students to develop advanced Python code for algorithmic problem solving.
Teaching materials
ATTENDING AND NOT ATTENDING STUDENTS
Lecture notes provided by the instructors.
Allen Downey, Think Python 3rd edition, available at https://allendowney.github.io/ThinkPython/
Numpy and Pandas documentation (online)