K-INFO
HU
EN
Login

Programming 3

A programozás alapjai 3
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
A programozás alapjai 3
Programming 3
Subject code BMEVIIIAB00
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 0 2
type (linked/independent) derived course
Assessment type félévközi érdemjegy
Credits 5
Subject coordinator
DR. Goldschmidt Balázs
position: egyetemi docens
Responsible department
Irányítástechnika és Informatika Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website https://www.iit.bme.hu/~prog3/en
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

Lecture

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.

Laboratory

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.

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. 

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Lectures and laboratories.

Tanulástámogató anyagok

Online források
Course slides on course web page; Java tutorials on Oracle-s web page; Introductory Java textbooks

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programming skills in C++
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programming skills in C++
General rules
Requirements: 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.     Additional possibilities: 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.  
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Basics of programming 2
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.