This project is dedicated to teaching an advanced programming course in Java. The course starts with the fundamentals and gradually covers more complex topics. Along the way, we also explore essential tools like Git, IntelliJ, and other technologies that are part of a Java programmer's daily workflow.
The course material is offered to students through Quera.
- Semester 1403-02 (Spring 2025): Available at Quera Course Page
Contains all course assignments organized by semester:
semester-1403-02/- Current semester assignmentsweekly-assignments/- Weekly homeworksworkshop-exercises/- Practical coding exercises for 2-hour workshops
Configuration files and document templates:
- Templates for LaTeX and Word documents
- Fonts (Estedad font family) with Persian support
- Automation scripts for document processing (from Markdown to LaTex)
Course content in multiple formats:
markdown-source-files/- Raw Markdown content organized by topic:- Introduction to Java
- Git version control
- Graphics (Swing)
- Clean Code principles
- Object-oriented programming in Java
- File I/O in Java
- Java Collections Framework (JCF) and introduction "Data Structures and Aglrothms"
- MySQL Database and Hibernate ORM
semester-1403-02/- Compiled documents (PDF and DOCX)
Style and quality guidelines for creating educational content.
Semester-long projects with detailed documentation:
semester-1403-02/- Current semester assignments- Todo List - In-memory database implementation
- Milou Project - Simple E-Mail system
- Create a branch from
mainusing kebab-case naming (e.g.,add-week3-content) - If working in a group, collaborate on a single branch
- Avoid creating multiple branches for the same week's content
- Submit a pull request to merge your branch into
main - Ensure all new content follows the established structure
- Include comprehensive README.md files for student-facing content
Before creating new content, review the guidelines in:
- Use kebab-case for everything
- Use imperative mood in present tense
- Write in all lowercase
- Group related materials under topic-specific directories
- Separate source files from compiled documents
- Include images in dedicated
images/subdirectories
- Markdown files in
documents/markdown-source-files/serve as the source for all documents - Templates in
config/templates/ensure consistent formatting - Assignments include both problem statements and reference solutions
- Projects provide real-world application of course concepts