CS 3, Spring 2009
Computational Thinking, or Ways to Think Like a Computer Scientist

Course description

Why?
No profession unleashes the spirit of innovation like computer science and engineering. From research to real-world applications, computer scientists constantly discover how to improve our lives by creating bold new solutions that connect science to life in unexpected, forward-thinking ways. Few professions turn so many ideas into so many realities — think Google, Facebook, spam-filtering, iPhone, Roomba, Captchas. Come join us as we explore how computer scientists are having a direct and positive effect on people’s everyday lives. [Adapted from Changing the Conversation]
What?
"Computer science is the study of computation — what can be computed and how to compute it.
Computational thinking confronts the riddle of machine intelligence: What can humans do better than computers? and What can computers do better than humans? Most fundamentally it addresses the question: What is computable?"
— Jeannette Wing
How?
In CS 3 you will learn how to formulate solutions to computational problems that can be automated using computers. It is:
  • about conceptualizing and identifying suitable representations for solving computational problems, not just programming.
  • a way humans think, not how computers think.
  • about turning ideas into reality.
  • for everyone, not just computer scientists.

Administrative info

Instructor
Tanzeem Choudhury | 210 Sudikoff | office hours: MWF 3-4
Teaching assistant
Daniel Peebles | 241 Sudikoff | office hours by arrangement
Lectures
Class MWF 1:45-2:50 | x-hour (occasional) Th 1-1:50
113 Silsby
Lab
Sudikoff 005 (Mac Lab). TA available in lab: Sun 7-9, Tue 6-9, Thu 7-10.
Also available for use by CS 3 students when not reserved for other classes.
(Note that other classes may reserve the room.)
003 also has a number of Macs with MATLAB installed, and can be used when we run out of room in 005.
To get your ID card enabled, complete and return the Sudikoff access form.
Textbook
None required.

Coursework and grading

Homeworks (50% total, 10% each)
Help you put the basic techniques into practice in creating new works. Week-long, due on Fridays; done individually.
Final project (30% total)
Allows you to synthesize the material to do something bigger of your own design. Done individually or with a partner.
Quiz (20%)
Give a quick check-up on your understanding of the material. Middle of term; done individually.

Assignments are to be turned in at the beginning of class on the due date. In general, late submissions will not be accepted unless you can convince me your excuse is legitimate and get permission from me before the due date.

Grades will be assessed according to correctness and quality of the written solutions and the code you generate. For exceptionally creative and interesting work, it is possible to receive extra credit points. Extra credit is always optional, and not doing any extra credit work will never reduce your final grade, even if everyone else in the class does a lot of extra credit.

Honor code

Dartmouth's honor code applies to this course, and academic misconduct policies will be strictly enforced. If you have questions, ask!

You may discuss the assignments with other current CS3 students, but your submitted work must be entirely your own. That is, your code and any other solutions you submit must be created, written/typed, and documented by you alone. You may not copy anything directly from another student's work. For example, memorizing or copying onto paper a portion of someone else's solution would violate the honor code, even if you eventually turn in a different answer. Similarly, e-mailing a portion of your code to another student, or posting it on-line for them to see would violate the honor code. We do encourage discussion of assignments between students, subject to these rules.

You must reference all sources of help and collaboration. If you make use of any code taken from outside references — for instance, from an off-site web page or a textbook you must clearly attribute the source of the code with clear comments in the code that you submit.

Quizzes are done individually — you are not allowed to discuss or share information with anyone. If you need clarification, you can ask questions to the course staff.

Disabilities

Students with disabilities enrolled in this course and who may need disability-related classroom accommodations are encouraged to make an appointment to see the instructor before the end of the second week of the term. All discussions will remain confidential, although the Student Accessibility Services office may be consulted to discuss appropriate implementation of any accommodation requested.

Acknowledgements

Some of the materials and ideas on how to organize the course has been based on a course taught by Devika Subramanian at Rice University. We may use some of her course material in weeks 3-6, in which case proper references will be included.