Computer Science 126
Spring 1998

A. Finkelstein

  • Announcements
  • General Information
  • Programming Assignments · Collaboration Policy
  • Reading and Exercises
  • Lectures
  • 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 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.


    General Information

    Instructor:
    Adam Finkelstein, CS Bldg. 406, 258-5756, af@cs.
    Office hours: Monday 11am-noon

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

    Lectures:
    TTh 9:00-9:50, Dodds Auditorium. Lectures will extend into the reading period.

    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.
    Time Room Preceptor Office Hour Phone Email
    1 MF 10:00 103 Georg Essl 414 Th 2:30 8-5388 gessl@cs
    2 MF 11:00 103 Lisa Worthington 316 M 3:30 8-5386 lworthin@cs
    3.0 MF 1:30 103 Matthias Blume 207 W 3:00 8-1742 blume@cs
    3.1 MF 1:30 Green 2N5 Jiannan Zheng 215 F 2:30 8-1794 zjn@cs
    3.2 MF 1:30 M:301 F:302 Brian Vinter 305 Tu 7pm 8-5330 vinter@cs
    4 MF 2:30 103 Matthias Blume 207 W 3:00 8-1742 blume@cs
    5 M 7:00p 103 Prasanna 207 M 8pm 8-1742 prasanna@cs
    and F 3:30 103


    Lab TA coverage:
    We have TAs covering the labs and/or college clusters many days.
    See the schedule.

    Grading:
    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, 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.
    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.