09730 - Principles of Informatics

Scheda insegnamento

Academic Year 2011/2012

Course contents

Introduction to digital devices

Structure and behaviour. Analysis and synthesis. Analogic and digital signals. Switch networks. Combinational and sequential logic networks. The concept of computing machine and algorithmic computation.

Information processing

Positional numbering systems. Binary numbers. Counting in binary, decimal, octal, hexadecimal base. Operations between binary numbers. Base conversion. Conversion of decimal numbers into any number base and vice versa. Codes. Numbers coding and binary codes. Error detection codes. Information communication: transmission, control, synchronization. Information protection. Error correction codes. The parity bit. Hamming code.

Combinational and sequential logic networks

Expressions, functions and logic diagrams. Variables, bits and binary configurations. Boolean functions. Truth tables. Functions of one or two variables. Logic gates and operations. Expressions and functions. Expressions and logical diagrams. Boolean and switching algebra. Expressions of incomplete functions. Canonical form. Combinational logic applications: multiplexer, encoder, decoder, half adder, full adder. Minimum cost networks. Minimum expressions. Karnaugh Maps. Analysis and synthesis. Binary memories. Latch SR and CD. Flip flop D. Registers and counters.

Computer architecture

Von Neumann model. Functional principles. Computer hardware abstract representation. Microprocessor systems. Bus. CPU access to data and instructions.

Programming

Algorithms and data structures. Pseudo-code. Flow diagrams. Algorithm designing techniques. Structured programming. Assignment, variables and statements. Data structures. Constructs for structured programming. Procedural programming. Notes on computational complexity.

The C language

Basic constructs. Data structures in C. Data types. Global and local variables. Scope of a variable. Arrays and pointers. Functions and prototypes. Input/Output. Logic expressions. Precompiler directives and macros. Modular  programming. Compiling C programs.

Readings/Bibliography

Duplicated lecture notes and material supplied by the teacher.

Programming:
BOOK
B.W. Kernighan, D.M. Ritchie
C programming language
Pearson - Prentice Hall

ON LINE TUTORIAL
Brian Kernighan
Programming in C, a tutorial
http://www.lysator.liu.se/c/bwk-tutor.html

Teaching methods

Classroom lessons where each topic will be treated jointly with significant case studies to highlight its meaningful applications. In order to make the students aware of the different topics, many homework exercises will be proposed and publicly corrected aftewards.

Assessment methods

The students will be evaluated through a classroom practice and oral examination.

Teaching tools

In the teaching material section (the link is on top of this page) all the slides shown in class are available for download.

Office hours

See the website of Alessandro Bevilacqua