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.