Mathematics BSc
Course description
2013.

Programming languages – Java
Hours
lect+pc
Credits
lect+pc
Assessment Specialization Course code
lect/pc
Semester Status
2 + 2 2 + 3 term grade pure math. im1c1pn3m
im1c2pn3m
3 recommended
applied math. im1c1pn3a
im1c2pn3a
3 optional
Strong Weak Prerequisites
Practice class
Strong:
Lecture
Strong:
Literature
  • Horstmann, C. S., Cornell, G.: Core Java. Prentice-Hall, 2007 (8th Edition).
Recommended:
Syllabus
The purpose of this course is to explain and practice the concepts and general terminology of programming languages, and to present the language constructs typical in the imperative object-oriented programming paradigm. As an illustration, the Java language is chosen. We address imperative programming (types, variables, operators, expressions, statements, control structures, comments), procedural programming (subprograms/methods, parameter passing, overloading, execution stack, recursion), and – with the strongest emphasis – class based object-oriented programming (class, object, members, instantiation and initialization, inheritance, inclusion polymorphism, redefinition and redeclaration, static and dynamic binding, abstract types, comparing and copying objects). With respect to types, we discuss arrays, enumeration types, generic and parametrized types, generic programming. The investigation of program structure includes scopes and visibility, namespaces (e.g. Java packages), compilation units, nested type definitions. Exceptions and exception handling are covered in details. We also mention multithreading and synchronization issues. The students will learn the fundamentals of program execution (e.g. virtual machines, class loading, dynamic linking) as well. Furthermore, some important program libraries, such as data structures, stream-based IO and graphical user interfaces are used throughout the labs.