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: The course will offer both key theoretical and pratical tools to understand digital technologies, as Computer Systems, Communications and Networks, Programming language, algorithms and databases. This course provides knowledge and analytical resources that will enable students to understand technologies, processes and software. The pratical part will investigate the use and the key role of problem solving abilities with particular focus on how to write programs using Python. Applying knowledge and understanding: The students will be able to: • analyze components of information systems • identify threats in computer and network security • design and create a simple software program • write programs that use loop statements to repeat the execution of blocks of code Making judgements: We expect students to be able to analyze digital systems and how they are used inside an organization. They are expected to be able to discuss and evaluate essentials in computer and network security, in order to understand the threats in computer usage and Internet surfing. Communications Skills: This course will give the students the possibility to acquire and understand major terms and concepts of the Information Systems. The students will be able to communicate their ideas, proposals, analysis and critical reasoning in the digital world in the most effective and appropriate way. Learning skills: This course will contribute to empower learners giving them the tools to understand how information systems work, how programming languages works and how to write a simple software program using Python.

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

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

Teaching Methods

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

Assessment Method

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.

Thesis assignment criteria

The final work will be assigned (upon specific request to the instructor) to all students who demonstrate a serious and motivated interest to study the topics addressed in the course.

Does the syllabus cover sustainability topics?

no

Week 1 Contenuto sessioni on line e on campus

Session online Theory - Introduction to the course. - Algorithms.

Week 2 Contenuto sessioni on line e on campus

Session online Practice - Introduction to computational thinking. - Introduction to Python (and programming languages). - Concepts of constants and variables. - Write the first program (e.g., “Hello World”).

Week 3 Contenuto sessioni on line e on campus

Session online Theory - Binary system and Boolean Algebra. - Hardware and Software architectures.

Week 4 Contenuto sessioni on line e on campus

Session online 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

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

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

Session online Theory - Database/DBMS and Big Data.

Week 8 Contenuto sessioni on line e on campus

Session online 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

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

Week 10 Contenuto sessioni on line e on campus

Session online Practice - List and dictionaries in Python. Exercises using loops dealing with lists. E.g. (but not limited to): - Create anagrams. - Extract meaningful anagrams.

Week 11 Contenuto sessioni on line e on campus

Session online Practice - Definition of user-defined functions in Python. Exercises in Python that require to define new functions.

Week 12 Contenuto sessioni on line e on campus

Session online Final exercitation to validate the acquired knowledge.