Courses

NOTE: All courses are taught in Romanian, except courses for graduate studies, taught in English. The indicated contents are valid for the current academic year(2008/2009).

The duration of studies is 4 academic years, leading to the "Engineer" degree (BSc, but with a graduation project.) This is followed by 2 years of "graduate studies", leading to the "Master" degree.

1. OPERATING SYSTEMS

(core curriculum, 3rd year of studies-semester 5, 2 hours/week lecture + 2 hours/week lab)

Definition. History. Structure of an operating system. UNIX: history; file system; basic commands; Shell facilities; system calls for: file manipulation; memory management; process and job management; signals; kernel- and user-level threads.

PDF slides for the course


2. DISTRIBUTED SYSTEMS DESIGN

(first year of graduate studies, spring semester, 2 hours/week lecture + 1 hour/week lab)

Processes in distributed systems. Naming. Synchronization, election algorithms, mutual exclusion, distributed transactions. Consistency and replication. Reliability. Security. Distributed object-based systems. Distributed file systems.


3.COMPUTER NETWORKS PROGRAMMING

(elective, 43rd year of studies-semester 6, 2 hours/week lecture + 2 hours/week lab)

Network protocols: TCP/IP, definition and implementation; the client-server model.
Network programming using sockets: connection-oriented and connectionless clients and servers; concurrent and iterative servers.
Network programming using RPC and XDR.
Object-oriented network programming in Java: an introduction.
Socket-level programming in Java (the java.io and java.net packages).
Remote Method Invocation (RMI).
CORBA - Heterogenous Distributed Applications.
EJB - Component-based Applications.
Web Services.

PDF slides for the course


4. OBJECT ORIENTED PROGRAMMING

(core, 2nd year of studies - sem. 3, 2.5 hours/week lecture + 2 hours/week lab

Fundamental concepts of object-oriented programming. The Java platform
Classes and objects: class structure, fields, methods, object creation.
Extending classes: inheritance of contract vs. inheritance of implementation; type compatibility, abstract classes.
Interfaces: declaration, extension, working with interfaces.
Nested classes and interfaces: static nested types, inner classes.
Exceptions and assertions: creating exception types, throw and throws; try, catch, finally. Assertions.
Packages: package naming; relation with the directory structure; short overview of standard Java packages.
Concurrent programming (threads): creating threads; thread synchronization. Concurrency framework in Java 5.
Collections: Role; Collection interface; Implementations.
Graphical User Interfaces: the event model, the AWT and Swing packages.