LAB OF COMPUTER SKILLS
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. The objectives of the course can be divided into two main categories related to theoretical and practical aspects, as described below.
- Theoretical aspects: Understanding the notion of “Computational Thinking" and its applications in social and economic sciences; understanding algorithm principles and fundamentals of programming languages as well as basic notions of data structures, information and coding; understanding the combination of hardware and software components that make up modern digital devices and computing architectures. Understanding the main features of modern communication networks, the architecture of the web, and cloud computing. Understanding the concept of mobile computing, mobile applications and IoT; understanding social networks; understanding the basic concept of database and the potential of BigData analytics as a tool for decision support; Understanding key notions in computer and network security key concepts; being aware of the risks arising from malicious software and from the exposure of corporate and/or personal sensitive information; understanding the concept of machine learning and digital currencies.
- Practical aspects: introduction to computer programming, useful for developing an alternative problem solving approach and for understanding fundamental programming principles to be adopted in finance and statistics applications.
Intended learning outcomes
At the end of the course the students will understand the basic operating principles of modern digital technologies. Furthermore, they will develop logical skills and problem solving skills through basic level coding activities.
Knowledge and understanding:
The course will deal with both theoretical and practical concepts to understand digital technologies, such as computer networks, programming languages, algorithms and databases. This course provides knowledge and analytical resources that will enable students to understand technologies, processes and software.
Applying knowledge and understanding:
The practical part will investigate the use and the key role of problem solving abilities with particular focus on how to write programs using Python.
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 judgments:
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:
The course will give the students the possibility to understand terms and concepts related to digital 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 allow students to understand how information systems work and the basic concepts related to programming. The students will improve their problem solving skills by writing simple programs using the Python programming language.
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:
- Course introduction; what is computational thinking; binary notation; definition of algorithm
- Algorithms, data structures and programming languages
- HW/SW components and architectures
- Networks fundamentals and application protocols
- Network resources, cloud computing and Web search
- Mobile computing, mobile devices, mobile applications and IoT
- Social network and graph concepts
- Data Base, BigData
- Information Security and Privacy
- Machine learning
- Digital Currencies
Practical part
- Introduction to Python
- Data type and data structure
- Variables and constants
- Conditional (if) statements and Loops
- Functions
- Recursive functions
- Search algorithms
- Numerical Algorithms
Reference Books
All the class material is available on the e-learning platform (slides, lecture notes, and reference to the textbook).
Teaching Methods
The following teaching methods will be used during the course:
- Traditional Lecture
- Online lectures
- Lab
Assessment Method
The competences are assessed via an oral or a written test (based on the number of students). There will be a midterm (python coding test).
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.
Week 1
Course introduction; computational thinking
Week 2
Binary notation; definition of algorithm and introduction
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 3
Algorithms, data structures and programming languages
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 4
HW/SW components and architectures
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 5
Networks fundamentals and application protocols
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 6
Network resources, cloud computing and Web search
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 7
Mobile computing, mobile devices, mobile applications and IoT
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 8
Social networks and introduction to graphs
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 9
Database/DBMS and BigData
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 10
Information Security and Privacy
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 11
Machine learning and Deep Learning.
Lecture in a lab (the practical part will be mainly carried out on campus).
Week 12
Digital Currencies, with focus on Bitcoin and Ethereum.
Smart Contract for the Ethereum blockchain.
Course recap
Lecture in a lab.