Time: | TR 12:00-1:15 PM (F+ block) |
Location: | Halligan 111a (lecture) and 116 (lab) |
Instructor: | Noah Daniels
(ndaniels![]() |
TAs: |
Sarah Nolet
(sarah.nolet![]() |
Joel Greenberg
(joel.greenberg![]() | |
To mail the course staff: | ta9![]() |
Mailing list: | comp9![]() |
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.
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 |
![]() 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. |
Aproximately:
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