MACHINE LANGUAGES

MACHINE LANGUAGES

Instructional goals

The course provides the basics to understand the principles of operation of modern digital technologies and allows students to develop, through programming techniques, computational thinking, a logical-creative process that allows you to solve complex problems efficiently.

Intended learning outcomes

Theoretical aspects: understanding the representation of information in the electronic calculator, linking the binary numbering system with the physical characteristics of the digital circuits (which make managing only two values very convenient); understand Boolean algebra (whose variables and functions can take only two values) in relation to the representation of Boolean expressions in terms of logical circuits; understand the structure and operating principles of an electronic calculator in terms of hardware (physical components) and software architecture; understand the concept of algorithm and the principles of programming; understand the main features of modern computer networks, communication protocols and web architecture; understand the concept of database and the potential of Big Data as a decision support tool; understand the key concepts of cyber security; be aware of the risks deriving from the use of malicious software and from the exposure of sensitive corporate and personal information. Practical aspects: carry out basic level programming activities, useful for developing a creative and efficient approach to solving problems; understand types and structures of data; understand the concepts of constants and variables; knowing how to write simple programs according to a sequential logic; know how to write programs that provide alternative flows through the use of conditional instructions; knowing how to use iterative instructions to repeat the execution of portions of code.

Course Contents

The program consists of a theoretical part (traditional lessons) and a practical part (classroom exercises with Python programming language). The contents of each part are described below. Theoretical part: - Binary system and Boole algebra. - Hardware and software architecture. - Networks, Internet, communication protocols and web services. - Database / DBMS and Big Data - Encryption, information security and privacy. Practical part: - Introduction to Python - Types and data structures - Constants and variables - Iterative control structures. - Conditional control structures

Reference Books

1) "Informatica di base" by D. Curtin, K. Foley, K. Sen, C. Morin, A. Marengo, A. Pagano, McGraw-Hill Education; 7th edition 2) "Logica" by A. Varzi, J. Nolt, D. Rohatyn, McGraw-Hill; 2nd edition 3) "A Whirlwind Tour of Python" by Jake VanderPlas, Ed. O’Reilly Media Inc. (freely downloadable)

Teaching Methods

Teaching methods used during the course: - frontal or online teaching and exercises.

Assessment Method

Teaching methods used during the course: - frontal or online teaching and exercises.

Thesis assignment criteria

The exam consists of an oral interview in which the student must demonstrate knowledge and understanding of the basic principles of computer science, programming, the calculation of propositions and mathematical logic introduced in class, and to have achieved the study method and learning skills necessary to continue the study of the subject autonomously. For the purposes of attributing the suitability judgment, the following evaluation criteria will be taken into account: knowledge and understanding of the principles of the matter and ability to apply them to concrete cases (65%); lexical property and ability to consult and evaluate relevant sources and acquisition of the study method (35%).

Does the syllabus cover sustainability topics?

No.

Week 1 Contenuto sessioni on line e on campus

Theory - Introduction to the course. - Binary system and Boole algebra. - Hardware and Software Architecture.

Week 2 Contenuto sessioni on line e on campus

Evolution of computing machines. Analog calculators (abacus, ruler). Digital Calculators. Historical evolution of digital computers Architecture by Von Neumann. The central processing unit Control unit and arithmetic-logic unit

Week 3 Contenuto sessioni on line e on campus

Introduction to formal logic. The calculation of propositions. Elementary propositions. Logical connectives or Boolean operators. Compound propositions. Truth tables. The binary representation of information. From Boolean algebra to logic circuits. Elementary gates.

Week 4 Contenuto sessioni on line e on campus

Representation of information. Two's complement arithmetic operations. Equivalence of logical propositions. Properties of propositions. Laws of De Morgan. Logic circuits. Semi-adder. Full adder. Serial adder.

Week 5 Contenuto sessioni on line e on campus

Technical and economic reasons for distributed systems. Fundamental concepts. Main types of IT network: Local networks Metropolitan networks Geographic networks The Ethernet network The Aloha Net (Additive Links Online Hawaii Area) Operating principle CSMA (Carrier Sense Multiple Access) Collision detection: CSMA/CD The ether and the means of transmission The data format: Ethernet frames, headers, payload Aspects relating to the confidentiality of communications Networks for personal computer applications: Desk Area Network Personal Area Network Small-scale networks: Multi-processor systems Multi-core processors Logical networks Combinatorial Sequential

Week 6 Contenuto sessioni on line e on campus

Introduction too Internet. The Arpanet DARPA Project. Internet terminology: hosts, multihomed hosts, routers, IP Address, IP networks. The protocol layering. ISO/OSI Architecture. TCP/IP protocols. IP address: statical, dynamic, internal, not assigned. Network address translation.

Week 7 Contenuto sessioni on line e on campus

Introduction to cryptography. Importance of cryptography. Kerchoff principle. Perfect security cryptography. Vernam Cipher . One Time Pad. Historical examples: the Caesarian Cipher.

Week 8 Contenuto sessioni on line e on campus

Introduction to software programming. The Python language. How to obtain and install the Python software. Using the IDLE integrated environment. The Python Interpreter. My first Python program. How to save commands and how to compose a program.

Week 9 Contenuto sessioni on line e on campus

Python elements of programming style. First examples. Pre-build functions print(), round(), int(), eval(). Data types in Python. The type() function. Numbers and arithmetics. Sample progtrams with input data. Strings data type. Bool data type. Conditional commands if, if-else, if-elif-else. Relational and comparison operators. Membership operators

Week 10 Contenuto sessioni on line e on campus

Lists and operations. Accessing items in a list. Iterative commands. For and while commands.

Week 11 Contenuto sessioni on line e on campus

Modules and libraries. Functions and procedures. recursive functions (examples). Tuples and dictionaries,

Week 12 Contenuto sessioni on line e on campus

Tutorial lesson.