16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

COS 126: General Computer Science, Princeton University<br />

Princeton, NJ<br />

Robert Sedgewick and Kevin Wayne<br />

rs@cs.princeton.edu, wayne@cs.princeton.edu<br />

http://www.cs.princeton.edu/courses/archive/spring12/cos226/info.php<br />

http://algs4.cs.princeton.edu<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Total Hours of Coverage<br />

Software Development Fundamentals (SDF) 11<br />

Algorithms and Complexity (AL) 11<br />

Architecture and Organization (AR) 5<br />

Programming Languages (PL) 4<br />

Computational Science (CN) 1<br />

Social Issues and Professional Practice (SP) 1<br />

Intelligent Systems (IS) 1<br />

Where does the course fit in your curriculum<br />

This course is an introduction to computer science, intended for all first-year students. It is intended to be<br />

analogous to commonly accepted introductory courses in mathematics, physics, biology, and chemistry. It is not<br />

just a “first course for CS majors” but also an introduction to the field that is taken by over 60% of all Princeton<br />

students.<br />

What is covered in the course<br />

We take an interdisciplinary approach to the traditional CS1 curriculum, where we teach students to program while<br />

highlighting the role of computing in other disciplines, then take them through fundamental precepts of the field of<br />

computer science. This approach emphasizes for students the essential idea that mathematics, science, engineering,<br />

and computing are intertwined in the modern world, while at the same time preparing students to use computers<br />

effectively for applications in computer science, physics, biology, chemistry, engineering, and other disciplines.<br />

Instructors teaching students who have successfully completed this course can expect that they have the<br />

knowledge and experience necessary to enable them to adapt to new computational environments and to<br />

effectively exploit computers in diverse applications. At the same time, students who choose to major in computer<br />

science get a broad background that prepares them for detailed studies in the field.<br />

Roughly, the first half of the course is about learning to program in a modern programming model, with<br />

applications. The second half of the course is a broad introduction to the field of computer science.<br />

• Introduction to programming in Java. Elementary data types, control flow, conditionals and loops, and<br />

arrays.<br />

• Input and output.<br />

• Functions and libraries.<br />

• Analysis of algorithms, with an emphasis on using the scientific method to validate hypotheses about<br />

algorithm performance.<br />

• Machine organization, instruction set architecture, machine language programming.<br />

• Data types, APIs, encapsulation.<br />

• Linked data structures, resizing arrays, and implementations of container types such as stacks and queues.<br />

- 443 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!