460-2058/02 – Java Programming I (JAVA I)
        
        | Gurantor department | Department of Computer Science | Credits | 4 | 
| Subject guarantor | Ing. David Ježek, Ph.D. | Subject version guarantor | Ing. David Ježek, Ph.D. | 
| Study level | undergraduate or graduate |  |  | 
|  |  | Study language | English | 
| Year of introduction | 2019/2020 | Year of cancellation |  | 
| Intended for the faculties | FEI | Intended for study types | Bachelor | 
          
            Subject aims expressed by acquired skills and competences
          
          In Java, student is familiar with:
-difference between inheritance as class extension and subtyping as interfaces;
-type system and difference between primitive types and object types;
-casting among different primitive types and object types;
-auto boxing and unboxing between primitive and wrapper types;
-accessing filesystem;
-interprocess communication through Internet connection.
In Java, student can:
-construct runnable program;
-design and implement a class;
-use subclassing to design class hierarchies;
-separate code to namespaces and access elements for different namespaces;
-use dynamic dispatch;  
-use interfaces as encapsulation mechanism;
-handle and propagate errors by exception mechanism;
-use Collection framework for data abstraction and construction for-each,
-process strings with regular expressions;
-read and write data from text files and binary files;
-use lambda expression;
-run parallel code  in separate thread
In Java, student is able assess alternative implementation of collections with respect of performance
          
            Teaching methods
          
          
            Lectures
              
            Tutorials
              
            Experimental work in labs
              
            Project work
              
            
          
        
          
            Summary
          
          Students improve their knowledge of object oriented programming a gain another insight in programming languages problematics from point fo view of modern programming language Java. Course follows courses „Introduction to programming“ and „Object oriented programming“ and students are required to pass these courses successfully before enrollment into the course.
          
            Compulsory literature:
          
          
          
            Recommended literature:
          
          
          
            Additional study materials
          
          
          
            Way of continuous check of knowledge in the course of semester
          
          homework, tests, oral exam
          
            E-learning
          
          Materials and information available at https://swi.cs.vsb.cz/en/jezek/student-information/Java1.html
          
            Other requirements
          
          Knowledge of the object oriented design and skill in the field of the object oriented programming.
          
            Prerequisities
          
          
          
            Co-requisities
          
          
            
              Subject has no co-requisities.
            
          
          
            Subject syllabus:
          
          Lectures:
    1. Description of Java technology architecture.
    2. Data types and programming constructions in Java.
    3. Class definition, overriding in Java. Packages.
    4. Interface – definition, using, implementation.
    5. Class extension. Nested classes, simple lambda expressions.
    6. User interface in JavaFX.
    7. Generic data types. Exceptions.
    8. Collections framework.
    9. Strings and regular expressions.
    10. Input/Output.
    11. Working with filesystem and an advanced working with I/O.
    12. Threads and synchronization.
    13. Internet communication.
Labs:
    1. Description of Java technology architecture.
    2. Data types and programming constructions in Java.
    3. Class definition, overriding in Java. Packages.
    4. Interface – definition, using, implementation.
    5. Class extension. Nested classes, simple lambda expressions.
    6. User interface in JavaFX.
    7. Generic data types. Exceptions.
    8. Collections framework.
    9. Strings and regular expressions.
    10. Input/Output.
    11. Working with filesystem and an advanced working with I/O.
    12. Threads and synchronization.
    13. Internet communication.
          
            Conditions for subject completion 
          
          
	
	
    
	
	
	
	 
          
        
          Occurrence in study plans
        
        
        
          Occurrence in special blocks
        
        
        
          Assessment of instruction