CPSC 102 (CS-2)
Course overview and objectives -
This
is the second course offered to incoming computing majors at Clemson
University. Students construct a ray
tracing system in a semester long project. It assumes CPSC 101
as a pre-requisite. Instruction is delivered in three
lecture hours and one two-hour
closed lab per week. Course objectives are somewhat wide
ranging.
At the conclusion of the course the successful student understand and be able to understand and be able to employ the following concepts in the construction of a non-trivial program consisting of tens of source modules and functions.
The student should
also understand the follow elements of object oriented design and
object oriented languages
Finally, the student
should also have improved skills in the domain of computational thinking as
demonstrated by
an understanding and application of:
In the first half of the
course, students construct a simple ray tracer using object
oriented design but written in the C language. Advanced elements
of the C language are used as follows to motivate object orientation as
follows:
Course notes -
Lecture
notes for the first half of the course, covering advanced C
programming, introductory linear algebra and basic ray tracing
principles, may be found here. Notes for the second half
of the course in which the C++ language and intermediate ray tracing
are introduced are found here.
Closed lab materials and assignments -
The lab assignments are tightly coupled to the project and commonly used to illustrate standalone development and testing of system components. The assignments used in the last offering of the course may be found here.
Other assignments -
The assignments used in the last offering of the course may be found here. In this collection, files whose names begin sp are short programs typically involving component development. Those beginning with mp are the two major project deliverables. .
An
important aspect of the Τέχνη approach is the use of open
ended assignments.
The final ray tracer consists of a collection of optional components.
These components encompass a significant range of difficulty and are
presented in class in order of increasing difficulty. The average
student who seeks to earn a C in the course is presented a path to
doing that is not unduly challenging. However, the top students
competing to earn A's are challenged to the fullest.
Required elements - worth
60 points
Optional features - worth
up to 110 total points @ 5 points each
Assessment -
Assessment of student work -
Components of student work are weighted according to the following grading regime:
Final Exam 15% Mid-Term exam 15% Major Programs 25% Short Programs 15% Daily quizzes 20% Lab Grade 10%
Daily quizzes -
A short objective quiz is given at the end of every class. This quiz covers material from the previous class. Student feedback has been very positive over many years regarding the beneficial nature of this practice. Quizzes may be found here.
Assessing the effectiveness of the Τέχνη approach -
In
the spring semester of 2009, a common set of attitudinal surveys were
given comparing attitudes of the students in the Τέχνη class
at Clemson University with students in an objects-early Java based CS-2
classes at
Western Carolina University and at UNC-Wilmington.