PROCEDURAL AND OBJECT-ORIENTED PROGRAMMING

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2017/2018
Year: 
2
Academic year in which the course will be held: 
2018/2019
Course type: 
Supplementary compulsory subjects
Credits: 
6
Period: 
Second semester
Standard lectures hours: 
48
Detail of lecture’s hours: 
Lesson (48 hours)
Requirements: 

The knowledge of a programming language and of basic data structures is highly recommended.

Final Examination: 
Orale

Written test and oral exam. The written test (two hours) consists of 6 questions related to the topics of the course (5 points are available for each question). With a positive result (the sum is in the range [18-30]) a student may either register the vote or access to the oral exam which is organized in two phases:
1) A discussion on the written test (the student may explain in details its answers so that the teacher can possibly reconsider the vote);
2) An in-depth analysis of some topics of the course.
The final vote is the average ot the two votes (written test and oral examination)

Assessment: 
Voto Finale

The course provides the basics of procedural and object oriented programming. These two paradigms are presented through concrete examples inspired to C and C++, the two languages that will be learned. The main goal is the knowledge of the inner mechanisms of language implementation.
The student will learn to develop programs in C and C++ by effectively exploiting the characteristics of the languages.
The operational semantics of C and C++ allows the student to proceed to an in-depth analysis of other programming languages as well as to enrich the technical expertise autonomously. Problem-solving by a procedural or an object-oriented approach is also a goal to achieve.

Lectures deal with the following topics:

1) Procedural programming (4h)
2) The C language: basics (8h)
3) The C language: advanced features (12h)
4) Object oriented programming: basic definitions and notions (6h)
5) The C++ language: basics (6h)
6) The C++ language: advanced features (single and multiple inheritance, visibility, polymorphism, subtyping) (10h)
7) The STL library (2h)

In addition to slides and lecture notes (provided through the e-learning system), the reference books are:

1) Brian W. Kernighan - Dennis M. Ritchie ,The C Programming Language, Prentice Hall software series, (2nd ed.)
2) Al Kelley - Ira Pohl, A Book on C, Addison-Wesley (4th ed.)
3) Bjarne Stroustrup, The C++ Programming Language (4th Edition), A&W Pearson education

Lectures (48 hours). Each lecture presents both theoretical and implementation issues.

The teacher is available for explanations upon appointment (to be fixed via e-mail or at the end of the lecture).