Belépés címtáras azonosítással
magyar nyelvű adatlap
angol nyelvű adatlap
Programming 3
A tantárgy neve magyarul / Name of the subject in Hungarian: A programozás alapjai 3
Last updated: 2016. szeptember 30.
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ó.
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.
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.
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.
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.
Course slides on course web page
Java tutorials on Oracle-s web page
Introductory Java textbooks
Dr. Goldschmidt Balázs
docens
Irányítástechnika és Informatika Tanszék
Dr. László Zoltán
Simon Balázs
tanársegéd