Syllabus for Computer Science 201


[Home]

Introduction to Computer Science, Fall 2024


MWF 10:30-11:20am. Davies Auditorium.

Stephen Slade
113 AKW, 432-1246 stephen.slade@yale.edu
Office hours via zoom. Meeting ID 459 434 2854. Wednesday 4-6pm.

Teaching Assistants: Please see Instructor and TA contact information.

Course Description

Introduction to the concepts, techniques, and applications of computer science. Topics include computer systems (the design of computers and their languages); theoretical foundations of computing (computability, complexity, algorithm design); and artificial intelligence (the organization of knowledge and its representation for efficient search). Examples stress the importance of different problem-solving methods.

Textbook

The Racket Guide. A description of Racket for people with previous programming experience.

Optional: How To Design Programs (online copy). (buy from Amazon) An introduction to programming using Racket written by the inventors of racket. It assumes no programming background.

Other Resources

Web page
The course web page is at http://zoo.cs.yale.edu/classes/cs201.

Ed Discussions.
Students will be able to access Ed Discussions through Canvas, which permits an interactive exchange of questions and information. Note: students are not allowed to post code to Ed Discussions.

Canvas
Course canvas site: Canvas
Gradescope.
We will use gradescope to submit homework assignments.

Zoo accounts
The Zoo is a collection of computers located on the 3rd floor of AKW at the front of the building, as well at 17 Hillhouse. You will need a *course account* use the zoo. In the past, problem sets were submitted using the zoo. We now use gradescope (see above), which permits web-based submission. We encourage you to use the zoo to learn UNIX. For example, there is an online UNIX tutorial written by a former ULA which helps you master UNIX.

Course directory
The course directory, /c/cs201 is accessible from your Zoo course account. It contains copies of handouts.

Course Requirements

The course requirements consist of class attendance, (more-or-less) weekly programming assignments in Racket and occasional written homework, and two MIDTERMS and a FINAL EXAM. Plan on spending between 6-8 hours per week on the course outside of class. The programming assignments are an integral part of the course.

Please try not to leave the homework to the last minute. You will be more efficient, learn more, have more chance to get help, and generally be calmer and happier if you do the associated reading first and start the programming or other problems early.

Grading

The final grade in the course will be based on class participation (as measured by in class quizzes), your performance on the programming assignments and other homework, and the exams. The weighting of these components will be approximately 33% on class participation and homework and 67% on exams.

Late Policy

Late work without a Dean's extension will be assessed a penalty of 5 points per day, based on the day and time recorded by the Zoo electronic submit program. At the end of term, up to 50 points will be deducted from the total lateness penalties your homework has accrued. However, according to Yale College regulations, *no* homework can be accepted after the end of Reading Week without a Temporary Incomplete (TI) authorized by your dean.

If you have a Dean's extension or a TI, making up missed work may involve alternative assignments, at the discretion of the instructor; please check with the instructor in this case.

Errata Policy

In an act of impressive humility, I will award errata points to students who find errors in the handouts or class notes. There is an errata category in Ed Discussions for this purpose. One point per error. The point is awarded to the first student who notifies me (in writing) of the error. Errata points may be redeemed for late days.

Policy on Working Together

Unless otherwise specified, the homework assignments are your individual responsibility. Plagiarism is a violation of University rules and will not be tolerated. You must neither copy work from others (at Yale or elsewhere) nor allow your own work to be copied. You are definitely on the wrong side of the boundary if you give or receive a printed or electronic copy of your or anyone else's work for the course from this term or previous terms.

You are encouraged to ask others for help with the computers and Unix, with questions about Scheme, general questions about the concepts and material of the course, but if you need more extensive help with a program or other assignment, please ask a TA or the instructor for assistance. Working in groups to solve homework problems is not permitted in this course. Please talk to the instructor if you have any questions about this policy.

Usability, Disability and Design

I am committed to creating a course that is inclusive in its design. If you encounter barriers, please let me know immediately so that we can determine if there is a design adjustment that can be made or if an accommodation might be needed to overcome the limitations of the design. I am always happy to consider creative solutions as long as they do not compromise the intent of the assessment or learning activity. You are also welcome to contact Student Accessibility Services to begin this conversation or to establish accommodations for this or other courses. I welcome feedback that will assist me in improving the usability and experience for all students.

This semester, we have a dedicated accomodation assistant for Computer Science, Amma. Her contact email is: . Students who would like to use approved testing accommodations in the course should send their letter to Amma (with a copy to stephen.slade@yale.edu) and coordinate with her at that email address. Use the course identifier CPSC 201 in all communication to Amma since she will be working with other CPSC courses.

During my years at Yale, I have had students who were either blind or deaf. They were generally among the best in the class. I want to make you succeed.

Course Outline

Week Date Topic
1 Aug 28, 30 Introduction. Racket.
2 Sep 4, 6 Racket
3 Sep 9, 11, 13 Racket
4 Sep 16, 18, 20 Racket. Computability.
5 Sep 23, 25, 27 Computability.
6 Sep 30, Oct 2, 4 Boolean functions and Expressions.
7 Oct 7, 9, 11 Review for midterm I. Gates and Circuits.
Tuesday Oct 8, 7pm Midterm Exam - Davies / SAS B031.
8 Oct 14 Computer Architecture.
Oct 16, 18 No class. Yale Fall Break
9 Oct 21, 23, 25 Strings and languages.
10 Oct 28, 30, Nov 1 Strings and languages.
11 Nov 4, 6, 8 Review for midterm II. Compilers.
Tuesday Nov 5, 7pm Midterm exam - Davies / SAS B031.
12 Nov 11, 13, 15 Running time of programs.
Nov 18, 20, 22 Running time of programs.
13 Nov 25, 27, 29 No class. Thanksgiving Break
14 Dec 2, 4, 6 Dynamic programming. Review for final exam
Dec 14, 7pm, RTBA Final Exam

[Home]