Skip to main content
CODE 80299
ACADEMIC YEAR 2026/2027
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INFO-01/A
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

The Introduction to Programming course aims to provide the basics of algorithms and programming, with a particular emphasis on scientific reasoning and computational thinking. The course combines classroom teaching activities with guided workshops to deepen and consolidate the topics covered in class.

The course has a strong applied focus, and students are encouraged to tackle problems of increasing complexity independently.

Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/corsi/11896/studenti-disabilita-dsa

AIMS AND CONTENT

LEARNING OUTCOMES

The aim of the course is for participants to become familiar with algorithm development and the methods for designing, implementing, and validating small, easily understandable code based on informal user-provided specifications. The imperative programming approach will be followed using the C++ language, limited to the non-object-oriented portion.

AIMS AND LEARNING OUTCOMES

Upon completion of the module, the student should:

  • Know the principles of computational thinking
  • Know the fundamental concepts of basic algorithm development and imperative programming
  • Be able to use text-based program development tools (written in C++, limited to the non-object-oriented part), with a text editor, command-line compilation and execution.
  • Know the principles of designing, implementing, and validating a small sequential program starting from informal specifications provided by the user.
  • Be able to produce correct and understandable code; as well as understand, use, and modify code produced by others.

PREREQUISITES

There are no specific requirements

TEACHING METHODS

  • Classroom lessons
  • Guided Laboratories
  • Homework delivered through aulaweb

Given the cultural importance of this course (at the core of all undergraduate computer science courses) attending classes and labs is strongly encouraged and suggested.

Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the course to agree on any teaching arrangements which, whilst respecting the course objectives, take into account individual learning styles. 

The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita. 

SYLLABUS/CONTENT

The course consists of lectures and a substantial amount of practical programming, including laboratory work and homework. The start date of the lab will be announced in class.

Topics Covered in Class

  • Introduction to the course, computational thinking, algorithms, and programming.
  • Programming environments and formal languages.
  • Algorithm development in pseudocode: simple data structures and algorithms for homogeneous and heterogeneous data sequences.
  • Imperative programming: variables and constants; assignment; input/output; selection constructs; iteration constructs; basic types; structured data types: sequences and structs; functions and parameter passing mechanisms; pointers; dynamic heap allocation; dynamic arrays; simple lists and operations on simple lists; simple recursion.

RECOMMENDED READING/BIBLIOGRAPHY

Slides will be available but are not sufficient getting ready for the exam.  

  • Reference book: D.S. Malik Programmazione in C++ Apogeo, 2011, ISBN 978-88-503-2967-0 (or english version)
  • Alternatively B. Stroustrup, Programming: Principles and Practice Using C++, Addison-Westley, 2009, ISBN 978-0321543721. 

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

According to the calendar approved by the Degree Program Board:  https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso

 

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam is made of 2 parts

  1.  a written examination on theory  
  2. a laboratory exam, accessible after theory exam has been positively evaluated

More details on AULAWEB

Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at  https://corsi.unige.it/en/corsi/11896/studenti-disabilita-dsa 

ASSESSMENT METHODS

The theory test will allow us to verify the acquisition of:

  • Principles of computational thinking and fundamental concepts of imperative programming with classical programming languages
  • Basics of imperative programming and use of a textual environment for program development (created in C++ language, limited to the non-object-oriented part), with a text editor, compilation and execution from the command line.

The laboratory test will allow us to verify:

  • Acquisition of the principles of design, implementation and validation of a small sequential program starting from the informal specifications provided by the user.
  • Ability to produce correct and comprehensible code; ability to understand, use, modify code produced by others

FURTHER INFORMATION

For further information, please refer to the course’s AulaWeb module or contact the instructor.

Students with valid certifications for Specific Learning Disorders (SLD) may request accommodations for exams at least 7 days prior to the exam date by filling out the “accommodation request form” (available via online services at https://modulionline.unige.it/richiesta-adattamenti# no-back), which will be automatically forwarded by the system to the instructor in charge of the course and to the faculty liaison for students with disabilities and SLDs in their School/Department. 

The student will receive a copy of their request.