CODE 114604 ACADEMIC YEAR 2025/2026 CREDITS 3 cfu anno 1 INGEGNERIA INFORMATICA 11880 (L-8 R) - IMPERIA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION IMPERIA SEMESTER Annual MODULES Questo insegnamento è un modulo di: INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING AIMS AND CONTENT LEARNING OUTCOMES This teaching unit develops the practical aspect of the course "Introduction to Computer Science and Programming". AIMS AND LEARNING OUTCOMES 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 TEACHING METHODS Classroom lessons Guided Laboratories Homework delivered through Aulaweb 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.” SYLLABUS/CONTENT 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 RECOMMENDED READING/BIBLIOGRAPHY 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) TEACHERS AND EXAM BOARD FILIPPO RICCA Ricevimento: Appointment by email LESSONS LESSONS START In accordance with the academic calendar approved by the Council of Study Programs in Computer Engineering Class schedule The timetable for this course is available here: Portale EasyAcademy