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.
(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.
(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.
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.
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.