F 52 CORSO DI LAUREA IN INFORMATICA COMPUTER SCIENCE - DEGREE COURSE (first level) General Description ECTS Institutional Co-ordinator Prof. Achille Ghidoni Rector's Delegate for International Relations Università degli Studi dell'Insubria Via J H Dunant 3 - 21100 Varese (Italy) Phone: (+39) 0332 421533 Fax: (+39) 0332 421500 e-mail: [email protected] ECTS Committee member for the Computer Science Degree Course Dr. Claudio Gentile [email protected] Syllabuses Fundamentals of Computer Science - F52-001 lecturer: Gaetano Lanzarone [email protected] lectures, mandatory, first semester, 44 hours, written/oral examination, credits: 6 Course description An introductory course to Computer Science. Main topics: - Computer Science: evolution and areas of interest - Evolution, structure and functioning principles of computers; basic machine architecture and instructions; - Binary, octal and hexadecimal number systems; representation of integer and real numbers; arithmetic operations; conversions; - Boolean algebra: axioms, theorems, properties and relation to set theory and logic propositions; - Boolean algebra and analysis and synthesis of combinatorial switching circuits; - Machine, assembly and high-level programming languages and related tools; - Flowchart and control structures; - Grammars and syntactic charts; - Computer networks; - Technological innovation; the Information Society and the New Economy. References: 1. S. Ceri e D. Mandrioli, Istituzioni di Informatica, Mc Graw - Hill Libri Italia, 1992 (In Italian); 2. J. Glenn Brookshear, Computer Science - An Overview, Addison - Wesley, 1997 (In English). Mathematics I - F52-002 - Lecturer: Maria Grazia Bianchi [email protected] - Mandatory - 1st semester - 56 hours - Examination: written + oral - Credits: 6 Course description: The course is designed to teach students part of the basic algebraic-geometric language and some of the most usual mathematical techniques. Syllabus: Sets - Relations: equivalence relations, partial orderings - Functions - Integers: induction; division; prime numbers; factorization. Diophantine equations of type ax+by=c. The integers mod n. Algebraic structures: group, ring, field - definitions and examples. The symmetric group Sn .Th polynomial ring K[x] over a field K. Roots of a polynomial and their multiplicities. Irreducible polynomials. Factorization of polynomials. References: 1.Mariagrazia Bianchi-Anna Gillio: Introduzione alla Matematica Discreta- McGraw-Hill (2001) 2.Alberto Alzati-Mariagrazia Bianchi-Massimo Cariboni: Matematica Discreta (esercizi) Citta' Studi Edizioni-UTET Mathematics II, F52-003 - Lecturer: Claudio Giberti [email protected] - Mandatory - 1st semester - 48 hours - Examination: - Credits: 6 Course description: This course is focused on the presentation of some elements of linear and analytic geometry. This is the second section of the course in Mathematics for the first-year students registered in the Computer Science Degree Course. Entrants will be required to have already successfully completed the course in Mathematics I, which includes an introduction to many of the subjects that are extensively studied in Mathematics II, namely matrixes, matrix operations and their properties; determinant and matrix rank; inverse matrix; linear equation systems; Cramer and Rouché Capelli’s theorems; vector field: definition and properties; vector sub-fields; bases, co-ordinates in relation to a base, dimension; linear applications between vector fields and matrixes; changes of similar bases and matrixes; eigenvalues and eigenvectors; elements of analytic geometry; systems of reference and their transformation; distance and corners; lines and planes; conics and quadrics and their main properties. References: English Language, F52-004 - Lecturer: Huw Williams [email protected] - Mandatory - 1st semester - 48 hours - Examination: - Credits: 6 Course description: The course is focused on reading-comprehension, report writing and oral speech. References: Computer Architecture I, F52-005 - Lecturer: Riccardo Melen [email protected] - Mandatory - 1st semester - 48 hours - Examination: - Credits: 6 Course description: The syllabus includes the basic information as required in order to understand how a computer works. Topics on processor architecture include binary presentation of information, analysis of individual components, circuits, description and synthesis of logic networks, design of a simplified ALU model, design of a control unit, the analysis of circuits in order to develop major memory functions; evaluation of system performance in consideration of the various components of a traditional architecture (memory hierarchy, disks, connection bus). References: Computer Architecture II, F52-005 - Lecturer: Marco Astuti [email protected] - Mandatory - 2nd semester - 48 hours - Examination (Computer Architecture I included): written paper + oral + project - Credits: 6 Course description: The goal of this course is to provide students with the basic knowledge of the architecture of the MIPS microprocessor, its machine language, and the elementary techniques to manage I/O directly from the CPU level. The syllabus includes the internal architecture of the MIPS microprocessor, the structure and the instructions of its machine language, the basic concepts of computer arithmetic and their applications on the MIPS CPU, as well as methods and procedures to control hardware outside the CPU by means of the assembler language. Topics: - Introduction to the logical structure of a computer - Architecture of the MIPS microprocessor - The MIPS machine language - Computer Arithmetic - Programming in Assembler - The MIPS I/O management References: D.A. Patterson, J.L. Hennesy Computer Organization and Design, second edition, Morgan Kaufmann Publishers, Inc. Mathematics III, F52-006 - Lecturer: Claudio Giberti, [email protected] - Mandatory 2nd semester 48 hours Examination: Credits: 6 Course description: Topics include the fundamentals of differential and integral one-variable equations as well as an introduction to equations with many variable functions. This is the third section of the course in Mathematics. Students will be required to have successfully completed the two preceding sections, Mathematics I and Mathematics II, which include an introduction to many of the subjects that are extensively studied in Mathematics III. Covered topics are real numbers and the concept of function; successions; succession limits and major properties; numerical series: prime properties and convergence criteria; bounds of a function and notable bounds; continuous functions and their major properties; definition of a derivative and derivation properties; derivable functions: major theorems on derivable functions and applications; study of functions; Taylor formula and power series development; definite and indefinite integral: properties and fundamental theorems; integration methods; general integrals and convergence criteria; differential calculus for functions of several real variables: bounds and continuity, partial and directional derivatives, gradient; differentiable functions and tangent plane. References: Programming and Laboratory, F52-007 - Lecturers: Gaetano Lanzarone [email protected] , Mauro Ferrari [email protected] - Mandatory - 2nd semester - 44 + 48 hours - Examination: oral + project - Credits: 12 Course description: A first course on programming and a complete course on the programming language PASCAL. All features of PASCAL are covered: lexical and syntactic structure of the language, scalar and structured types, simple and structured statements, procedures and functions, scope rules and dynamic memory allocation, compilation and execution of programs. A number of algorithms are used as examples of PASCAL programs. The course also covers methodological aspects of programming in general, such as top-down and structured programming, program debugging, testing and documentation. References: 1. J.Bishop, PASCAL - Corso di Programmazione, Addison - Wesley Italia, terza edizione, 1994 2. R. Sethi, Programming Languages concepts and constructs, Addison Wesley, 1996 3. Lecture Notes Phisics, F52-008 - Lecturer: Fabrizio Celentano [email protected] - Mandatory - 2nd semester - 48 hours - Examination: oral - Credits: 6 Course description: The course is designed 1) to discuss the methodology of empirical sciences, with particular emphasis on the modelling process and the need for quantitative reasoning; 2) to illustrate the foundations of general physics, from mechanics to thermodynamics and electromagnetism with emphasis on a few professionally relevant topics (entropy, semiconductors, etc.); 3) to enhance students’ ability to organize their own knowledge in different fields with a view to tackling realistic problems; 4) to enhance students’ ability to visualize phenomena graphically, and to calculate reasonably approximate values for the quantities involved in common phenomena. References: 1. Raymond A. Serway: Principi di Fisica, EdiSES 2. Lecture notes by the instructor Algorithms and Data Structures and Laboratory, F52-009 - Lecturers: Paolo Massazza [email protected] , Claudio Gentile [email protected] - Mandatory - 1st semester - 90 + 24 hours - Examination: oral + project - Credits: 12+3 Course description: The syllabus includes an introduction to the fundamentals of the design of algorithms and data structures, and for the analysis of performances. Starting from the formal definition of a calculus model (RAM machine) the various concepts of complexity in time and space are illustrated. Topics also include the mathematical instruments required to perform the analysis of complexity of an algorithm (asymptotic notations, recurrence equations, estimate of summations). This approach is initially applied to the study of elementary data structures (vectors, lists, piles, queues); this is followed by the analysis of the major operations that may be performed on trees and graphs (recursive and iterative visit algorithms). After presenting the problem of order, analysis techniques are applied to the study of the main algorithms (sorting by insertion, selection, heapsort, quicksort, mergesort, bucketsort). In the second part of the course, various project techniques are illustrated (divide and rule, dynamic programming, greedy technique) on the basis of the study of algorithms and data structures for set manipulation. The main data structures are reviewed (tables and trees) for the management of dictionaries (research, insert, delete) together with some effective techniques for partition management (union-find). Dynamic programming is illustrated as an elegant and effective approach for problem solving with a recursive formulation. The study of some classic optimisation problems on graphs and trees leads to the introduction of the greedy technique. Lab work will show practical implementations of algorithms to C programming language and some methods of experimental analysis of the same. References: Programming Language Lab (2nd year), F52-010 - Lecturers: Marco Benini [email protected] & Claudio Gentile [email protected] - Mandatory - 1st quarter - 24 hours - Examination: either written or oral - Credits: 3 Course description: The syllabus covers the C programming language and its syntactical and semantic aspects. Special emphasis is laid on the C language in consideration of the fact that it is used in many other courses. Topics include a short history of the language, elementary data types, variables, operators and expressions, precedence of operators, casting, flow control instructions, functions and modules, allocation classes, complex data types, structures, pointers, the memory model and dynamic allocation, input and output, files management. References: 1. Kernighan, Ritchie, "The C Programming Language", 2nd edition, Prentice Hall 2. Kelley, Pohl, "C Didattica e programmazione", Addison-Wesley Probability and Statistics, F52-011 - Lecturers: Marco Boella [email protected] - Mandatory - 1st semester - 48 hours - Examination: - Credits: 6 Course description: The syllabus will include the fundamentals of descriptive statistics and elementary probability theory, namely set theory, events and event space; axiomatic definition of probability; conditional probability and stochastic independence, Bayes formula; distribution functions (D.D.F.) and aleatory variables (A.V.); discreet D.D.F., continuous D.D.F. and density function; A.V. characteristics (time, expected value, variance, quantiles, median); A.V. functions and Chebicev disequality; joint distributions; conditional distributions for discreet and continuous A.V.; functions of several A.V., maximum, minimum, addition of aleatory variables; convergence; series of A.V.; laws of large numbers; central limit theorem and its relevance for inferential purposes, normal approximations; statistic inference; population, sampling, statistics, sampling frequency, sampling average, sampling variance; large sampling distributions; punctual parameter estimation, interval estimation; comparison of hypotheses; simulation. References: Business Administration, F52-012 - Lecturers: Giancarlo Raffaldi [email protected] - Mandatory - 1st semester - 48 hours - Examination: - Credits: 6 Course description: The Course of Economics and Business Administration is designed to teach the fundamentals with a view to understanding the major management issues of companies and services. Topics will include accounting, strategic management and marketing, communication, companies’ legal structure, organisation and economic scenarios. Through the presentation of an ideal Business Plan students will be provided with an understanding of the basic concepts and the terminology necessary to appreciate current reality as well as economic, corporate, financial and market changes. Special attention will be paid to vocational training also including reporting, speaking in public, communication, etc. Workshops and seminars will also be included in the course. References: Operative Systems, F52-013 - Lecturers: Matteo Vaccari [email protected] - Mandatory - 2nd semester - 90 hours - Examination: - Credits: 12 Course description: Topics will include the fundamentals of all operating systems – for illustration purposes the Linux operating system will be used. The course is designed - to show students – from a theoretical standpoint – the mechanisms of an operating system making it possible and easy to work with a computer; - to understand the principles of concurrent programming and the problems inherent in solving concurrent programming exercises. Topics will includes: processes, thread and concurrent programming; memory management, file systems, input/output, peripherals and driver. In the second part of the course topics include: safety, networking, concurrent programming, Unix system calls, Linux kernel. The second part of the course is designed to make attendants aware of safety problems and of the methods to solve such problems, to teach software writing techniques with the support of a complementary operating system, the theoretical study of concurrent programming through socket, traffic lights and other devices of the operating system. References: Operative Systems Lab, F52-013 - Lecturers: Marco Benini [email protected] - Mandatory - 2nd semester - 24 hours - Examination: written + oral - Credits: 3 Course description: The syllabus is mainly focused on Unix operating system from the user point of view, Unix shell and programming of the same. In particular, after a short introduction to Unix and its basic commands, topics include: - I/O redirections and pipes. - Foreground and background processes. - Signals and program control. - Shell programming. - A glance at AWK and SED. References: The textbook for this course will be available online on the University website. Software Design, F52-014 - Lecturers: Alberto Coen Porisini [email protected] - Mandatory - 2nd semester - 90 hours - examination: written/oral - Credits: 12 Course description: This course i s designed to illustrate the basic concepts of software design; the main principles of software construction are presented along with different ways in which they can be applied. In particular, the course is focused on object-oriented design and programming; UML and Java are used to apply illustrated concepts in practice. References: Any Textbook on Java and UML Software Design Lab, F52-014 - Lecturers: Elisabetta Binaghi [email protected] - Mandatory - 3rd Quarter - 24 hours - Examination: oral - Credits: 3 Course description: The course is focused on methodological and practical issues in graphical interface design. The main topics covered are cognitive theories in human-computer interaction, interaction models and interface styles, principles and guidelines for graphical interface design and programming. Tools and facilities offered by the Java Language to implement graphical interfaces and interactive systems are presented and tested using laboratory resources. Students develop programs of incremental complexity when implementing graphical interfaces for Java Applet and Applications. References: 1. A.Dix, J. Finlay, G. Abowd, R. Beale, "Human-Computer Interaction", Prentice hall Europe, 1998. 2. K. Arnold, J. Gosling, D. Holmes, "Java - Manuale ufficiale", Addison Wesley, 2001. Database Management Systems + Lab, F52-015 - Lecturers: Elena Ferrari [email protected] & Alberto Trombetta [email protected] - Mandatory - 1st semester - 48 + 24 hours - Examination: written + project - Credits: 6+3 Course description: The course offers a detailed introduction to the relational data model and to related query languages (e.g. relational algebra and SQL). As well as an introduction to conceptual modelling - featuring the E/R data model. In the second part, the course offers a detailed review of DBMS technology, including data structures and algorithms deployed in query processing. References: 1. Bertino, Catania, Ferrari, Guerrini. Sistemi di Basi di Dati, CittàStudiEdizioni. 2. Lecture slides. Communication Networks, F52-017 - Lecturer: Riccardo Melen, [email protected] - Mandatory - 1st semester - 48 hours - Examination - Credits: 6 Course description: Topics include telecommunication networks and, specifically, networks based on TCP/IP technology (Internet and Intranet). The course is designed to teach students the fundamentals of the physical architecture and protocols of these networks. After a short introduction concerning stratified architectures and TCP/IP protocol stacks, the main subnetwork technologies are described (point-point protocols, LAN and geographical package networks). Discussion will be focused on the main problems relating to the IP protocol (addressing, routing techniques and protocols) and transport protocols (TCP and UDP). The second part of the course is devoted to traditional applications, namely file transfer, e-mail and Web browsing, and finally network safety and related problems. References: Software Engineering, F52-018 - Lecturer: Alberto Coen-Porisini, [email protected] - optional - 1st Quarter - 48 hours - Examination: written - Credits: 6 Course description: This course is designed to complete the introduction to the basic concepts of software engineering already illustrated in the course Software Design. In the first part, topics include different software lifecycles and requirement specifications (Data Flow Diagrams, Finite State Machines and Petri Nets). The syllabus includes an overview of the operational semantics of the various families of programming languages such as operational languages, functional languages and logic languages. References: 1. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, "Fundamental of Software Engineering", Prentice Hall 2. Carlo Ghezzi & Mehdi Jazayeri, "Programming Languages Concepts", 3rd Ed., John Wiley & Sons Digital Image Processing, F52-019 - Lecturer: Elisabetta Binaghi, [email protected] - Elective - 3rd quarter - 48 hours - Examination: oral - Credits: 6 Course description: The course is designed to provide an introduction to basic concepts and methodologies for digital image processing, and to create the necessary background for further studies and professional work in many application fields such as Earth Observation and Medical Imaging. The main topics of the course are image enhancement with point and local operators, segmentation by region and edge detection, classification and recognition using statistical, neural and symbolic approaches. Laboratory resources offer the opportunity to test the concepts and methods presented in the classroom with real images. References: R.C. Gonzales, R.E. Woods, Digital Image Processing, Addison Wesley, 1992 Signal Processing, F52-021 - Lecturer: Vincenzo Caglioti, [email protected] - optional - 1st semester - 48 hours - Examination - Credits: 6 Course description: The syllabus includes an introduction to Signal Processing as this is the basis for image processing, speech recognition, analysis of sensorial signals for the monitoring of industrial plants. The first part of the course will consist of an introduction to the fundamentals of the Theory of Signals, the representation of the frequency domain, sampling, noise. The second part of the course will consist of an overview of elementary devices for signal processing such as FIR and IIR filters and their applications. The third part of the course will consist of an overview of some signal processing techniques and applications to problems such as the determination of discontinuity (edges), signal linking, the analysis of bi-dimensional signals. Applications will also be shown. References: Information Systems, F52-022 -Lecturer: Riccardo Glucksmann, [email protected] - Elective - 1st Semester - 48 hours - Examination: - Credits: 6 Course description: Information systems consist of hardware and software effectively supporting management, operating and decision-making processes. The syllabus includes topics designed to give an overview of basic design methods and instruments ensuring effective operations. Practical business cases will also be presented. Some specific decision-making processes will be illustrated in detail also from the practical standpoint. Students will be required to participate in working groups. References: Communication Networks Lab, F52-023 - Lecturer: Marco Benini, [email protected] - Elective - 2nd semester - 24 hours - Examination: project + discussion - Credits: 3 Course description: The main topic of this course is Web applications. Web structures will be analysed from a scientific standpoint in order to highlight their main characteristics. State-of-art solutions will be presented in relation to problems arising when developing a Web application. The course will use a real world application, the virtual community server Virtuose, as a reference example. References: There are no textbooks for this course; during lessons, appropriate references when available will be indicated. Technological Innovation and New Economy, F52-024 -Lecturer: Marco Astuti, [email protected] - Elective - 24 hours - Examination - Credits: 3 Course description: The course is designed to teach the fundamentals of ICT (Information and Communication Technologies) in the current post-modern society. The review will include New Economy information and telematic systems, especially systems based on or supported by the internet. All economic, social and technical related issues will be overviewed. Specific cases will also be presented. References: Simulation, F52-025 -Lecturer: Fabrizio Celentano, [email protected] - Elective - 1st Quarter - 60 hours (20 lecture + 40 lab) - Examination: oral discussion of a project developed in the lab - Credits: 6 Course description: The course is offered to the students of Computer Science, Biology and Economy. It aims at: 1) explaining both the goals and the methodology of computer simulation; 2) explaining the modelling methodologies used for different systems (continuous, discrete, deterministic, and stochastic); 3) showing the characteristics of the simulation packages installed in the laboratory 4) teaching how to use one of the above packages while carrying out a simple simulation project. References: Course notes, software manuals, information to be found on the Web.