Academic year
2023/2024 Syllabus of previous years
Official course title
Course code
FOY05 (AF:494298 AR:274749)
On campus classes
ECTS credits
Degree level
Corso di Formazione (DM270)
Educational sector code
2nd Semester
Course year
Go to Moodle page
The course wants to give students an overview on key Computer Science concepts, expanding on keywords and topics that may be useful to both end users of different disciplines and people that will want to continue studying computer science.
Part I - Fundamentals
Starting from some basic hardware knowledge to properly recognize the various parts and functions, we will see the role of the Operating System and the major differences between the most widespread OSs, ending our first tour with a quick overview of the concept of virtualization.

We will examine various data types, their representations and formats, expanding on their features and use cases. We will consider plain text, formatted text, images, audio and video formats.

We will then move to data communication: explaining the client/server model and describing the ISO/OSI stack to get the basics of TCP/IP allowing us to have an overview some of the most popular application-level protocols like DNS, SMTP (thus describing the mailing system) and HTTP(S).

All the topics touched until now will be subject of a test with open answers and checkboxes before proceeding to the next part of the course.
Part II - Programming and data handling
We will begin with an overview of the most popular programming languages (C/C++, Java, Javascript, Python, PHP), describing their main features and use cases and explaining the difference between compiled and interpreted languages.

We will learn programming fundamentals using Python with an hands-on approach: every student will be requested (and possibly helped) to install it and will use it to learn the basic concepts like variables, data structures and branches via simple practical exercises.

We will then move to more complex flow control instructions like functions and loops, and learn how to use libraries to easily have access to advanced commands.

We will use the acquired skills to obtain data from external sources using APIs, scraping and perform actions on them.

To complete our data handling we’ll have an overview of databases’ basic concepts (tables, records, types, …) and SQL.

The students’ understanding will be tested with a personal project announced more or less at the beginning of the Python study. The project will ask the students to get some data from the network and manipulate it.
Part III - Modern computing issues
We will explore some of the main cybersecurity threats to end users: passwords, phishing and social engineering, wifi and public networks, scratching the surface of cryptography and secure communication channels.

From there we will end with open social issues like privacy, anonymity, AI algorithms and ethics in AI (e.g. autonomous vehicles)

A final test with checkboxes and open answers covering this part and a bit of the programming part will complete the partials.
Basic knowledge of Mathematics and Science.
introduction: how a computer works at (very) high level; hardware (CPUs, GPUs, RAM, storage, ...); firmware; operating system: main functions; operating systems overview (Windows, OSX, Linux, Android, iOS, …); virtualization (Virtual Machines, containers)
data representation and formats: plain text (charsets, UTF-8); formatted text (OASIS format, docx, odt); images (resolution, colors, compression, main storage formats); audio/video (main formats)
data communication: client/server model; ISO/OSI stack; TCP/IP; Application protocols (DNS, SMTP, HTTP)
python: introduction; overview on programming languages; installation; variables; data structures; exercises
python: more; functions; loops; libraries; data collection from external sources; APIs; scraping
databases: an overview on relational DBs; tables; types; SQL and NoSQL
security fundamentals: passwords; phishing; wifi and networks; what is crypto; secure connections
online privacy: browsers; tracking; VPN; TOR
AI and ethics: generative AI; autonomous vehicles; trolley problem
final test
The course will mostly be based on provided slides and online references, especially for the programming part.
For the programming part a free online programming tool is being evaluated.
There will be two partials and a project.
There will be a final test for those who didn’t attend or pass the partials and the project, with open questions and checkboxes covering the whole course, including the programming part.
Live lessons, personal/group projects.
Definitive programme.
Last update of the programme: 08/06/2024