Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Advanced Programming with Java - Course Repository & Learning Resources

image Visit the Site

Welcome to the Advanced Programming with Java Course Repository — a comprehensive, community-driven learning resource.

This project is more than a collection of materials — it's a living documentation of how our teaching team collaborates, mentors, and builds a hands-on learning experience for students.


Purpose and Vision

Our mission is to ensure that every student not only understands Java and advanced programming concepts but can also apply them confidently through coding, problem-solving, and projects.

We believe that learning to code should be an active, guided process — not a passive one.
To achieve that, we combine theory from lectures with practice, mentorship, and structured documentation.


What This Repository Contains

Section Description
/overview/ Conceptual overviews for each lecture topic — theory summaries, examples, and key takeaways.
/workshops/ Hands-on guided activities for each topic, designed to help students learn by doing.
/assignments/ Weekly assignments that reinforce lecture material and build problem-solving skills.

All sections are written in Markdown, making them easy to read, modify, and publish (e.g., on GitHub Pages or Quartz).


Our Teaching Model

Our approach combines theoretical coverage, active practice, and close mentorship:

  1. Weekly Lectures

    • Delivered by the professor.
    • Introduce core programming concepts in Java.
  2. Workshops

    • Designed and run by TAs.
    • Translate concepts into hands-on coding experiences.
    • Encourage collaboration and experimentation.
  3. Assignments

    • Weekly exercises that challenge students to apply what they've learned.
    • Reviewed and discussed with mentors.
  4. Mentorship

    • Each TA mentors a small group of students.
    • Provides personalized support, code reviews, and guidance.
    • Builds a feedback loop between students, TAs, and the professor.

Why We Document This

We're documenting everything we do for three major reasons:

  1. Comprehensiveness for Learners
    Provide a high-quality, public resource for current students and self-learners outside the university.

  2. Pedagogical Transparency
    Allow educators and future TA teams to see and improve upon our structure, methods, and materials.

  3. Continuity and Growth
    Leave behind a foundation that future teaching teams or other institutions can build upon, adapt, and evolve.


Course Topics Overview

🏠 All course materials are organized under the Advanced-Programming-1404 GitHub Organization.
Each topic below links directly to its workshop and assignment repositories.

Week Topic Description Workshop Repository Assignment Repository
0 Introduction to Java Course orientation, JVM, Java ecosystem, IntelliJ IDEA, Maven & Gradle build tools.
1 Java & Git Git installation, repository setup, basic workflow, GitHub/Gitea, and Java basics. HW-02-git-and-java-practice
2 OOP – Encapsulation Classes & objects, constructors, access modifiers, method types, encapsulation, mutability. WS-02-intro-to-oop HW-03-oop-and-api
3 OOP – Inheritance & Polymorphism Inheritance, method overriding, polymorphism, abstract classes, interfaces, casting. WS-03-advanced-oop HW-04-JAVA-KNIGHT
4 OOP Review OOP concepts review, Generics introduction, HTML/CSS (optional), Web scraping (bonus). WS-04-oop-review HW-5-IMDB-SCRAPER (bonus)
5 Exceptions & Files Exception handling, checked vs unchecked exceptions, try-catch-throw, file I/O, CSV processing. WS-05-exceptions-and-file-handling HW-06-exceptions-and-file-handling
6 UI Introduction JavaFX architecture, FXML, CSS styling, event handling, Scene Builder. WS-06-intro-to-javafx HW-07-JavaFX
7 Hashing & Multithreading Hash functions, equals/hashCode contract, threads, Runnable, thread lifecycle. WS-07-Multithreading-Basics-and-Hashing HW-08-Basic-Multithreading
8 Advanced Multithreading Race conditions, synchronization, locks, semaphores, thread pools, deadlock prevention. WS-08-Advanced-Multithreading HW-09-Advanced-Multithreading
9 Network TCP/IP, sockets, client-server architecture, object serialization. WS-09-Network HW-10-Socket-Programming
10 Database (2 Sessions) PostgreSQL, SQL (DDL, DML, DQL), JDBC, ORM concepts, database design. WS-10-Database
11 Advanced Git Branching strategies, merge conflicts, reset/revert, stash, collaboration workflows. WS-11-Advanced-Git (bonus)
12 Final Project Project overview, requirements, planning, team formation.

Long-Term Goals

  • Create a sustainable, evolving educational model that balances theory and practice.
  • Encourage open-source education — anyone can learn from or contribute to our materials.
  • Serve as a baseline for future educators in teaching programming effectively.

The Team


Contributing

We welcome contributions — whether you're a TA, a student, or an educator from another institution.

If you'd like to:

  • Improve explanations or examples
  • Add new workshop exercises
  • Suggest assignment ideas
  • Translate materials

Please open a pull request or contact us.


Tech Stack

  • Java JDK 21+ — Primary programming language
  • IntelliJ IDEA — Recommended IDE
  • Maven / Gradle — Build tools and dependency management
  • JavaFX — GUI library for desktop applications
  • PostgreSQL — Database management
  • Git / GitHub — Version control and collaboration
  • Markdown — Documentation
  • GitHub Pages / Quartz — For deploying the website

License

All materials are shared under the Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) license.
You're free to learn, adapt, and build upon our content — just credit the authors and share alike.


Java AP SBU CS TA Team, 2026

About

A community-driven educational platform and documentation repository for the Advanced Programming with Java course, combining lecture overviews, hands-on workshops, weekly assignments, and mentorship resources. Built and maintained by the course TA team.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages