Course Policies — Advanced Programming (Fall 1404)
Syllabus-based rules for grading, projects, assignments, workshops, exams, teamwork, integrity, and communication.
Instructor: Dr. Ali Najimi
Workshop bonus distribution
Workshop credit is optional and distributed proportionally across homeworks; you must attend the related workshop and earn the corresponding homework score to receive that portion of the bonus.
Exam scoring uses the better of two modes:
- Mode A — Midterm: 2 pts, Final: 4 pts
- Mode B — Midterm: 4 pts, Final: 2 pts
The higher resulting total is recorded as your exam score.
- Projects are offered as a “basket”. Each team ranks preferences; if conflicts occur, a lottery decides.
- Each team must implement a distinct project; two teams cannot implement the same project.
- Teams are typically 3 members. If one or two students remain unteamed, one or two 4-member teams may be formed.
- If two members drop a team, the remaining member may continue, join another team, or merge teams by mutual consent.
Phase 1 (Weeks 7–11)
Modular development using at least two GoF patterns; add file I/O and Java Collections. Deliver a 1–2 page design document (UML class diagram) and a test coverage report.
Suggested tools: PlantUML, JaCoCo, SpotBugs/Checkstyle.
Phase 2 (Weeks 3–6)
Build a Java CLI app demonstrating core OOP concepts; include unit tests (JUnit). Deliver source code, README (max 3 pages), test report, and a short demo video.
Suggested tools: JDK 17, Gradle/Maven, JUnit 5, Git.
Phase 3 (Weeks 12–15)
Add a concurrent client/server component (sockets) and perform refactoring. Deliver source code, a release package, concurrency design notes, and load-test results.
Suggested tools: Java Sockets/Netty, JMH or simple benchmarking, GitHub Actions (CI).
- HW0: Java introduction.
- HW1: Core OOP & data structures.
- HW2: Advanced OOP (inheritance, polymorphism, interfaces), software testing, refactoring.
- HW3: Generics, File I/O, Networking.
- HW4: Reflection & Design Patterns.
HW0–HW1 include Quera judged components; HW2–HW4 include mini-project style deliverables (repository uploads). Time slots for submission may be coordinated per student.
Code reviews: You may be asked to explain any part of your submission live. Failure to explain your own work results in zero for that homework, regardless of correctness.
- Extensions may be granted if a majority of students request and it is feasible.
- Global late budget: Up to 10 total days of lateness across all homeworks.
- Beyond the allowed budget, late submissions are not accepted.
- Penalty: linear 10% per day on the assignment’s score.
Some assignments may allow 2–4 days late individually; follow the official release/announcement per task.
- All team members must contribute equitably to all phases of the project.
- Non-cooperation can result in zero on the project for the offending student, even if they helped elsewhere; teams may appeal.
- Use of AI tools is allowed and even encouraged for productivity; however, you must understand and be able to explain your deliverables.
- Failure to explain implies lack of authorship and leads to zero for that deliverable.
Two written exams (midterm and final). Scoring uses the better of the two predefined modes (see Grading).
- Quera — official announcements, slides, homeworks, project specs, and grading.
- Course Website — syllabus, slides, team list, and project list.
- Telegram group — open discussion among students and TAs.
- Bale group — for emergencies (limited external internet, e.g.).
Contacts
- Instructor — najimi56@gmail.com
- Head TA — sohaibsadeghy@gmail.com
In emergencies (e.g., campus closure, remote-only periods), the calendar and deadlines may change as needed by instructor decision.