07276 - Computer Science

Academic Year 2013/2014

  • 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