Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

CS208

Foundations of Programming: Java

Barcelona Campus
Mar 11, 2024 - Mar 29, 2024
This course covers the essential concepts and techniques necessary to develop robust Java applications.
Barcelona Campus
Mar 11, 2024 - Mar 29, 2024
Alexander Sergeev

Faculty

Alexander Sergeev

Senior Software Developer at Flow Traders (ex Revolut, Yandex)

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

4 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

Object Oriented ProgrammingJavaMultithreadingUnit TestingObject Oriented Design
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

The Foundations of Programming on Java is a comprehensive and hands-on educational program designed to equip learners with a solid understanding of the fundamental principles and practices of Java programming. This course caters to both beginners and intermediate learners, providing them with a structured curriculum that covers the essential concepts and techniques necessary to develop robust Java applications.

The curriculum emphasizes hands-on experience and includes practical coding exercises and projects, enabling students to apply theoretical knowledge in real-world scenarios. Learners will familiarize themselves with Java's rich standard libraries and APIs, leveraging them to solve complex problems efficiently.

In addition to the core Java concepts, the course covers topics like exception handling, file I/O, Stream API, and multi-threading, enabling learners to develop robust, error-resistant, and multi-functional applications. Participants will also explore the principles of inheritance, encapsulation, and polymorphism, which are essential for building modular and scalable software.

Learning highlights

  • Provide learners with an overview of the Java language, introducing essential concepts.
  • Teach students how to create reusable code through methods and functions, emphasizing code modularity and maintainability. Familiarize learners with the principles of OOP
  • Explore Java's rich standard libraries and APIs, enabling students to leverage existing code and functionalities to streamline application development.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Introduction to Java

What is Java, Hello World, Primitive types, Arrays and strings, Basic I/O, Conditionals, Loops, Getting to know IDE.

Tuesday
2

Basics of Object Oriented Programming

Classes, fields, constructors, methods, packages, access modifiers, abstract classes and interfaces.

Wednesday
3

Generics, Collections

Generics, Collections

Thursday
4

Introduction to the Project

Introduction to the Project

Friday
5

Dependency Injection and Basic Object Oriented Design Patterns

Dependency Injection and Basic Object Oriented Design Patterns

Monday
6

Introduction to Exceptions, Exception Handling, Try-catch, Logging, Maven

Introduction to Exceptions, Exception Handling, Try-catch, Logging, Maven.

Tuesday
7

Mid-course ​Test and Intermediate Assessment of the Project

Mid-course ​Test and Intermediate Assessment of the Project

Wednesday
8

Functional Interfaces and Stream API

Functional Interfaces and Stream API

Thursday
9

Access to the File System, Byte Stream

java.io.File, java.nio.Path, InputStream and OutputStream, Wrapper classes.

Friday
10

Java Memory Model and Multithreading

Java Memory Model and Multithreading

Monday
11

Under the Hood of Java Classes

JVM, Java bytecode, Garbage collection

Tuesday
12

Unit Testing, Debugging, and Test Driven Development

Unit Testing, Debugging, and Test Driven Development

Wednesday
13

Building CRUD API. Pair Programming Session (Mini Project)

Building CRUD API. Pair Programming Session (Mini Project)

Thursday
14

Project Validation

Project Validation

Friday
15

Final Test and Project Review

Final Test and Project Review

Prerequisites

Understanding of programming concepts: while not mandatory, a basic understanding of programming concepts like variables, loops, and conditional statements can be helpful.

Logical thinking: the ability to think logically and break down problems into smaller, manageable steps is crucial for successful programming.

Enthusiasm to learn: the most important skill is the willingness and enthusiasm to learn and explore the world of Java programming.

Methodology

Curriculum design: the course begins with a well-structured curriculum that outlines the learning objectives, topics to be covered, and the logical progression of concepts. The curriculum is designed to build on foundational knowledge and gradually introduce more complex Java programming concepts.

Interactive lectures: the instructor delivers engaging and interactive lectures that explain the fundamental principles of Java programming.

Hands-on coding: practical programming exercises and coding projects are integrated throughout the course. Learners are encouraged to write and execute Java code to reinforce theoretical knowledge and gain hands-on experience in Java programming.

Collaborative learning: group activities and collaborative coding projects foster teamwork and communication skills. A project needs to be built by a small group of students.

Assessments: mid -and final- course assessments are conducted to evaluate learners' understanding of the material.

Grading

The final grade will be composed of the following criteria:
50% - Homework
30% - Project (20% a big one + 10% a small one)
10% - Mid-term test
10% - Final test
Alexander Sergeev

Faculty

Alexander Sergeev

Senior Software Developer at Flow Traders (ex Revolut, Yandex)

Alexander Sergeev is an accomplished Senior Software Developer based in the Netherlands, known for his exemplary career at esteemed tech companies like Flow Traders, Revolut, Yandex, and Netcracker and his strong educational background.

Alexander's journey in the tech industry began with a solid foundation in education. He attended the prestigious Moscow Institute of Physics and Technology (MIPT) in Russia, where he pursued a Master's degree in Computer Engineering. At MIPT, Alexander immersed himself in a rigorous academic curriculum, delving deep into computer science, software engineering principles, and cutting-edge technologies.

See full profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Foundations of Programming: Java

by Alexander Sergeev

Total hours

45 Hours

Dates

Mar 11 - Mar 29, 2024

Fee for single course

€1500

Fee for degree students

€750

How to secure your spot

Complete the form below to kickstart your application

Schedule your Harbour.Space interview

If successful, get ready to join us on campus

FAQ

Will I receive a certificate after completion?

Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.

Do I need a visa?

This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.

Can I get a discount?

Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.