COMPUTER SCIENCE
- Academic year
- 2023/2024 Syllabus of previous years
- Official course title
- INFORMATICA
- Course code
- FOY05 (AF:494298 AR:274749)
- Modality
- On campus classes
- ECTS credits
- 6
- Degree level
- Corso di Formazione (DM270)
- Educational sector code
- NN
- Period
- 2nd Semester
- Course year
- 1
- Where
- VENEZIA
- Moodle
- Go to Moodle page
Contribution of the course to the overall degree programme goals
Expected learning outcomes
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.
Pre-requirements
Contents
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)
test
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
test
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
Referral texts
For the programming part a free online programming tool is being evaluated.
Assessment methods
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.