An introductory survey for students in the sciences and engineering. Hardware
and software systems. Programming in C and other languages. Introduction to
algorithms and data structures. Applications to solving scientific problems.
Fundamentals of the theory of computation. Two lectures, one class, one
Frequently Asked Questions
These course materials are under development and subject to frequent
updates. The schedule and some other information is specific to the
spring 1998 offering of our general computer science course at
Princeton, but much of the material may be useful to others taking and
teaching similar courses.
Adam Finkelstein, CS Bldg. 406, 258-5756,
Office hours: Monday 11am-noon
- Course Secretary:
Tina Hill, CS Bldg. 410, 258-1746,
TTh 9:00-9:50, Dodds Auditorium. Lectures will extend into the
- Precepts: Mondays and Fridays;
all rooms and offices are in the CS Bldg, except for Green.
Note: Click on the precept number to see the class list.
- Lab TA coverage:
We have TAs covering the labs and/or college
clusters many days.
Two tests (~20% each), ~10
programming assignments (~30%), and one final (~30%).
- Required Texts:
- B. W. Kernighan and D. M. Ritchie, The C Programming
Language, 2nd edition, Prentice-Hall, 1988.
- R. Sedgewick, Algorithms, Third Edition, in C, Parts 1-4, Addison-Wesley, 1998.
- Recommended Texts:
- H. M. Deitel and P. J. Deitel, C How to Program, 2nd edition,
- H. Hahn,
Harley Hahn's Student Guide to UNIX, 2nd edition, McGraw-Hill,
- S. P. Harbison and G. L. Steele, Jr., C: A Reference Manual,
4th edition, Prentice-Hall, 1995. [Required text for
- Other Texts (on reserve at the Engineering Library in the
- Adobe Systems, PostScript Language Reference Manual, 2nd
edition, Addison-Wesley, 1990.
- D. R. Hanson, C
Interfaces and Implementations: Techniques for Creating Reusable Software,
Addison-Wesley, 1997. [Required text for COS 217.]
- A. Kelley and I. Pohl, C by Dissection: The Essentials of C
Programming, 3rd edition, Addison-Wesley, 1996.
- A. Kelley and I. Pohl, A Book on C: Programming in C, 3rd
edition, Benjamin/Cummings, 1995.
- E. S. Roberts, The Art and Science of C: An Introduction to Computer
Science, Addison-Wesley, 1995.
- S. Summit, C Programming FAQs, Addison-Wesley, 1996.
Please do not publish solutions to problem sets, exercises, and exams
in a way that could compromise their utility as pedagogical tools. At
Princeton, this is a violation of the basic rights, rules and
responsibilities of members of the university community.
All rights reserved. None of this material may
be reproduced, stored in a retrieval system, or transmitted,
in any form or by any means, electronic, mechanical, photocopying,
recording or otherwise without prior written permission.
Permission is granted to instructors who adopt
Algorithms in C to use this supplemental material in conjunction with
Acknowledgements and Credits
Copyright (c) 1998,
Short history of credits:
Most of the material in this course was developed by R. Sedgewick in
1992-94 and enhanced by other course instructors, including A. Appel,
S. Arora, B. Chazelle, M. Cohen, D. Hanson, A. LaPaugh, A. Rogers, and A. Yao.
Much of the current web-based material was created by D. Hanson in
1996 and further developed by R. Shillner in 1997. Lecture notes and
most assignments are being re-edited in the fall of 1997. Problems in
exams and problem sets are adapted from many sources. Specific credits
for significant contributions are cited locally.