This course aims to introduce students to the fundamental principles of computer science and imperative programming. Through the use of the C++ language, students will develop computational thinking skills and acquire the ability to design, implement, and test simple programs. The course combines theoretical knowledge with practical programming experience, enabling students to use basic programming constructs and data structures effectively.
Students will learn the basics of programming with the C++ language, focusing on creating simple programs. They will explore fundamental concepts and techniques to write and debug code.
The course will also introduce:
The concept of pseudocode and flowcharts
The notions of syntax and semantics of a programming language
Basic elements of formal grammars
An introduction to visual programming using tools like Blockly
After the completion of the course, the participants will be able to:
Grasp Computational Thinking principles effectively
Understand imperative programming concepts
Utilize an imperative programming language (C++, limited to non-object-oriented concepts)
Design, implement, and validate small sequential programs based on informal user specifications
Write small-scale C++ programs with correct and comprehensible code
Operate an IDE (e.g., VS Code) comfortably
Attending classes and labs is strongly encouraged and suggested
Students with certification of Specific Learning Disabilities (DSA), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools.
It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Office for the Inclusion of Students with Disabilities and DSA.”
The course includes both theoretical lessons held in the classroom and a significant practical component of programming activities conducted in the lab.
Main topics:
Introduction to the course, computational thinking, and programming
Programming environments and formal languages
Pseudocode and flowcharts
Syntax and semantics of programming languages
Basic notions of grammars and formal language theory
Introduction to visual programming (e.g., Blockly)
Imperative programming in C++: variables and instructions; assignment; input/output; if-then-else; loops; types; structured types (1-dimensional or multi-dimensional arrays, strings, structs); functions and parameter passing; pointers; dynamic memory allocation (heap); dynamic vectors; linked lists; recursion
There is no textbook for this course. You may find some of the following online materials helpful:
C++ Language Tutorial (https://cplusplus.com/doc/tutorial/)
An Introduction to C++ Programming for First-time Programmers - C++ Programming Tutorial (https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp0_Introduction.html)
Ricevimento: Appointment by email
FILIPPO RICCA (President)
DAVIDE ANGUITA
ROBERTO SACILE (President Substitute)
In accordance with the academic calendar approved by the Council of Study Programs in Computer Engineering
The timetable for this course is available here: EasyAcademy
Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento/Ask the professor for other information not included in the teaching schedule