Skip to main content
CODE 101120
ACADEMIC YEAR 2020/2021
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
TEACHING LOCATION
  • GENOVA
SEMESTER Annual
TEACHING MATERIALS AULAWEB

OVERVIEW

The course introduces the student to modern information and communication systems for the processing and management of the information. The course is divided in two parts. The first part focuses on providing the fundamental notions of computer architectures, operating systems, and computer networks. The second part provides the computer programming bases, with emphasis to scientific reasoning and computational thinking.

AIMS AND CONTENT

LEARNING OUTCOMES

The course aims at introducing the student in the field of modern electronic methods for the management of information, related communications and basic methods of calculation.The course follows two distinct strands; the first concerns the study of the architecture of computing systems, the representation of information within them, the organization and operation of networks and of the Internet;the second teaches on the fundamentals of programming.

AIMS AND LEARNING OUTCOMES

The course is divided in two parts.

The first part of the course describes the computer hardware architecture and the computer operating system. This part offers a solid background to the students. In this first part, the students will acquire the fundamental knowledge of

  • computer hardware architecture;
  • computer operating system;
  • computer network architectures and protocols.

The second part of the course provides the computer programming bases, with emphasis to scientific reasoning and computational thinking. In the second part of the course students will acquire the ability to face problems of increasing complexity autonomously.  Students will acquire

  • the computational thinking and programming principles;
  • the knowledge of the fundamental concepts of imperative programming;
  • the principles of designing, implementing, and validating a small sequential program based on the informal specifications provided by the user;
  • the ability to produce correct and comprehensible code;
  • the ability to understand, use, debug, and modify computer code.

PREREQUISITES

none.

TEACHING METHODS

The course will consist of

  • Classroom lessons;
  • Guided laboratories;
  • Homework;

Given the contents and the structure of the course, attending classes and laboratories is strongly encouraged and suggested.

SYLLABUS/CONTENT

  • Introduction to the course
  • First Part (Computer Architecture, Operating Systems, Computer Networks)
    • Computer Architecture
      • Digital Logic (Circuits and Components)
      • Data Representation
      • Register Transfer and Microoperation
      • Basic Computer Organization and Design
      • Computer and Programming
      • Central Process Unit and Pipeline
      • Input output and memory
    • Operating Systems
      • Operating-System Structures
      • Processes, Threads, Synchronization
      • CPU Scheduling
      • Memory (main, virtual, mass)
      • File System and IO
    • Computer Networks
      • Network Architecture
      • Circuit Switching vs Packet Switching
      • The OSI Reference Model
        • the Physical Layer
        • the Data Link Layer
        • the Network Layer
        • the Transport Layer
        • the Application Layer
  • Second Part (Computer Programming)
    • Computational thinking and programming
    • Programming environments and formal languages
    • Imperative programming: variables and instructions; assignment; input / output; if-then-else; loops; types; arrays; strings; functions; struct; dynamically allocating memory; recursion
    • Simple algorithms on sequential data: ordering and search
    • Computational Complexity
    • Introduction to problem analysis and solution design, with examples

RECOMMENDED READING/BIBLIOGRAPHY

The following books will be used as reference

  • M. Morris Mano – Computer System Architecture;
  • A. Silberschatz, P. B. Galvin, G. Gagne – Operating System Concepts;
  • A. Tanenbaum, Computer Networks;
  • Stephen G. Kochan - Programming in C
  • B. W. Kernighan, D. M. Ritchie – The C Programming Language.

TEACHERS AND EXAM BOARD

Exam Board

LUCA ONETO (President)

LUCA VERDERAME

DAVIDE ANGUITA (President Substitute)

LESSONS

LESSONS START

Lectures will start in accordance with the academic calendar.

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Written test (with the possibility of split it in a mid-term plus final-term exams) and an oral exam.

ASSESSMENT METHODS

The final evaluation will take into account:

  • class attendance;
  • the knowledge of the course contents tested with the written exam;
  • the problem-solving skills tested with the homework, written and oral exams;
  • the communication skills tested during the oral exam.