Java Programming Language
|BIT||-||2nd||Compulsory-Elective - group T|
|IT-BC-3||BIT||2nd||Compulsory-Elective - group T|
|Language of Instruction:||Czech|
|Guarantor:||Kočí Radek, Ing., Ph.D. (DITS)|
|Deputy guarantor:||Janoušek Vladimír, doc. Ing., Ph.D. (DITS)|
|Lecturer:||Kočí Radek, Ing., Ph.D. (DITS)|
|Instructor:||Kočí Radek, Ing., Ph.D. (DITS)|
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Intelligent Systems FIT BUT|
|Mon||exercise||lectures||D105 ||17:00||19:50||2BIA 2BIB 3BIT ||xx |
| || ||The goal is to introduce students to object-oriented programming in Java.|
| || ||Object orientation. Java - language, objects, classes, programming techniques, libraries, development environments. Design patterns. Debugging and testing tools. Graphical user interface, threads.|
|Knowledge and skills required for the course:|
| || ||Basics of imperative programming (language C) and algorithm development.|
|Subject specific learning outcomes and competencies:|
| || ||Ability to apply object oriented approach for application development using Java language. Experiences with design patterns and graphical user interface (Swing) in Java.|
|Generic learning outcomes and competencies:|
| || ||Basis of object oriented programming. Knowledge of basic design patterns and Java programming techniques.||Why is the course taught:|
| || ||Current practice requires at least basic knowledge of the principles of object-oriented programming, programming techniques and design patterns. The course teaches and trains these aspects in the Java language, which is a widespread language for the creation of complex applications.|
|Syllabus of lectures:|
- Introduction to Java: history, tools, distribution. Basic concepts: object, class, interface, constructor.
- Data types. Class declarations, access modifiers. Build and run application, application structure (packages), import classes.
- Inheritance, object initialization, inheritance hierarchy (Object class). Type conversion. Assert.
- An abstract class, interface. Type checking, typecasting, object comparison. Array.
- Object oriented design and implementation in Java. Design Patterns.
- Tools: document generation, Java Archive (JAR), Apache Ant, JUnit (debugging). Annotation.
- Exceptions. Nested classes, enumeration type, varargs. Lambdas.
- Containers: iterator, collection, list, set and map. Generic containers. For-each loop, autoboxing.
- Threads: Planning, Sharing, Synchronization.
- Graphical User Interface JFC / Swing. MVC, Observer, and Command Patterns.
- Input Output streams. Sockets. Collecting data with streams.
- Java 8: interface, generics. Java programming principles.
- JVM: class loading, memory management, garbage collector, profiling.
|Syllabus - others, projects and individual work of students:|
- project (a small application in Java)
- Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486
- Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
| || |
- Elaboration of homeworks and the project.
| || |
- Having at least 1 point of the possible point evaluation of each homework.
- Having at least 50% of the possible point evaluation of the project.