Course Policies — Advanced Programming (Fall 1404)

Syllabus-based rules for grading, projects, assignments, workshops, exams, teamwork, integrity, and communication.

Instructor: Dr. Ali Najimi

Grading Policy (Total = 24 points)
Breakdown and exam modes
Course Project11 pts (8 + 3)
Homework Assignments6 pts
Workshops (Bonus)+1 pt (extra credit)

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.

Exams (Midterm + Final)6 pts

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.

Project: Selection & Teaming
Unique project per team, priority-based selection
  • 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.
Project Phases & Rubrics
Deliverables, tools, and evaluation

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.

Design quality — 40%
Use of patterns — 25%
Reliability — 20%
Docs/Tests — 15%

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.

Correctness — 40%
OOP design — 30%
Tests — 20%
Documentation — 10%

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).

Concurrency safety — 35%
Network correctness — 25%
Performance — 20%
Documentation — 20%
Homeworks (HW0–HW4)
Topics, submission, reviews
  • 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 & Late Policy
Deadlines and penalties
  • 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.

Teamwork & Academic Integrity
Expectations and consequences
  • 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.
Exams
Written midterm and final (total 6 pts)

Two written exams (midterm and final). Scoring uses the better of the two predefined modes (see Grading).

Communication Channels
Announcements, Q&A, and contacts
  • 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

Extraordinary Conditions
Policy adjustments

In emergencies (e.g., campus closure, remote-only periods), the calendar and deadlines may change as needed by instructor decision.