CPSC 101b Great Ideas in Computer Science (Spring 2018)

Description

A gentle introduction to some of the most important ideas in computer science: What the computer is; how it works; what it can do and what it cannot do, now and in the future. Topics include algorithms, elementary programming, hardware, language interpretation, software engineering, complexity, models of computation, and artificial intelligence. No previous programming experience required.

Instructor

Stanley C. Eisenstat, 208 Watson (432-1246)
Office hours: TBA and by appointment (see http://sce.cs.yale.edu )

Teaching Fellow

Peizhen Guo
Office hours: TBA

Undergraduate Learning Assistants

Maya Jeyendran
Office hours: TBA

Textbooks

Brian Kernighan, Understanding the Digital World: What You Need to Know About Computers, the Internet, Privacy, and Security, Princeton University Press, 2017

John MacCormick, Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers, Princeton University Press, 2012

Coursework

There will be 6-8 assignments requiring an average of 3-5 hours per week.

There will be in-class examinations on Wednesday, February 28th, and Wednesday, April 25th.

Homework will constitute ~40% of the final grade; the examinations will constitute the remainder.

Late Homework Policy

Homework that is not submitted by the time specified in the assignment will be assessed a penalty of 15% per late class day or part thereof, and MAY not be graded at all if more than ten days late.

Other Resources

Web Page: http://zoo.cs.yale.edu/classes/cs101
Newsgroup: See link on class web page

The Gilligan's Island Rule

When discussing an assignment with other students, you may write on a board or a piece of paper, but you may not retain any written or electronic record of the discussion. Moreover, you must engage in a full hour of mind-numbing activity (e.g., watching back-to-back episodes of Gilligan's Island) before you work on the assignment again. This ensures that you can reconstruct what you learned from the discussion, by yourself, using your own brain. The same rule applies to nonstudents and on-line sources.

Topics Covered/Emphasized (tentative)

Algorithms
Information representation
Data compression, error correction, and cryptography
Parallelism and concurrency
Computability and tractability
Elementary programming in JavaScript

CPSC-101b-01/16/18