Software and Hardware
At the end of the course, you will be expected to be able to:
- Write and thoroughly test a medium-sized program (400 lines minimum)
- Implement and analyze the following data structures:
- Linked lists
- Priority Queues
- Hash tables
- Implement and analyze different sorting algorithms
- State and apply a mathematical definition of algorithmic efficiency
- Articulate the difference between static and dynamic type systems
- Analyze the running time of an algorithm or data structure operation
using "big-O" notation
- Understand and apply common complexity categories to select the right
data structure and algorithm for a given task
- Use classes to implement abstract data types
- Use interfaces and inheritance to implement subtype polymorphism
- Use generics to implement parametric polymorphism
- Use and understand recursion as an implementation technique
- Employ automated unit testing to verify and document software functionality
After lab assignments are returned, you are welcome to revise and resubmit your work. Each submitted revision will be graded anew, the original and revised grades will be averaged to produce a new grade for that assignment. Revisions may be submitted anytime until the start of the final exam period.
No late work will be accepted. Any work not submitted on time is a zero. However, you may submit a solution after the deadline to qualify under the revision policy. In effect, this means that late work can earn up to half credit.
Participation and Absences
You are expected to attend class and participate in discussions every day,
answering questions, asking questions,
presenting material, etc.
You may miss three class days with no penalty. These can be for sports travel, school sanctioned
activities, sick, etc. You are expected to make up any work you miss through these absences.
Every subsequent absence will result in a 4% penalty on your final grade.
It is the policy of Hendrix College to accommodate students with disabilities, pursuant
to federal and state law. Students should contact Julie Brown in the Office of Academic
Success (505.2954; firstname.lastname@example.org) to begin the accommodation process. Any student
seeking accommodation in relation to a recognized disability should inform the instructor
at the beginning of the course.
Please refer to the
CSCI Academic Integrity Policy
Much of your experience with programming in this course will be through weekly labs,
which will comprise 25% of your final grade. Each lab will be assigned in lab with
time allotted to work through the materials, and will be due by Thursday of the
next week at 1pm, before the next lab starts.
All labs are weighted equally within the lab portion
of your final grade.
Lab attendance is required. Labs take place in
the Snoddy Computer Lab, in the Bailey Library.
As you go through the exterior door of the library,
turn immediately to your left and enter the Snoddy
Academic Resource Center, through this door:
Continue through the door at the far end of the hall
(just visible in the picture above) into the first
computer lab, and then enter the second lab at the
You will be handing in most of your lab work
Instructions to do so will be included in each lab.
On these labs, you may work with a partner on the lab assignments if you choose. Their name must be
listed on any code you hand in as joint work.
Five or six projects will be
assigned over the course of the semester. Each project is an opportunity to
demonstrate mastery of one or more computing topics. Each student will
present their final project to the class during the final exam period.
Each project will be completed individually.
There will be two in-class exams, the first worth 10% of your final grade, and the
second worth 15%. They
will consist of short answer along with writing and debugging code. They are
tentatively scheduled for:
- Exam 1: February 27
- Exam 2: April 26
Your final grade for this course will be based on the Labs, Projects, Quizzes, Exams and
Participation described above.
© Mark Goadrich, Hendrix College