Programming 3

A tantárgy neve magyarul / Name of the subject in Hungarian: A programozás alapjai 3

Last updated: 2016. szeptember 30.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Course ID Semester Assessment Credit Tantárgyfélév
VIIIAB00 3 2/0/2/f 5  
3. Course coordinator and department Dr. Goldschmidt Balázs,
Web page of the course
4. Instructors Dr. Balázs Goldschmidt, Dr. Balázs Simon
5. Required knowledge Programming skills in C++
6. Pre-requisites
(TárgyEredmény( "BMEVIIIAA00" , "jegy" , _ ) >= 2
TárgyEredmény( "BMEVIIIA114" , "jegy" , _ ) >= 2
TárgyEredmény( "BMEVIIIAA03" , "jegy" , _ ) >= 2)

ÉS NEM ( TárgyEredmény( "BMEVIIIA212", "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVIIIA212", "FELVETEL", AktualisFelev()) > 0)

ÉS (Training.Code=("5N-A8") VAGY Training.Code=("5NAA8"))

VAGY EgyenCsoportTagja("Kreditpótlás_2023/24/2 ")

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Basics of programming 2
7. Objectives, learning outcomes and obtained knowledge

The goal of the course is to deepen students' understanding in the field of object orientation (Java programming language) and the use of class and function libraries (collections, IO, threads, XML handling, graphics and GUI). The course builds heavily on C and C++ skills gained in courses Basics of programming 1 and 2. The programming language environment of the course is Java. Laboratories provide practical exercises in the fields introduced by the lectures. 

8. Synopsis


1. Basics of Java. Introduction, types, operators, statements. Objects, classes, interfaces, packages. Exception handling, coding style.

2. Java I/O. System Class. I/O Basics. I/O filters. Special classes: pipe, file. Serialization.

3. Utilities.(Scanner, Random, BigInteger, BigDecimal, text processing).

4.  Java generics, generics and inheritance. Comparison to C++ generic solutions. Heterogeneous collections, casting, template.

5. Java collections. Collection framework: Collection, Iterator, List, ListIterator, Set, SortedSet, Map, SortedMap. Handling of collections (java.util.Collections).

6. UML and Java. Associations, aggregations, their implementation and notation. C++ flashback (composition, destructor, deep and shallow copy, cloning, copy constructors).

7. Thread handling. Mutual exclusion, synchronization, signalling. Thread safe collections, special concurrent classes (java.util.concurrent)

8. Java GUI basics. Components and containers. Layouts. Event-handling. Low level graphics (java.awt.Graphics)

9. Swing components: menu, dialogs, etc. MVC in swing, JList, JTable, JTree.

10. Automatic and unit testingin Java, JUnit.

11. XML processing in Java: SAX, DOM, JDOM.

12. Logging, log4j, logging levels. Internationalization, localization.

13. Outlook: object-relational mapping in JPA, networking, RMI.


1. Basics of eclipse, intellisense, help, projects.

2. Hello world, command line compilation, eclipse and Java, package handling.

3. Java inheritance, exceptions: C++ heterogeneous collection test problem solved in Java

4. Java IO. Reading from files, handling the file system, printouts, serialiazation, command line arguments.

5. Java Util: collections, sorting, iterators.

6. Java-UML connection, UML modelling tools and code generation

7. Java thread handling: producer-consumer, synchronization.

8. Swing basics. Simple swing example: caesar coder.

9. Swing MVC: JTable task: sorting, display, special rendering.

10. Low level graphics: simple vector graphics.

11. JUnit task. Creating unit tests for a predefined Java source code.

12. XML tasks: processing, generation.

13. Home work presentation.

9. Method of instruction Lectures and laboratories.
10. Assessment

Attendance is mandatory for laboratories. The lecturer may check the preparation of the students. Preparation must be acceptable in at least 7 laboratory classes.

During semester 6 midterm tests are written. The best 4 of them counts in the final mark. Missed tests count as 0.


During the semester a home work project is assigned to each student. Assignment is on the 6th week. On the 8th week a detailed plan for the application has to be presented. On the laboratory of the 13th week the final application must be presented. Repeated presenation is on the 14th week laboratory, if necessary.

The final mark is counted from the best 4 midterm tests. Final mark is only given, if the preparedness was accepted on 7 occasions, the home work was accepted, and the average of the best 4 tests is at least 2.0.



11. Recaps

Missed laboratories can not be repeated. Unacceptable preparedness can not be repeated.

Unaccepted home work can be repeatedly presented only at the laboratory class of the 14th week.


12. Consultations During laboratory classes.
13. References, textbooks and resources

Course slides on course web page

Java tutorials on Oracle-s web page

Introductory Java textbooks

14. Required learning hours and assignment Kontakt óra
Félévközi készülés órákra34
Felkészülés zárthelyire18
Házi feladat elkészítése42
Kijelölt írásos tananyag elsajátítása0
15. Syllabus prepared by

Dr. Goldschmidt Balázs


Irányítástechnika és Informatika Tanszék

Dr. László Zoltán


Irányítástechnika és Informatika Tanszék

Simon Balázs


Irányítástechnika és Informatika Tanszék