en47/comp9 - exploring computer science - spring 2011

Time: TR 12:00-1:15 PM (F+ block)
Location: Halligan 111a (lecture) and 116 (lab)

Instructor: Noah Daniels (ndanielscs.tufts.edu)
TAs: Sarah Nolet (sarah.nolettufts.edu)
Joel Greenberg (joel.greenbergtufts.edu)
To mail the course staff: ta9cs.tufts.edu
Mailing list: comp9cs.tufts.edu
Syllabus: Syllabus as pdf
 Ruby core API documentation
 Ruby Standard Library API documentation

Office hours: Noah: Monday & Wednesday, 4-5pm Halligan Extension
Sarah: Monday & Wednesday, 12-1pm Halligan 116 or 118
Joel: Tuesday 1:30-3:30 & Thursday 1:30-2:30pm Halligan 116 or 118
Sarah & Joel, recitation: Friday, 12-1pm Halligan 116 or 118

Everyday life is becoming more and more dependent upon computers, which will create many opportunities and challenges for students during and after their college careers. This half-credit class offers you an opportunity to discover how computers work and how they can be used to solve general problems. You will be introduced to basic computer problem solving and programming techniques through lectures and labs using the Ruby programming language. You will also explore a range of topics in modern computer science research, such as computational biology, machine learning, graphics, and computational geometry. No prior computer experience is necessary, only a desire to learn. For students exploring their career options, this class is applicable not only to computer science, but to cognitive science, economics, medicine, finance, and a host of other professions that depend highly on computers.

The goals of this course are: to have students gain an appreciation of the areas that make up modern computer science; to understand that computers have limitations; to have a working command of the Ruby programming language such that they could approach a repetitive task programmatically rather than tediously; to develop problem-solving skills and computational thinking.

This course is cross-listed as EN47-CS2 and COMP9-01 in the Spring 2011 term.

Please see the bottom of this page for course policies.


follow comp9 announcements on Twitter


denotes a meeting in the computer lab, Halligan 116. The lecture and lab schedule is subject to change. Please keep checking back during the semester.

  date topics readings assignments
  20 Jan Introduction     Assignment 0 out
  25 Jan Variables, Types, and Programs Ch. 2-4 (skim 1)    
27 Jan Meeting Kate   Assignment 0 due Lab 1 out
  1 Feb A Method to the Madness Ch. 5-6    
3 Feb Blackjack!   Lab 1 due Lab 2 out
  8 Feb Containers: Arrays, Hashes, and Enumeration Ch. 7-8, 12.3    
10 Feb Blackjack, revisited   Lab 2 due Lab 3 out
  15 Feb Writing your own methods, and Functional Programming Ch. 9    
17 Feb Blackjack, revisited (with methods)      
  22 Feb Introduction to Machine Learning Ch. 10; Harel, Ch. 1    
24 Feb No class!      
  1 Mar Computational Biology Pine, Ch. 11; Harel, Ch. 1    
3 Mar Simian Similarity   Lab 4 out  
  8 Mar Classes and Objects Pine, Ch. 12-13; Harel, Ch. 2    
10 Mar Tamagotchi! Harel, Ch. 3 Lab 4 due Lab 5 out
  15 Mar More OOP, Simulation, Computational Economics Harel, Ch. 4    
17 Mar The Game of Life (Agent Simulation)   Lab 5 due Lab 6 out
  22 Mar Spring Break - No class!      
  24 Mar Spring Break - No class!      
  29 Mar Final Project Introduction      
31 Mar Project: Design   Lab 6 due Design document out
  5 Apr The Limits of Computers, and the Future of Computing: Biocomputing and Quantum Computing Harel, Ch. 5    
7 Apr Project: Algorithm design   Design document due  
12 Apr Project: Coding, testing, & debugging      
14 Apr Project: Coding, testing, & debugging      
19 Apr Project: Coding, testing, & debugging      
21 Apr Project: preparing for the presentation      
  26 Apr Project Presentations      
  28 Apr Project Presentations      

course policies


Unless otherwise noted, readings listed on the schedule are from: Chris Pine, Learn to Program, 2nd edition, The Pragmatic Bookshelf, 2009.

This book is available through the Tufts bookstore, the publisher (as both a paper edition and an e-book), and online retailers. It can also be found through Getchabooks!.

As recommended reading, you may wish to get Computers Ltd.: what they really can't do', Oxford University Press, 2000.

This book is available through the Tufts bookstore, the publisher (as both a paper edition and an e-book), and online retailers. It can also be found through Getchabooks!. This book is recommended, not required, though I will suggest reading from it through the course of the semester.



All lab assignments will be turned in electronically and are expected to be completed by their due dates. Late assignments will be penalized at 10% per day. Any assignment turned in more than one week after its due date will receive a zero grade. This course follows the Tufts policies on academic integrity.


Tufts is committed to providing suport services and reasonable accommodations to all students with documented disabilities. To request an accommodation, you must register with the Disability Services Office at the beginning of the semester. To do so, call the Student Services Desk at (617) 627-2000 to arrange an apointment with Sandra Baer, Program Director of Disability Services.

Updated November 15, 2010