Computer Science 126
Fall 1998

R. Sedgewick

  • Announcements
  • General Information
  • Programming Assignments · Collaboration Policy
  • Reading and Exercises
  • Lectures
  • Lab Assistants
  • Help!
  • Course Description

    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 laboratory.

    Frequently Asked Questions


    These course materials are under development and subject to frequent updates. The schedule and some other information is specific to the fall 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.


    General Information

    Instructor:
    Robert Sedgewick, CS Bldg. 319, 258-4345, rs@cs.
    Office hours: Tues 2-3pm and Thurs 10-10:30am.

    Course Manager:
    Kevin Wayne, CS Bldg. 322, 258-4455, wayne@cs.

    Course Secretary:
    Tina Hill, CS Bldg. 410, 258-1746, tmhill@cs.

    Lectures:
    TTh 9:00-9:50, McDonnell A01. Lectures will extend into the reading period.

    Precepts: All rooms and offices are in the CS Bldg.
    Note: Click on the precept number to see the class list.
    Time Room Preceptor Office Hours Phone Email
    1 MF 10:00 102 Lisa Worthington 316 T 11-1 8-5386 lworthin@cs
    2 MF 11:00 102 Lena Petrovic 314 W 11-12 8-5135 lenap@cs
    3 MF 1:30 102 Daniel Wang 413 M 4:30-5:30 8-1797 danwang@cs
    4 MF 2:30 103/105 Kevin Wayne 322 T 4-5 8-4455 wayne@cs
    5 M 7, F 2:30 102 Chad Mynhier 214 T 1:30-2:30 8-1793 cmynhier@cs
    6 MF 1:30 103/105 Kevin Wayne 322 T 3-4 8-4455 wayne@cs


    Lab TA coverage:
    We have undergraduate TAs who are available to answer general questions in the labs and/or college clusters many days.
    See the schedule.

    Grading:
    Two tests (~15% each), 8 programming assignments (~30%) precept participation (10%), 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, Prentice-Hall, 1994.
    H. Hahn, Harley Hahn's Student Guide to UNIX, 2nd edition, McGraw-Hill, 1996.
    S. P. Harbison and G. L. Steele, Jr., C: A Reference Manual, 4th edition, Prentice-Hall, 1995. [Required text for COS 217.]


    Other Texts (on reserve at the Engineering Library in the EQuad):
    Adobe Systems, PostScript Language Reference Manual, 2nd edition, Addison-Wesley, 1990.
    K. Arnold and J. Gosling, The Java Programming Language, 2nd edition, Addison-Wesley, 1997.
    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.
    Last semester's class


    Important note: 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 their course.

    Acknowledgements and Credits
    Copyright (c) 1998, Robert Sedgewick

    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.