07276 - Computer Science

Course Unit Page

Academic Year 2019/2020

Course contents


Presentation of the course, etymology and history of computing. The increase in complexity as the motivation of the explosive development of information technology. From single-user systems and monotasks to mainframes, personal computers, client-server systems, Internet, to the Web.

1. Introduction to Aims and Operation of the Internet.

Communication: codes, oral languages, written languages, multimedia, hypertext; analogic and digital.
Internationalization, localization, character encodings: ISO 646 (ASCII), ISO 8859, ISO 10646 (Unicode).

Interconnection: local and wide area networks; connection mode, routers.

The Internet protocols stack: physical access layer (ISO-OSI 1 and 2), inter-networking layer (ISO-OSI 3), transport layer (ISO-OSI 4), application layer (ISO-OSI 5, 6 and 7).

Services operating on the Internet: e-mail, DNS and others; real-time services: VoIP and IPTV.

Web: a protocol (HTTP), a language (HTML), and resources locator (URL).

2. Organizational Aspects of a IT project.

Security issues and data protection.

Authentication, authorization, privacy: something you know (password), something you have (smartcard), something you are (biometrics).

Data encryption and electronic signature. Certificates.

Languages in Computer science: programming languages; other languages: mark-up languages (with entities and elements) and languages for stylesheets; introduction to HTML and CSS.

Software lifecycle; software development: editing, translation, linking, execution.

3. Programming in an Imperative Procedural Language.

Prerequisites: requirements discovery, interaction definition, logical aspects.

Programming languages: generative grammars, use of BNF, typologies of languages (imperative procedural, functional procedural, logical descriptive), OB and OO languages. Attributes and methods.

Introduction to JavaScript, an imperative procedural programming language OB with attributes and methods.

Types in programming languages; operators, expressions and functions; constants, variables, parameters.

Instructions in programming languages; comments, assignment, sequence, choice, loop.

Organization of a program: HIPO and Top-Down.

Iterative programs and recursive; simple examples: factorial, Fibonacci, binomial distribution.

4. Introduction to Aims and to Operation of a Database.

Organization of a modern database inspired by the concept of set. DBMS.

Tables and principles of normalizing a database. Logical entity relationship model and physical model.

Primary keys, unique, external.

Main activities: DDL (Definition), DML (Manipulation), DQL (Query), DCL (Control).

Ancillary activities: Stored procedures and transactional activities.

Conclusion: example of an examination.


Students are not required to purchase specific texts. We provide updated training materials. However , students can freely ask for texts relating to specific topics.


Notes available on http://campus.unibo.it/cgi/lista?annoAccademico=2015&email=aldopaolo.palareti@unibo.it.

Reference documentation on http://www.html.it/ (Italian) and http://www.w3schools.com/ (English).

Teaching methods

Theoretical and pratical lessons.

Assessment methods

The final test is divided into three parts:

  • a written 50 minutes test (with open questions and held in the laboratory) to check the knowledge of basics; after the first 25 minutes, students can consult their notes;
  • a practical 50 minutes test in laboratory to verify the student's ability to create a web page with HTML, CSS and a C-like language; after the first 25 minutes, students can consult their notes;
  • an oral examination to test the level of understanding of the course and the student's critical capabilities.

Only students who have obtained at least 4/10 in both written and practical test can sustain the oral examination. Written and practical tests are valid until February of the next academic year.

Office hours

See the website of Aldopaolo Palareti