Course-Info
Course Info
- Course outline. See sidebar (on right) for many details.
Getting Extra Help
Some great ways to get extra help are:
- Discord Discussion
Get (and give!) immediate help from classmates and sometimes instructor or TA. Please don't post your code, but OK to ask questions. Invite link in sidebar (right). Note: Discord is hosted outside of Canada; it is not mandatory to use. - Office Hours
Both the instructor and TAs have office hours. Great for getting in person help or personal concerns. Instructor office hours are in person (or in lab/on discord), and TA office hours are on Discord; however, you can request a Zoom meeting if you don't want to use Discord for privacy reasons. Details in sidebar (right). - Assignment Marking Questions
Visit the TA during their office hours, or email them a question about assignment marking; see sidebar for addresses.
Include course number in email's subject line. - Email Instructor Good for private questions about extension requests or other issues. Please include course number email's subject line. Email addresses in sidebar (right).
Grading
All submissions done via CourSys. Also shows you your marks and marking feedback.
- Assignments (30%) - ~5 assignments; due about every 2 weeks. May include some announced in-class quizzes. Assignment weight in CourSys are approximate. Announced in class, posted on website.
- Midterm (30%) - Written on-paper exam; date in sidebar.
- Final Exam (40%) - Cumulative for course; written on paper; date in sidebar. If your final exam percentage is better than your midterm percentage, one fifth of the weight of your midterm will be transferred to your final exam automatically.
Grading Details
- Students must attain an overall passing grade on the weighted average of the exams in the course to obtain a clear pass (C- or better).
- The MOSS tool will be used to check the originality of all electronic submissions (within this class, and against previous offerings as needed).
- SFU's Academic Honesty policy is crucial to earning credit in this course. Violations of the policy will be taken seriously and reported to the department and university.
- Explanation of penalties I often apply for academic dishonesty.
Late Policy
- Assignment Late Policy
Assignments may be turned in up to 3 days late with 0% penalty. Later than this is 100% penalty (60 minute grace period). Contact the instructor if there are extenuating circumstances. - Extensions and Deferrals
Email Dr. Brian with your request. You may need to complete and email SFU Academic Concession Self-Declaration Form. Doctor's notes are usually not required. Extensions only considered for circumstances beyond the student's control; plan to submit assignments on time. - Academic Honesty
- The MOSS tool will be used to check the originality of all electronic submissions.
- SFU's Academic Honesty policy is crucial to earning credit in this course. Violations of the policy will be taken seriously and reported to the department and university.
- Explanation of penalties applied for academic dishonesty.
- AI Policy
- Students may use AI tools (such as GitHub's Copilot, or ChatGPT) to support their programming.
- You must do the high-level design yourself and be able to write all submitted code on your own (even if you used help from the AI).
- You should use the AI to code no more than a few lines at a time: do not have it write all lines of code.
- You must add a comment to any functions that you used the AI's help to write more than 5 line of code.
- Code written exclusively by, or with the help of an AI system is still governed by the academic honesty policies of the course and university. If a significant number of lines of code, or detailed/critical code is found not to be the student's work, then that work will get a zero. If the copied code was not cited correctly (from either a human or AI source) then it will be considered a case of academic dishonesty and the entire assignment may get a grade of 0 and a report on file with the university.
- Note that AI tools are not available during exams, and exams make up the bulk of the percentage for the course.
Good Textbooks (NOT REQUIRED!)
- Highly Recommended Book:
- Object-Oriented Design & Patterns, 3nd ed (pre-release), Cay Horstmann
Free [PDF for JUST OUR CLASS]!
- Object-Oriented Design & Patterns, 3nd ed (pre-release), Cay Horstmann
- Recommended Book:
- Effective Java 3rd ed, Joshua Bloch, 2017.
- Object-Oriented Design & Patterns, 2nd ed, Cay Horstmann, Wiley, 2006, 9780471744870.
On reserve?: SFU Library (Surrey)
Text book [sample code], [question solutions], and [C to Java guide]
- Reference Books:
- Head first design patterns, Freeman and Freeman, O'Reilly, 2004, 9780596007126.
- Code Complete, 2nd ed., Steve McConnell, Microsoft Press, 2004, 9780735619678.
- Patterns in Java (Volume 1), Mark Grand, Wiley, 2002, 9780471227298.