Mathematics BSc
Course description
2013.
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 |
Course coordinator
- Tamás Kozsik
Strong | Weak | Prerequisites | |
---|---|---|---|
Practice class | |||
Strong:
Programming fundamentalsL
(im1c1pn2)
| |||
Lecture | |||
Strong:
Programming fundamentalsL
(im1c1pn2)
|
Literature
- Horstmann, C. S., Cornell, G.: Core Java. Prentice-Hall, 2007 (8th Edition).
Recommended:
- Gosling, J., Joy, B., Steele, G., Bracha, G: The JavaTM Language Specification. Addison Wesley, 2005 (Third Edition). http://java.sun.com/docs/books/jls/
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.