City

Kyiv

Course

Base course (Java)

Start of classes

22 June 2020

  • icon

    Duration 4 months

  • icon

    Intensity 5 lessons per week

  • icon

    Class time 4 hours a day

  • icon

    Study grant Covers 85% of the course cost:
    The student pays 1200 uah/month

Course description

Learn the basic programming concepts, terminology, and syntax of Java. In addition, you will acquire the fundamental skills that every software developer needs: from developing algorithms to testing and debugging your programs. Gain experience working with databases, allowing you to create complete programs to solve complex problems.

The program places a strong emphasis on developing practical skills, so you will learn to write sophisticated code using modern software development methods and gain useful computer programming experience.

Profile of an Ideal Student
Don't hesitate to apply to the course if everything you see below is about you!
Your Soft Skills
  • Flexibility and adaptivity
  • Communication skills
  • Listening and teamwork skills
What You Know and Can Do
  • Basic HTML, CSS and JavaScript knowledge
  • Machine mathematics and number systems
  • Conditional and looping constructs
  • Methods, recursion and arrays
  • Variables and data types
  • Logical operations
You are a perfect candidate if
  • You are analytic
  • You are focused on research
  • You are motivated and enthusiastic about computing
  • You are observant, detail-oriented, and organised

Course program

  1. 1. General characteristics of the Java language
    • Introduction to Java
    • Java virtual machine (JVM)
  2. 2. Data types and basic operations with them
    • Language syntax
    • Comments
    • Keywords in Java
    • Data types: primitive / reference
    • Principle of choosing primitive data types
    • Variables and constants
    • Declaration and initialization of variables (fields)
    • Scope and lifetime of variables
    • Operations: arithmetic, assignment, relationships and logical
    • Converting and casting numeric types
    • Operations' priority
  3. 3. Conditional operators and loops
    • Conditional operator and its types
    • Ternary operator
    • "switch" statement
    • Loops: for, while, do while
    • Infinite loops
    • Interruption of control flow, tags
  4. 4. Arrays
    • Declaration and initialization of arrays
    • One-dimensional, multidimensional arrays
    • Iterate over array elements (foreach loop)
    • Arrays and assignments
    • Search in arrays
    • Arrays class: filling, comparing and sorting elements
    • Methods: arguments of variable length
  5. 5. Strings
    • Char
    • String class. Immutable Objects
    • Storing strings in memory (String Pool)
    • The basic operations of the String class (creation, concatenation, comparison, searching for characters and substrings in strings, etc.)
    • Converting primitive data types
    • StringBuffer vs StringBuilder classes
    • Localization and encoding (UTF-8 and other)
  6. 6. Introduction to OOP. Objects and classes
    • Objects and classes. Objects. Definition. Condition. Behavior.
    • The object model. Key points: abstraction, encapsulation, inheritance, polymorphism.
    • Packages. Packages' nesting
    • Fields and methods (definition, declaration syntax)
    • Access modifiers
    • Classes' fields: initialization explicit and default, final specifier (constants)
    • Methods: parameters and links, set of methods, methods' overloading, methods' overriding
    • Static fields, methods, initialization blocks
    • Access to fields and methods
    • Constructors: default constructors, calling one constructor from another
    • Usage of "this"
  7. 7. Unit Testing
    • The importance of testing
    • Preparation for testing
    • Test creating
    • JUnit
    • TestNG
    • Mocking (PowerMock, Mockito)
    • TDD
  8. 8. Recursion
    • Fibonacci + testing. Cycle Replacement.
  9. 9. Inheritance, polymorphism, composition, aggregation
    • Inheritance and polymorphism as a tool for creating software. Superclass and subclasses, generalization relation, inheritance in Java. A call to superclass constructors, the order of calls. Keyword super
    • Overriding methods, main rules. Inheritance for static fields and class methods. Abstract classes and methods - concept, call of constructors, implementation of methods in child classes
    • Interfaces. "Multiple" inheritance. Definition and implementation of interfaces. Interface Extension
    • Inner classes
    • Polymorphism. Inheritance hierarchy
    • Converting and casting. Using instanceof. Prohibition of inheritance: terminal (final) methods and classes.
    • Import classes, static methods and fields
    • Composition
  10. 10. Class Object
    • The global superclass Object, its methods
    • Implementation rules of equals(), hashCode(), toString() methods
  11. 11. Enums
    • ENUM. values(), valueOf(), name(), ordinal() methods.
  12. 12. JVM
    • Heep, Stack.
    • Storage of different types of data (primitives, arrays, reference objects and strings)
    • Garbage collection and disposal of objects
  13. 13. Collections
    • Class Collections: search and sorting of elements, adding.
    • Abstract data types (data structures)
    • List
    • Set
    • Map
    • Iterating over Collections, forEach loop
    • Comparators
    • Non-generic Vs Generic Collection in Java. Difference
    • Lambda expressions
    • Stream API
  14. 14. Generics
    • Using Generics
  15. 15. Git
    • Repository
    • Basic Git commands
    • Git flow
  16. 16. Exception handling in Java
    • Java exception class hierarchy
    • Exception handling
    • The concept of exception and exceptional case
    • Checked/Unchecked exceptions
    • Exception generation and throw statement
    • Controlled exception declarations, throws keyword
    • Throws in overridden methods
    • Exception catching and handling
    • Regeneration of exceptions
    • Finally block: releasing resources
    • StackTrace
  17. 17. Debugger
    • Ways to find an error
  18. 18. Serialization/Deserialization, JSON/XML
    • Objects presentation in text form
  19. 19. IO/NIO
    • Class hierarchy of streaming output/input
    • Output/input streams, workflow, output/input stream hierarchy
    • FilterOutputStream and FilterInputStream
    • Byte streams
    • Character streams
    • Класс File
    • Serialization and Deserialization in Java. Concept and purpose
    • Try with resources
  20. 20. Concurrency, JMM
    • Thread and process
    • JVM realisation of execute multiple threads on single core
    • Runnable and Callable classes
    • Run and stop a thread. Thread management
    • Java thread visibility. Stack
    • Synchronized keyword. Mutex object and monitor
    • Deadlock
    • Volatile keyword
    • Multithreaded application example
    • Executor
    • Concurrent collections
    • Happens-before
  21. 21. Building of JAR-files manually
    • JAR-file structure
    • Compiling and building of JAR-files
    • Execution of JAR-file
    • Java execution parameters
  22. 22. Java Build Tools
    • The main point of building project
    • Lifecycle of building project
    • Dependencies
    • Maven, Gradle
  23. 23. Regular expression
    • Regular expression in Java
  24. 24. Logging
    • Purpose of logging
    • Logging levels
    • Configuration of log
  25. 25. DB
    • ACID
    • SQL
    • NoSQL
    • JDBC
    • SDK for NoSQL
    • CAP-theorem
  26. 26. Client-Server programming
    • The concept of client and server
    • Client-server interaction
    • Networks
    • OSI levels
    • Socket
    • REST
    • WebSocket
    • CORS
  27. 27. Java EE
    • Servlet.
    • Servlet containers (Tomcat)
    • Filters
    • JBoss, GlassFish etc.
  28. 28. Project structure
    • MVC
    • MVP
  29. 29. Annotation
    • RetentionPolicy
    • ElementType
    • Annotations inheritance
  30. 30. Reflection
    • Access to the class fields and methods
  31. 31. CI/CD
    • How to simplify and speed up production process
    • TeamCity, Jenkins
  32. 32. Patterns GRASP, SOLID
    • Problem solving with patterns
    • GRASP. Generative patterns
    • GRASP. Structural patterns
    • GRASP. Behavioral patterns
    • SOLID
  33. 33. Front-end
    • HTML
    • CSS
    • JS
  34. 34. ORM
    • Hibernate
  35. 35. Base of Spring
    • History
    • IoC/DI
    • Beans lifecycle
    • Config
    • Spring Wev MVC
    • Spring Boot
    • Spring Data JPA

Fill out the form and get a training grant in the next course stream!