Title:

Java Programming Language

Code:IJA
Ac.Year:2017/2018
Term:Summer
Curriculums:
ProgrammeBranchYearDuty
IT-BC-3BIT2ndCompulsory-Elective - group T
Language:Czech
Credits:4
Completion:accreditation
Type of
instruction:
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Hours:0260013
 ExaminationTestsExercisesLaboratoriesOther
Points:0000100
Guarantee:Kočí Radek, 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
Prerequisites: 
Introduction to Programming Systems (IZP), DIFS
Schedule:
DayLessonWeekRoomStartEndLect.Gr.St.G.EndG.
MonexerciselecturesD10515:0016:502BIAxxxx
MonexerciselecturesD10515:0016:502BIBxxxx
MonexerciselecturesD10515:0016:503BITxxxx
 
Learning objectives:
  The goal is to introduce students to object-oriented programming in Java.
Description:
  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 competences:
  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 competences:
  Basis of object oriented programming. Knowledge of basic design patterns and Java programming techniques.
Syllabus of lectures:
 
  1. Introduction to Java: history, tools, distribution. Basic concepts: object, class, interface, constructor.
  2. Data types. Class declarations, access modifiers. Build and run application, application structure (packages), import classes.
  3. Inheritance, object initialization, inheritance hierarchy (Object class). Type conversion. Assert.
  4. Abstract class, interface. Type checking, type casting, object comparison. Array.
  5. Object oriented design and implementation in Java. Design Patterns.
  6. Tools: document generation, Java Archive (JAR), Apache Ant, JUnit (debugging). Annotation.
  7. Exceptions. Nested classes, enumeration type, varargs. Lambdas.
  8. Containers: iterator, collection, list, set, map. Generic containers. For-each loop, autoboxing.
  9. Threads: Planning, Sharing, Synchronization.
  10. Graphical User Interface JFC / Swing. MVC, Observer, and Command Patterns.
  11. Input Output streams. Sockets. Collecting data with streams.
  12. Java 8: interface, generics. Java programming principles.
  13. JVM: class loading, memory management, garbage collector, profiling.
Syllabus - others, projects and individual work of students:
 
  1. homeworks
  2. project (a small application in Java)
Fundamental literature:
 
  • 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
Study literature:
 
Exam prerequisites:
  
  • 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.