Syllabus for CSC 7000


CSC 7000-001 Algorithms & Programming
Thursdays from 6:15pm to 8:45pm in Mendel 115
Dr. David Matuszek, Mendel 162C, (610) 519-5654


Purpose

Computer science is, first and foremost, a practical field. While it has theoretical aspects, it is firmly grounded in the need to enable a computer do what you want it to do--that is, programming.

Programming is a skill, and requires practice. It also requires some knowledge of common techniques. The purpose of this course is to provide you with sufficient programming practice, and sufficient knowledge, so that you will not be completely lost in your subsequent courses at Villanova.

Because this is a condensed course (two semesters in one), and because practice is crucial, this course will be a lot of work.


Textbook

There are two textbooks for this course:

  1. C By Dissection (Third edition), Al Kelly and Ira Pohl, ISBN 0-8053-3154-9.
  2. Programming Abstractions in C: A Second Course in Computer Science, Eric S. Roberts, ISBN 0-201-54541-1.

We will use the first textbook for the first half of the course, and the second textbook for the second half of the course.

Grading

There will be approximately ten programming assignments, one midterm exam, and one final exam. The exams will be difficult, but grades will be curved. Grades will be weighted 55% programs, 20% midterm, 25% final.

Important Links

In addition, Supriya Samanta found <http://cslibrary.stanford.edu/> with lots of good materials on C, mostly in .pdf (Adobe Acrobat) format. The materials include Essential C, which is similar in intent to my Concise Introduction, but much more extensive, Linked List Problems and their solutions in C, and a nice writeup of Unix Programming Tools. Possibly the best is the 31-page Pointers and Memory paper--if you have time, this is highly recommended reading.

Special note: If you are running UNIX, it is a simple matter to provide arguments to main() by just typing them on the command line. If you are using a visual development envirnoment of some sort, you need to type arguments into a dialog box somewhere.

Some students are having trouble finding the dialog box. If you know how to do this, please tell me (1) what development system you are using, and (2) detailed instructions on where to enter the arguments. Extra credit points will be given for helping out. Thanks.