An open API service indexing awesome lists of open source software.

https://github.com/margitantal68/oop-2024

📚 This open-access course will introduce you to object-oriented programming in Java.
https://github.com/margitantal68/oop-2024

collections inheritance java object-oriented-programming oop oop-java polymorphism programming programming-languages static-members threads

Last synced: 17 days ago
JSON representation

📚 This open-access course will introduce you to object-oriented programming in Java.

Awesome Lists containing this project

README

          

# 📚 Object-Oriented Programming in Java

[![Java](https://img.shields.io/badge/Language-Java-orange.svg)](https://www.java.com/)
[![Course](https://img.shields.io/badge/Course-Open--Access-green.svg)](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Welcome! 👋 This repository contains all the materials for the **Object-Oriented Programming (Java)** course. This course is designed to transition students from procedural programming (C) to the OOP paradigm using Java.

---

## 📖 Table of Contents

- [📚 Object-Oriented Programming in Java](#-object-oriented-programming-in-java)
- [📖 Table of Contents](#-table-of-contents)
- [🛠 Prerequisites](#-prerequisites)
- [👩‍🏫 Slides](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf)
- [📅 Weekly Schedule](#-weekly-schedule)
- [📊 Practical Exercises](#-practical-exercises)
- [🚀 How to Use This Repo](#-how-to-use-this-repo)

---

## 🛠 Prerequisites
Before starting, you should have:
- [x] Familiarity with the **C programming language**.
- [x] Understanding of basic programming logic (loops, conditions, functions).
- [x] [JDK 17+](https://www.oracle.com/java/technologies/downloads/) installed on your machine.

---

## 📅 Weekly Schedule

This table combines slides, practice notebooks, and solutions for easy access.

| Week | Topic | Slides | Google Colab Notebooks | Solutions |
|:---:|:------------------------------|:---:|:---:|:---:|
| **1** | Introduction to Java | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1iV1RGi3vAUV8_sBk1Fztvisf4ZSsvmFi?usp=sharing) | [Solution ✅](https://colab.research.google.com/drive/1hwHwAZUfN93a58WiFqkyH_jO_htbGbvj?usp=sharing) |
| **2** | Classes & Objects | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1tm1O6s1rqTvxhJIF-VjEjFGT1_P_CT9A?usp=sharing) | [Solution ✅](https://colab.research.google.com/drive/1UoVOpByCyvAPvmLnIkgnDw7WZodjysRn?usp=sharing) |
| **3** | Java Basics | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1Yiu7qxl-97t-T5qvbkh24Z_2kQtJxaNO?usp=sharing) | [Solution ✅](https://colab.research.google.com/drive/1HgekKcoRvLjhZSYbjf9aTavUkFa_hgko?usp=sharing) |
| **4** | Strings and Arrays | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1k29SZZO54smB6Bzva_AhpotLX5IdyQYS?usp=sharing) | |
| **5** | ArrayList | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1zCxQcQyu9Q3zifJVhwTf1nsQa-gNUZVb?usp=sharing) | |
| **6** | Static Members | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1IFXwTeMQoitVjlX6Y3aViVb_Qv5Ze1kC?usp=sharing) | |
| **7** | Inheritance and Polymorphism | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1pqkcGSYk1aiyiXCJBCsMF6p2j6wmBkxX?usp=sharing) | |
| **8** | Dynamic and Static Polymorphism | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1XT0W6fsTYebmkDzXkxwedbHYqTdX21BF?usp=sharing) | |
| **9** | Interfaces | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1InpYryA2G5HPVUMI6Y-CwdOtbsks_75T?usp=sharing) | [Solution ✅](https://colab.research.google.com/drive/1kycGs1QLMsUfIGPaaHU-r6an2DiOLsXd?usp=sharing) |
| **10** | Sorting | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1eHAOfL9qq9NiTCNgAKjPNI56xz4AQc-j?usp=sharing) | |
| **11** | Exceptions | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/11P6F1nHdwMUbKuP5kPRZqT2fgvK_KNCN?usp=sharing) | |
| **12** | Collections | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Notebook 🔗](https://colab.research.google.com/drive/1OM_pEyLVa8Sw-C-AF6ulZ9bT27p9eXT3?usp=sharing) | |
| **13** | Exam Preparation | [Link 📄](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf) | [Exam Topics (HU)](practical-exercises/oop_exam_topics_hu.pdf) | |
---

## 📊 Practical Exercises

The laboratory exercises are located in the [`/practical-exercises`](./practical-exercises) folder.
|Week| Problem |
|:---:|:---:|
| **1** |[📊 Week 1](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB1.pdf)|
| **2** |[📊 Week 2](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB2.pdf)|
| **3** |[📊 Week 3](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB3.pdf)|
| **4** |[📊 Week 4](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB4.pdf)|
| **5** |[📊 Week 5](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB5.pdf)|
| **6** |[📊 Week 6](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB6.pdf)|
| **7** |[📊 Week 7](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB7.pdf)|
| **9** |[📊 Week 9](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB9.pdf)|
| **10** |[📊 Week 10](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB10.pdf)|
| **11** |[📊 Week 11](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB11.pdf)|
| **12** |[📊 Week 12](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB12.pdf)|
| **13** |[📊 Week 13](https://github.com/margitantal68/oop-2024/blob/main/practical-exercises/OOP_LAB13.pdf)|
---

## 🚀 How to Use This Repo

1. **View Slides**: Start with the [OOP - Java slides](https://www.ms.sapientia.ro/~manyi/teaching/oop/oop_java.pdf).
2. **Interactive Practice**: Click the **Week X** links in the table above to open Google Colab notebooks.
3. **Local Development**: Solve the weekly lab exercises!