Fall 2023 Teaching
CS 335 – Graphics and Multimedia
https://aaz-imran.github.io/teaching/2023-fall-cs335
Syllabus
Time: MWF 3:00 pm – 3:50 pm
Location: Register course to know
Course Instructor: Dr. Abdullah-Al-Zubaer Imran
Office: 319 Marksbury
Office Hours: Wednesdays 9 am – 11 am, and by appointment.
Teaching Assistant: Matthew Wise
Location: Engineering Annex 2nd Floor
Office Hours: Thursdays 12 pm – 1 pm
Course Description:
This course focuses on the graphical human-machine interface, covering the principles of windowing systems, graphical interface design and implementation, and processing graphical data. There is an emphasis on medium-scale programming projects with graphical user interfaces using a high-level procedural programming language and concepts such as object-oriented design.
Course Outcomes:
Upon completion of this course, students will be able to:
- Understand the principal technical elements of computer graphics, image processing, and user interface design
- Build computer programs that manipulate images, use computer graphics operations, and provide a user interface
- Learn Python programming and relevant packages for graphics and image processing
- Comprehend the relevance and importance of computer graphics, image processing, and user interface design in the context of computer science as a vocation
Prereqs:
Course prerequisite: CS 216 – Intro to Software Engineering Techniques.
Good to have: Familiarity with basic linear algebra and vector calculus, knowledge of programming at an intermediate level.
Required books:
There is no required textbook for CS 335.
Recommended books:
Fundamentals of Computer Graphics
Steve Marschner and Peter Shirley, A K Peters/CRC, 2021.Digital Image Processing
Rafael C. Gonzalez and Richard E. Woods, Pearson, 2019Create GUI Applications with Python
Martin Fitzpatrick, 2022
Course Schedule/Outline:
Week | Topic | Note |
---|---|---|
1. | Aug 21: Course Introduction, Logistics, Expectations Aug 23: Graphics Fundamentals Aug 25: Python Programming – Part I | |
2. | Aug 28: Python Programming – Part II Aug 30: Python Programming – Part III Sep 01: Python Programming – Part IV | |
3. | Sep 04: No Lecture – Labor Day Sep 06: Math Preview/Review – Part I Sep 08: Math Preview/Review - Part II | Release of hw1 |
4. | Sep 11: Math Preview/Review – Part III Sep 13: GUI Elements Sep 15: GUI Elements | |
5. | Sep 18: Image Representations Sep 20: 2D Transformations Sep 22: 2D Transformations | hw1 due at 11:59 PM |
6. | Sep 25: Scan Conversion Sep 27: Graphics Pipeline Sep 29: 2D Viewing and Clipping | |
7. | Oct 02: Projections Oct 04: Curves Oct 06: Supersampling | Release of hw2 |
8. | Oct 09: Texture Mapping Oct 11: Rendering Oct 13: Interaction and Animation | Project Team Formation |
9. | Oct 16: Midterm Review Oct 18: Midterm Exam Oct 20: Image Processing Fundamentals | hw2 due at 11:59 PM |
10. | Oct 23: No Lecture – Fall Break Oct 25: Image Processing in Python Oct 27: Color Model | Project proposal due at 11:59 PM |
11. | Oct 30: Histogram: Image Neighborhood Nov 01: Geometric Operations Nov 03: Filtering and Interpolation | Release of hw3 |
12. | Nov 06: Segmentation – Part I Nov 08: Segmentation – Part II Nov 10: Image Compression | |
13. | Nov 13: Image Classification Nov 15: UI/UX Design – Simplicity and Elegance Nov 17: UI/UX Design – Human Factors | hw3 due at 11:59 PM |
14. | Nov 20: Project Review Nov 22: No Lecture – Thanksgiving Nov 24: No Lecture – Thanksgiving | |
15. | Nov 27: Guest Lecture – Crowd Simulation Nov 29: Project Demo Presentation Dec 01: Project Demo Presentation | Project due at 11:59 PM |
16. | Dec 04: Prep Days – Final Exam Review Dec 06: Guest Lecture – Artificial Life Dec 08: No Lecture | |
17. | Dec 11: Final Exam |
Course Activities:
- Class performance (10%) – Class participation and activities
- Assignments (30%) – three math/programming assignments
- Team project (30%) – GUI application for graphics/image processing
- Midterm (10%) – a written midterm exam
- Final (20%) – a written final exam
Grading Scale:
After the final percentage grade is calculated, the following scale will be used to determine the final letter grade.
- 90–100% (A)
- 80–89% (B)
- 70–79% (C)
- 60–69% (D)
- 0–59% (E)
READ THIS:
Academic Integrity: Please strictly follow the Academic Offenses Rules (plagiarism, cheating, and falsification or misuse of academic records). Also, keep in mind that any copyrighted materials (e.g., images and other media), and published contents (e.g., academic papers, books, web sources, online tools) used in your submissions and project should be properly cited. Ideas from people other than your own (for the project—ideas from outside your group) should be acknowledged.
Generative AI Policy: GenAI tools such as ChatGPT may be used in this course for the purposes of pre-submission activities. However, students are responsible for submitting work that meets the assignment standards for quality and factual accuracy. Check Canvas page for more detailed instructions on this. If you have any questions or concerns about the policy, contact the instructor before submitting any assignments.
Late Policy: Late submissions of assignments will be subject to a 50% score penalty if you submit within 2 days after the deadline. A score of 0 will be given for any submissions after that. Late submissions will be accepted only for certain circumstances (e.g., medical) with proper evidence. Exceptions to this rule may be requested by providing appropriate documentation (e.g., medical) which will be considered at the discretion of the instructor.
Disability and Special Accommodation: Please let the instructor know of any needed accommodation in the first two weeks. Please also see Academic Accommodation for further assistance.
Academic Policy Statements, DEI, Resources Available to Students
Useful Resources: