Luca Dan Șerbănați at the baccalaureate, 1961
Luca Dan Șerbănați in the early 1970s
Luca Dan Șerbănați giving his last fifth-year lecture, April 1989

Luca Dan Șerbănați

Emeritus Professor at Politehnica University of Bucharest

Research, teaching, industry and memoirs

RO | EN | IT
Luca Dan Șerbănați in Venice, 1990
Luca Dan Șerbănați in New York, 2005
Luca Dan Șerbănați

Landmarks

  • Institution: POLITEHNICA University of Bucharest
  • Faculty: FILS – Faculty of Engineering in Foreign Languages
  • Language of instruction: English
  • Year / semester: year I, semester I
  • Official title: Programming Languages
  • Structure: 2 hours lecture + 2 hours laboratory
  • Assessment: final exam
  • Credits: 5
  • Prerequisites: none

Place of the course in my teaching activity

This was the entry course into computing for FILS students. Its role was essential: to familiarize them simultaneously with the computer as a system, with the notion of the program, with programming languages, and with the first concepts of object-oriented programming.

For this reason the course did not start directly with Java syntax, but with a more general introduction: the structure of the computer, the operating system, the difference between hardware and software, compilation and interpretation, programming languages, the meaning of the notion of variable, and the relation between a program and its execution.

Objective of the course

The main objective of the course was twofold. On the one hand, to introduce Java as a genuinely object-oriented language. On the other, to form basic design and programming skills able to support later, more advanced courses in software engineering.

The syllabus insists not only on writing programs, but also on understanding abstraction, correct design, and the informal semantics of object-oriented programs in terms of responsibility and collaboration.

Structure of the course

1. Introduction to computers and programming

The course notes begin with the structure of the computer, the operating system, the distinction between system software and application software, and the introduction of programming languages, compilation, and interpretation. This part gave the student a more solid conceptual basis than the mere learning of a language.

2. Fundamentals of Java

After that introduction, the course moved to the characteristics of Java, the architecture of the Java system, and the execution environment. Then came data types, variables, constants, expressions, statements, and methods.

3. First concepts of object-oriented programming

Here the syllabus and the course notes converge very well: classes, objects, messages, encapsulation, static members, visibility, constructors, the use of user-defined classes, packages, and the relation between concepts and their software instances.

4. Basic structures and mechanisms

The course included strings, arrays, methods and parameters, then error handling and exceptions, as well as input/output on streams and files.

5. Extensions present in the course notes

The teaching material developed in those years goes further than the minimal outline in the syllabus and includes inheritance and polymorphism, code reuse, abstract classes, data conversion, applets, graphical interfaces, interfaces, inner classes, event handling, and collections of objects. This breadth shows that the notes were conceived not only as support for a single semester, but also as a broader basis for training in Java and OOP.

Laboratory

The practical activity was well structured and progressive: compilation and execution of Java programs, variables, expressions, statements, static methods, strings, decisions and loops, recursion, the definition of user classes, constructors, method overloading, arrays, packages, and file I/O.

The syllabus mentions twelve short assignments and one or two small projects, which forced students to practise the concepts introduced in the lectures. The emphasis was on exercise and the discipline of programming, not only on memorizing syntax.

Assessment

Assessment was divided between the final exam (40%) and work during the semester (60%): attendance at lectures and labs, two announced tests, and laboratory / homework activity. The project had to be passed in order for the student to pass the course.

Significance of the course

Looking back, this course was important not because it taught Java as such, but because it offered an entry into programming conceived in an engineering spirit. It introduced students not only to a language, but also to a way of thinking about programs as structures that have to be designed, organized, and understood.

It was also the first element in the coherent sequence that I later built at FILS: from basic programming to object orientation, software development methods, design, architectures, and large systems.

Resources