Laboratory of Computer Science 2

Course Description

This course contains laboratory exercises of theoretical courses and some specialization courses, as well as contemporary skills with various programming and other tools. The laboratory assignments are grouped in two areas designed to complement the material covered in lectures. The laboratory practice covers hands-on experience in: (A) Application of formal methods to verification of typical program sections, digital hardware, and critical operating systems synchronization and communication protocols, (B) experimenting with communication, scheduling and security issues in operating systems, (C) solving problems and constructing of algorithms in machine learning.

General Competencies

In-depth understanding of the principles and theoretical background of formal methods application to system design and illustrations and problem solving in pattern recognition domain. Ability to design and conduct analytic, modeling, simulation and experimental investigation. Ability to design solutions to problems that are unfamiliar, incompletely defined, and have competing specifications. Ability to formulate the problem and critically evaluate the solution. Practical experience with design, implementation, and deployment of information and communication systems.

Learning Outcomes

  1. match theoretical foundations of formal design methods with practical procedures.
  2. distinguish available tools for formal methods application to system design.
  3. apply tools for system formal verification.
  4. analyze and classify results obtained by the application of tools for formal system verification.
  5. modify the system structure in order to satisfy the desired feature.
  6. assess the quality of realization based on th results of laboratory procedures.

Forms of Teaching

Lectures

In depth exposition of target systems related to laboratory practice.

Exams

Exams on laboratory pactices (5).

Laboratory Work

Checking of correctness in mutual exclusion algorithms for accesing shared computer resources.

Programming Exercises

Programming in VIS and NuSMV environments.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 0 % 50 % 0 % 50 %
Homeworks 0 % 30 % 0 % 30 %
Mid Term Exam: Written 0 % 10 % 0 %
Final Exam: Written 0 % 10 %
Exam: Written 0 % 20 %
Comment:

Laboratory practicals are based on theoretical courses: 1) Formal methods in system design and 2) Advanced operating systems.

Week by Week Schedule

  1. Administration and organization of laboratory practices.
  2. Laboratory practice A1, Hardware verification (e.g. multiple request arbiter)
  3. Lab A1 exam.
  4. Laboratory practice A2, Formal verification of critical operating systems synchronization and communication protocols.
  5. Lab A2 exam.
  6. Laboratory practice A3: Formal verification of communication protocols in distributed systems.
  7. Lab A3 exam.
  8. Laroratory practice B1: Symmetric cryptosystems. Advanced Encryption Standard (AES).
  9. Laboratory practice B1: Block cipher modes of operation (ECB, CBC, CFB, OFB, CTR).
  10. Lab B1 exam.
  11. Laboratory practice B2: Asymmetric cryptosystems (RSA).
  12. Laboratory practice B2: Hash functions (SHA).
  13. Laboratory practice B2: Digital signature.
  14. Laboratory practice B2: Sealed digital envelope.
  15. Lab B2 exam.

Study Programmes

University graduate
Computer Science (profile)
(2. semester)

Literature

N.Bogunović, M.Golub, I.Grudenić, A.Jović (2006.), Vježbenica za laboratorij računarske znanosti, FER
M. Huth, M. Ryan (2004.), Logic in Computer Science, Cambridge University Press
Budin, L.; Golub, M; Jakobovic, D., Jelenkovic, L (2010.), Operacijski sustavi, Element, Zagreb
B. Schneier (1996.), Applied Cryptography, J. Wiley & Sons

Laboratory exercises

General

ID 35225
  Summer semester
3 ECTS
L1 English Level
L1 e-Learning
15 Lectures
0 Exercises
30 Laboratory exercises
0 Project laboratory

Grading System

90 Excellent
75 Very Good
60 Good
50 Acceptable