Skip to content

This course comes after Programming0 and before Programming 101. Hence - 51! This will be about OOP & Data Structures.

Notifications You must be signed in to change notification settings

HackBulgaria/Programming51-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Programming51-1

Partners

The course is happening thanks to:

Nemetschek Bulgaria

Videos

Тема Слайдове Допълнителни материали за четене
Уводно видео за поредицата Цък. В презентацията.
Сложност на алгоритми Цък. В презентацията.
Интуиция за структури от данни Цък. Java: what's the big-O time of declaring an array of size n?

Course weeks

Week Date Tasks Presentation
1 Monday - 08.06 Tasks for week1 Presentation for week1
2 Monday - 15.06 Tasks for week2 Presentation for week2 about OOP
2 Wednesday - 17.06 Tasks for week2 Presentation for week2 about OOP
2 Saturday - 20.06 Tasks for week2 OOP Recap
3 Monday - 22.06 Tasks for week3 OOP and Array Recap
3 Wednesday - 24.06 Tasks for week3 Vectors
4 Monday - 29.06 Tasks for week4 Generic Types
5 Monday - 06.07 Tasks for week5 Linked List
6 Monday - 13.07 Tasks for week6
7 Monday - 20.07 Tasks for week7 Interfaces and Polymorphysm
8 Monday - 27.07 Tasks for week8 Balanced Search Tree

This course comes after Programming0 and before Programming 101. Hence - 51! This will be about OOP & Data Structures.

The language of choice is going to be Java. The reason here is simple - Python's OOP contains too much magic for a beginner to handle. So we are going to use the clasiccal approach with Java!

In order to understand that course, please check:

Program

Here is a high-level overview of the program - what we are going to cover and use in this course:

  1. Get familiar with Java - we are going to compare Java with the things we know in Python so far. We are going to talk about types, arrays, IDE, Java Virtual Machine, public static void main, etc.
  2. Solve some problems with Java - we are going to revisit some of the problems from Programming 0 and resolve them with Java.
  3. Introducing OOP. Here, the fun begins. We are going to talk about why does OOP exists, what is the philosophy there and how can we achieve things in Java, using classes, encapsulating data and learning about interfaces and polymorphism.
  4. Introducing Abstract Data Structures & starting to think with interfaces. We are going to start with linear data structures
  5. We are going to implement our first data structure - a Vector - a self-resizable array. After this, we are going to implement LinkedList - again, a self-resizable list.
  6. After this, we are going to do Queue and Stack, using our previous data structures. We are going to solve a lot of problems involving queues and stacks ;)
  7. To merge things, we are going to implement a Deque - something that behaves like a Queue and a Stack!
  8. Making our way towards non-linear data structures, we are going to implement a mathematical Set data structure, the naive way.
  9. After this, we are going to jump right into Trees, making different kind of search trees - BinarySearchTree and Trie.
  10. After the trees, are are going to take a look into Graphs - how to implement them and what are the basics algorithms that we can run there.
  11. And to finish the course, we are going to revisit some of the data structures, and implement them better, with the latest knowledge we have.

Also, we are going to cover some of the concepts from the Java language:

  • Exceptions
  • Generics
  • Input / Output

About

This course comes after Programming0 and before Programming 101. Hence - 51! This will be about OOP & Data Structures.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published