Outline

The course will run in a normal mode for the full duration of the First Semester (weeks 1–12). The following topics will be discussed:

Syllabus

  • Java’s Syntax and Program Structure. Procedural Programming
  • Objects, Classes and Object-Oriented Programming
  • Introductory Algorithms and Data Structures; Java Collections Framework; Abstract Data Types and Their Implementation
  • Graphical User Interface Programming: principles, event-driven programming, Model-View-Controller architecture, JavaFX Framework
  • Elements of Functional Programming with λ-expressions and streams API; Basics of Reactive Programming
  • Good Programming Practices and Software Development Principles; JUnit Testing and Test-Driven Development (TDD)

Learning Outcomes

By the end of this course, you should be able to:

  1. Read and understand a Java-based software code of medium-to-high complexity
  2. Write and appropriately document a Java application of medium complexity (consisting multiple classes)
  3. To use standard and third-party Java’s API when writing your own applications
  4. Understand the principles of object-oriented programming
  5. Create simple Java applications with graphical user interface (GUI) using packages like JavaFX and standard GUI programming principles
  6. Understand fundamental concepts of computer science: structure of computational process, algorithms and complexity of computation, value and variable, object and state, object and function, state and process
  7. Understand the basic approaches to designing software application and implementing the design using Java programming language

Assessing Learning Outcomes

The learning outcomes listed above will be subject to Assessment in accordance with the following scheme:

Assessment Item Weight Assesses Outcomes
Labs/Homeworks 10% 1–6
Mid-Semester Exam 10% 1,2,6
Assignment 1 15% 1–4,6,7
Assignment 2 15% 1-4,5,7
Final Exam 50% 1–6

Updated:  30 Mar 2017/ Responsible Officer:  Head of School/ Page Contact:  Alexei Khorev