| Instructor: | Jerod Weinman |
| Office: | Noyce 3825 |
| Phone: | x9812 |
| E-mail: | [weinman] |
| Mentor: | Ajuna Kyaruzi |
| E-mail: | [kyaruzia17] |
A lab-based introduction to basic ideas of computer science, including recursion, abstraction, state, information-hiding, and the design and analysis of algorithms. Includes introductory programming in a high-level, functional language. Prerequisites: None.This means that you'll be introduced to the basics of computation, learning how to adequately describe and decompose problems of a computational nature so that you can effectively tell a computer the steps it should take to solve the problem. We will study some beginning concepts that make this process possible, easier to undertake, and often elegant. Our major objectives for this course include:
Dybvig, Kent R., The Scheme Programming Language (Third Edition), MIT Press, 2003.
http://www.scheme.com/tspl3
An effective reference and guide to learning the Scheme language.
Felleisen, Matthias, Findler, Robert Bruce, Flatt, Matthew and Krishnamurthi, Shriram, How to Design Programs, MIT Press 2001.
http://www.htdp.org
A wonderful guide, particularly for later topics in the course like higher-order programming, re-factoring, and recursion.
Kelsey, Richard, Clinger, William, and Rees, Jonathan, editors, Revised5 Report on the Algorithmic Language Scheme. 1998.
http://www.cs.grinnell.edu/~weinman/courses/CSC151/doc/r5rs.pdf
The complete, concise definition of the Scheme programming language version we are using.
| Week | Topic | Week | Topic | |
| 1 | Introduction | 8 | Local procedures, strings, turtles | |
| 2 | Procedures, documentation, and testing | 9 | Geometric art, trees | |
| 3 | Design and color | 10 | Project design, vectors, | |
| 4 | Image and list transforms | 11 | Analysis, higher-order procedures | |
| 5 | Booleans and conditionals | 12 | Searching and sorting | |
| 6 | Lists and recursion | 13 | Objects, project assessment | |
| 7 | Recursion | 14 | Files and review |
| Lab Held | Writeup Due |
| Monday | Wednesday |
| Tuesday | Friday |
| Wednesday | Monday |
| Friday | Tuesday |
| PLUS | A+ | Exhibits exceptional insight, creativity, and/or craftsmanship |
| CHECK | A- | Meets the requirements of the assignment. |
| MINUS | C | Does not meet the requirements of the assignment. |
| Project Assigned | Tuesday 11 November |
| Detailed Proposal | Monday 17 November |
| Complete Submission | Tuesday 25 November |
| Exam 1 | Week 4 | Tuesday 23 September |
| Exam 2 | Week 7 | Tuesday 14 October |
| Exam 3 | Week 10 | Tuesday 11 November |
| Exam 4 | Week 14 | Tuesday 9 December |
| Final Exam | - | Wednesday 17 December, 2 PM |
| Participation | 5% |
| Homework Average | 15% |
| Project | 10% |
| Quiz Average | 10% |
| Exam Average | 40% |
| Best of average homework, quizzes, and exams | 10% |
| Lab Writeup Average | 10% |
| Average % | Receives | Grade Points | Definition |
| 93-100 | A | 4.00 | Excellent |
| 88-92 | A- | 3.67 | Excellent |
| 85-87 | B+ | 3.33 | Good |
| 81-84 | B | 3.00 | Good |
| 78-80 | B- | 2.67 | Good |
| 74-77 | C+ | 2.33 | Satisfactory |
| 68-73 | C | 2.00 | Satisfactory |
| 55-67 | D | 1.00 | Passing |
| 0-54 | F | 0.00 | Failing |
"[Person X] helped me to do [thing Y] by [explaining Z]."