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:


Course organization -

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:

In the second half the course,  core elements of the C++ language are presented along with additional elements of ray tracing and computational linear algebra.  Material covered includes:
 


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

Some student created images from recent course  offerings may be found here .

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.