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:
- C By Dissection (Third edition), Al Kelly and Ira Pohl, ISBN 0-8053-3154-9.
- 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
printf, for, #include.for loops. .h files
and makefiles.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. |