Students
must work on the assignments
individually. No geometry or graphics libraries may be used in the
homework assignments.
You may use math libraries to represent and manipulate vectors and
matrices, command line option processing libraries, and
libraries to write PBM/PPM and Postscript files.
But they must be installed on tux!
Assignments that do not meet the program specifications EXACTLY will
not be graded!
Any assignments that are returned to students because they do not meet the
assignment specifications will be penalized with late points.
Assignment results will be assessed visually. I am not looking for any specific
file output.
1 point per day (max of 5 points) will be deducted
from late assignments.
The deadline for turning in all assignments is December 4.
You will be given a grade of 0 if an assignment is not
turned in by this date.
The programming assignments should be submitted on the class Bb Learn
page before 11:59 PM on the due date.
Academic Honesty
You must be the sole original author of all assignments and examination
solutions in their entirety, unless the instructor explicitly instructs
you otherwise in written directions on an assignment or exam. Collaborative work is a violation of academic
honesty in this course. You are not to examine or use
code belonging to someone else, nor may you let anyone else examine
or copy your code.
Students found in violation of the Academic Honesty policy
will receive an 'F' in the class.
In the case of plagiarism, all parties involved will be equally penalized.
The description of the department's Academic
Integrity Policy can be found here. If a student violates this policy,
an Alleged Academic Misconduct Report will be filed with the college.
It is your responsibility to avoid violating the university's policy.
If you are unclear as to what the policy means in a particular situation,
ask the instructor for clarification before you hand anything in.
See the examples below for clarification of this policy.
Examples
The following are acceptable:
- Using code provided in lecture: include comments that cite the source.
- Using code provided in the class textbook: include comments that
cite the source.
- Code developed jointly with instructor or teaching assistants assigned
to this course.
- Discussing algorithms or possible approaches to writing your program, WITHOUT discussing
particulars of the code.
- Discussing how to resolve errors, WITHOUT discussing particulars
of the code.
These are
NOT acceptable:
- You borrow a printed or electronic copy of a friend's assignment,
and use it for "inspiration".
- You give a printed or electronic copy of your assignment to somebody
else.
- You "find" a copy of somebody's program in the
trash, on a lab machine, on their hard drive, on the web, etc., and use it for "inspiration".
- You pay a "tutor" who writes the assignment for you.
- You download code from the Web, and turn in some or all of it
as your own assignment.
- You and a friend together write one assignment, then create separate
modifications to be handed in.
- You and a friend write certain portions of the assignment individually,
but collaborate on other portions of the assignment.
- You work in a group that works out the detailed structure of the assignment and you turn it into a specific program.
The College of Computing and Informatics has a
"2 Strikes You're Out" policy.
If you have two cheating infractions, you will be expelled from
your CCI major.
Your source code for all programming assignments will be
run through a plagiarism detection system. This program uses compiler
techniques, which are invariant of syntax and style. If you are
sharing/borrowing code with other classmates (from this or previous
years), you will get caught.
Examinations
There will be a final exam on the material from
class that is
not covered by the regular assignments.
The final exam will be held on Monday, December 5, 2022, 1PM to 3PM
in 3675 Market Street, Room 1054-1055.
Lectures Are Recorded
Recorded lectures can be viewed via the class Bb Learn page by
following the "Echo360 Class Recordings" link.
The class Discord channel is CS430-FA22.
Calendar
Week 1 (September 19 - 23)
- Reading Assignment
- Hughes et al.: Chapters 1 & 3; Sections 7.1→7.7, 14.1→14.3, 17.1→17.3; Chapter 10
- Foley et al.: Chapter 1; Section 3.9; Sections 5.1→5.4
- Farin and Hansford: Chapter 1
- September 19 - Lecture :
Introduction 6 per page
- September 21 -
Lecture:
Line Clipping / 2D-Transformations 6 per page
Week 2 (September 26 - September 30)
- Reading Assignment
- Hughes et al.: Chapter 11
- Foley et al.: Sections 5.5→5.9, 3.1, 3.2
- Farin and Hansford: Sections 2.1, 2.2
- September 26 -
Lecture:
3D-Transformations 6 per page
- September 28 -
Lecture:
Lines 6 per page
Week 3 (October 3 - 7)
Week 4 (October 10 - 14)
- Reading Assignment
- October 10 - No class. Drexel is closed for the holiday.
- October 12 - Lectures:
Introduction To Curves 6 per page
Week 5 (October 17 - 21)
- October 16 - Assignment 2 Due
- Reading Assignment
- Hughes et al.: Sections 22.4→22.7
- Foley et al.: Sections 9.2.4→9.2.8
- Farin and Hansford: Chapters 4 & 5
- October 17 - Lecture: Drawing Bezier Curves 6 per page
- October 19 - Lecture:
B-splines and NURBS 6 per page
NO LIVE LECTURE ON OCTOBER 19.
VIEW RECORDED LECTURE HERE.
Week 6 (October 24 - October 28)
- Reading Assignment
- Foley et al.: Sections 6.1→6.4
- Farin and Hansford: Chapters 10 & 11; Sections 13.1→13.6
- October 24 - Lecture: Drawing NURBS 6 per page
- October 26 - Lecture: Introduction to
3D Viewing 6 per page
Week 7 (October 31 - November 4)
- October 30 - Assignment 3 Due
- Reading Assignment
- Hughes et al.: Sections 7.9, 7.10, 8.3, 8.4, 14.5, 23.1, 23.2; Chapters 13 & 25
- Foley et al.: Sections 6.5→6.7; Sections 9.1, 9.3, 9.4;
- Farin and Hansford: Chapters 6 & 7; Sections 2.3→2.6, 12.1→12.4, 13.7, 13.8
- October 31 - Lecture:
Math of 3D Viewing 6 per page
- November 2 - Lecture:
Surfaces 6 per page
Week 8 (November 7 - 11)
- Reading Assignment
- Hughes et al.: Sections 14.7, 22.6, 23.3→23.5, 24.1→24.5
- Foley et al.: Chapter 10
- Farin and Hansford: Sections 12.5, 12.6
- November 7 - Lecture:
Subdivision Surfaces and Solid Modeling
- November 9 - Lecture: Solid Models
6 per page
Week 9 (November 14 - 18)
Week 10 (November 21 - 25)
- Reading Assignment
- Hughes et al.: Chapter 18
- Foley et al.: Section 3.7, 3.14
- November 21 - Lecture:
Thick Primitives 6 per page
- November 23 - No class. Drexel is closed for the holiday.
Week 11 (November 28 - December 2)
- Reading Assignment
- Hughes et al.: Sections 24.2, 24.10
- Foley et al.: Section 9.5
- D.E. Breen and R.T. Whitaker,
"A Level-Set Approach for the Metamorphosis of Solid Models,"
IEEE Transactions on Visualization and Computer Graphics,
Vol. 7, No. 2, pp. 173-192, April-June 2001.
- O. Nilsson, D. Breen and K. Museth,
"Surface Reconstruction Via Contour Metamorphosis:
An Eulerian Approach With Lagrangian Particle Tracking,"
Proceedings of IEEE Visualization 2005 Conference,
October 2005, pp. 407-414.
- K. Museth, D.E. Breen, R.T. Whitaker and A.H. Barr,
"Level Set Surface Editing Operators,"
ACM Transactions on Graphics (Proc. SIGGRAPH),
Vol. 21, No. 3, July 2002, pp. 330-338.
- M. Eyiyurekli, C. Grimm and D. Breen,
"Editing Level-Set Models with Sketched Curves,"
Proceedings of Eurographics/ACM Symposium on Sketch-Based Interfaces and Modeling,
August 2009, pp. 45-52.
- M. Eyiyurekli and D. Breen,
"Interactive Free-Form Level-Set Surface-Editing Operators,''
Computers & Graphics, Vol. 34, No. 5,
October 2010, pp. 621-638.
- M. Eyiyurekli and D. Breen,
"Data Structures for Interactive High Resolution Level-Set
Surface Editing,"
Proceedings of Graphics Interface,
May 2011, pp. 95-102.
- M. Eyiyurekli and D. Breen,
"Detail-Preserving Level Set Surface Editing and Geometric Texture Transfer,"
Graphical Models, Vol. 93,
September 2017, pp. 39-52.
- November 28 - Lecture: Fractals 6 per page
- November 30 - Lecture: Level Set Models
6 per page
- December 2 - Assignment 5 Due
- December 2 - Extra Credit Assignment Due