- Docente: Aldopaolo Palareti
- Credits: 10
- SSD: ING-INF/05
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Rimini
- Corso: First cycle degree programme (L) in FINANCE, INSURANCE AND BUSINESS (cod. 8053)
Learning outcomes
Goals: knowing the structure of a computer; understand the basic elements of programming; develop simple programs, with particular emphasis on statistical elaborations; use a C-like programming language.
Course contents
(An asterisk [*] indicates optional parts)
Introduction to computer science
Philosophical background
- Language, Logic, the choice of principles (Rhetoric), the study
of interaction (Dialectic)
Pre-linguistical background
- model of communication
- transmitter, receiver, medium
- noise
- encoding-production-perception-decoding
- codes
Linguistical background
- Switching from codes to languages
- Oral language: interactive and multichannel
- Written language: texts
- Hypertext systems and multimedia
Logical and Mathematical background
- Propositional calculus (two-valued)
- Main logic operators
- Logical properties: Double negative elimination, Tertium non
datur, De Morgan
- Numbers
- Numbering systems
- Positional systems
- [*] Decimal system: tables of operations
- Binary system: tables of operations, Two's complement
- [*] Hexadecimal system
History of computer science
- '900: The increasing complexity of the systems
- The birth of computer science
- The reasons the development of IT
- The Von Neumann machine: fetch-and-execute cycle
- Numbers in Computer science: binary encoding
- Texts in Computer science: character encoding schemes, Ascii,
Iso, Unicode
- [*] Serialization
- [*] Centralized system
- PC
- Classes of computers
- [*] The client-server architecture model
- Network
- Internet
- The Web
- The future: The invisible computer
Hardware and operating system
- Components outside Von Neumann machine: input, output,
storage
- [*] Dos
- [*] Virtual memory
- User interface: GUI
- Monotask monuser
- [*] Multitask (multithreaded)
- Multiuser
- Multiprocessor (multicore)
- [*] Vector processing
- Security and data protection
- Security: backup, mirroring, cluster, raid
- Protection: authentication and authorization
- Authentication: biometric systems, rfid, smartcards
- Data Protection with symmetric keys
- Data Protection with asymmetric keys: public key and private
key
- Digital signature
- Certificates
Networks
- Services for end-users: electronic mail, web, file servers, print
servers, ...
- Topology of a network: hubs and switches
- Local area networks: homogeneous as architecture, technology,
access mode
- Wide area networks
- [*] Connections: wired, optical, wireless (electromagnetic)
- Connect to networks: provider, modems, broadband, wi-fi, wimax,
3G
- Networks interconnection: router
- The stack of Internet protocols
- Physical layer: MAC Address, hubs and switches; Packet
- Network layer: IP addresses, Dns
- Communication layer: TCP
- Application layer
- E-mail protocols: SMTP, POP, IMAP, e-mail addresses
- [*] Email attachments and MIME type
- [*] Terms related to e-mail: netiquette, spam, mailing
lists
- Web protocols: http, https; websites
- [*] Terms related to websites: rss
- Resource locators: Url, Schema, http:, mailto:, ftp:
- [*] Other protocols: ftp, news
- [*] Run time protocols: VoIP, IPTv
Multimedia
- Analog vs. digital
- Analog reproduction of sounds
- Digitization of sounds
- Sampling and precision; Monophonic, Stereophonic and
surround
- [*] Sampling of sounds
- Digitization formats: with and without loss of information,
lossly and lossless
- [*] Sound formats: Container and Codec; Wav, Mpeg1 Layer 3
- Digitization of images; resolution
- [*] Bitmap graphic formats: Tiff, Jpeg, Gif, Png
- [*] Vector graphic formats: Vgml
- [*] Sampling of images
- Color spaces: RGB(A), CMYK, HSL, YYrYb
- Digitization of video and sounds
- [*] Sampling of video
- [*] Resolution of video
- [*] Video formats: Mpeg1, Mpeg2, Mpeg4
Documents
- Textual documents
- Hypertexts
- Gml, sgml and xml: markup, tags (with attributes) and
entities
- Examples of xml and html entities
- Presentation, structure, content and activities
- Content: HTML
- Structure of a document: prologue (<doctype>),
<head>, <meta>, <body>, <-- -->
- Tags (block): <div> <p> <h1> ... <h6>
<del> <ins> <sub> <sup>
- Tags (lists): <ul> <ol> <li> <dl>
<dt> <dd>
- Tags (Inline): <span> <em> <img>
<object>
- Anchors <a>
- Tag (tables): <table> <caption> <tr> <td>
<th>
- Tag (forms): <form> <input type="text">
<button>
- Ajax
Programming Languages
- Language families: procedural imperative, procedural functional,
logical descriptive
- [*] Programming language generations: 0 (machine-level), 1
(assembler), 2 (macro assembler), 3 (high-level languages)
- Software lifecycle: analysis of requirements, functional
analysis, design, programming, testing, maintenance
- [*] Software development: editing, compiling, link editing,
execution
- [*] Compiler and interpreter, intermediate code
- Object languages: properties and methods, inheritance
- Scheduling and programming, iteration, recursion
- JavaScript
- Inclusion of JavaScript methods in a web page: tag
<script>
- [*] Html DOM: Math, Navigator, Window
- Examples of methods and properties:
window.document.write("")
- Main instructions: comments, assignments
- Flow control in iterative programming: sequence, choice,
repetition
- Flow control in recursive programming: sequence, choice,
recursion
- Variable declaration
- Datatypes: strings, numbers, boolean, arrays, objects
(date)
- Elementary examples: swap, summation, product, repetition using
while
- Iterative examples: factorial, square root
- Recursive examples: factorial, fibonacci; tree-traversal
- Constants: strings, numbers, Boolean
- Operators: numeric, text, Boolean
- Logical operators: Inner and outer (relational)
- Function declaration: formal parameters and actual parameters,
function call
- Using forms in javascript
- Events handling: <input onclick="">
[*] Presentation
- [*] CSS
- [*] Including CSS rules in a web page: tag <link>
<script>
- [*] Selectors syntax
- [*] Html Attributes: style, class and selectors
- [*] Css property: color background-color font-size font-family
text-align font-style font-variant padding border margin
Description of Case studies
Readings/Bibliography
Students are not required to purchase specific texts. We provide updated training materials, also available on the servers of the laboratories. However, students can freely choose from the following books
General topics of Computer Science
- Breuer Hans. Atlante di informatica . VI-218 p., ill.; Hoepli,
1997 (18,08 €).
- White Ron. Il computer. Come è fatto e come funziona . 6 ed., 416
p.; Mondadori Informatica, 2001 (36,15 €).
Networks:
- Gralla Preston. Internet. Come è fatta e come funziona . 6 ed.,
352 p.; Mondadori Informatica, 2001 (30,99 €).
- Tanenbaum Andrew S.. Reti di calcolatori . 4 ed., 1000 p.;
Pearson Education Italia, 2003 (49,9 € – Proper book for
use from professionals).
Teaching methods
Theoretical and pratical lessons
Assessment methods
The final proof 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 35 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 35 minutes, students can consult their notes;
- an oral examination to test the level of understanding of the course and the student's critical capabilities.
The oral examination can be sustained only by students who have obtained at least 5/10 in either written and pratical test. Written and practical tests are valid until February of the next academic year.
Office hours
See the website of Aldopaolo Palareti