MACHINE LANGUAGES

MACHINE LANGUAGES

Instructional goals

The course provides the basis for understanding the working principles of modern digital technologies and their implications on our daily life at the individual and organizational level. A crucial aspect will be to develop “computational thinking” competencies, that is, the ability of expressing problems and their solutions in ways that a computer could execute in order to solve complex problems in an efficient way. The objectives of the course can be divided into two main categories related to theoretical and practical aspects, as described below. - Theoretical aspects: understanding algorithm principles and fundamentals of programming languages; understanding Boolean algebra, along with the relationship between Boolean variables which is used to design combinational logic circuits using Logic Gates; understanding the combination of hardware and software components that make up modern digital devices; understanding the main features of modern communication networks, and the architecture of the web; understanding the basic concept of database and the potential of Big Data analytics as a tool for decision support; understanding key notions in computer and network security key concepts; understanding the risks arising from malicious software and from the exposure of corporate and/or personal sensitive information. - Practical aspects: introduction to computer programming, useful for developing an alternative problem-solving approach; understanding the concepts of constants and variables; understanding how to write programs that use conditional statements in order to provide alternative flows; understanding how to write programs that use loop statements to repeat the execution of blocks of code; understanding how to define user-defined functions.

Intended learning outcomes

Knowledge and understanding: students will acquire basic knowledge related to digital technologies, Boolean logic and programming; in particular, students will have a clear understanding of the concepts of computer networks, databases, computer security. Students will also acquire a basic knowledge of the Python programming language, the data structures and the main instructions offered by the language. Ability to apply knowledge and understanding: the student will be able to carry out computational reasoning for solving binary logical problems and for cerating programs, using the Python language. Autonomy of judgment: the student will develop a critical awareness for the formulation of autonomous judgments on digital technologies, and on their use, and they will become familiar with the basic logical operations of Boole's algebra. Communication skills: the student will gain the ability to communicate by adopting a vocabulary and technical terminology inherent to the topics covered. Learning skills: the student will be able to continue investigating autonomously the issues related to the use of digital technologies, once the basic setting offered by the course has been acquired.

Course Contents

The syllabus consists of a theoretical part (classroom-based lessons) and a practical part (lectures in a lab). The contents of each part are described below. Theoretical part: - Algorithms. - Binary system and Boolean Algebra. - HW/SW components and architectures - Networks fundamentals and application protocols. - Database/DBMS and Big Data - Cryptography, Information Security and Privacy. Practical part - Introduction to Python. - Data type and data structure. - Variables and constants. - Conditional statements. - Loops. - Functions.

Reference Books

Teaching Methods

All the class material is available on the e-learning platform.

Assessment Method

The following teaching methods will be used during the course: - Traditional Lectures. - Laboratory sessions.

Thesis assignment criteria

The competences are assessed via an oral or a written test (based on the number of students). The 50% of the final grade will be given by the theoretical part and the 50% of the final grade will be given by the practical part.

Does the syllabus cover sustainability topics?

The topics in the syllabus are a precondition for assessing the impact of automated decision processes on individuals' rights and freedoms

Week 1 Contenuto sessioni on line e on campus

Theory - Introduction to propositional logic. - Truth tables. - Examples

Week 2 Contenuto sessioni on line e on campus

Practice - Logical synthesis -De Morgan laws and logical equivalences - Elementary logic inferences

Week 3 Contenuto sessioni on line e on campus

Practice Logic problems and solutions

Week 4 Contenuto sessioni on line e on campus

Practice - Concepts of data types. - Arithmetic operators in Python. - String operators in Python. Exercises in Python, e.g. (but not limited to): - Data type conversions. - Python as a calculator.

Week 5 Contenuto sessioni on line e on campus

Theory -Computer architecture

Week 6 Contenuto sessioni on line e on campus

Practice - Introduction to boolean variables in Python. - Conditional statements (if, elif, else). Exercises with Boolean expressions. Exercises with conditional statements. E.g., (but not limited to): - Find the maximum and minimum of a set of numbers.

Week 7 Contenuto sessioni on line e on campus

Theory - Computer networks and Internet. - Communication Protocols. The Web.

Week 8 Contenuto sessioni on line e on campus

Practice - Loops (for, while). - Understanding of the three elements basic elements of algorithms: sequence, selection and iteration. Exercises with for and while loops. E.g. (but not limited to): - Sorting algorithms. - Pattern Matching algorithms.

Week 9 Contenuto sessioni on line e on campus

Theory -Database architectures

Week 10 Contenuto sessioni on line e on campus

Practice Exercises using iterative and conditional instructions. E.g. (but not limited to): - Create anagrams. - Extract meaningful anagrams. - Definition of user-defined functions in Python. Exercises in Python that require to define new functions.

Week 11 Contenuto sessioni on line e on campus

Theory - Information Security and Privacy. - Cryptography (symmetric and asymmetric). - Digital Signature.

Week 12 Contenuto sessioni on line e on campus

Interim written test on the entire course program.