Syllabus for Computer Science 200


[Home]

Introduction to Information Systems, Fall 2024


MW 2:30 - 3:45pm, ML 211. Also recorded to Canvas Media Library.

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

Teaching Assistants: Please see Instructor and TA contact information.

Course Description

Information technology is ubiquitous. This course focuses on the real world artifacts and implementations that comprise the vital computational organisms that populate our world. Topics include hardware (computer architecture), software (programming languages, databases, networking), and related issues such as security, and software engineering. Examples stress practical applications of technology. Homework assignments will generally involve programming in Python. Specifically, the course provides a thorough exposure to Python, and covers useful topics including UNIX, data structures, SQL and databases, cryptography, recursion, and object oriented programming. Students acquire tools and understanding that they can apply in many areas both inside academia and in industry. The course satisfies the introductory programming requirement for the Certificate in Programming.

Textbooks

Other Resources

Web page
The course web page is at http://zoo.cs.yale.edu/classes/cs200.
Canvas
Canvas has many course resources include the Media Library and zoom links. canvas
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.
Zoo accounts
The Zoo is a collection of computers located on the 3rd floor of AKW at the front of the building. You will need a *course account* on the Zoo to submit homework. Once you register for the course, an account on the zoo will be created within a few hours through an automated process. There will be *help sessions* on using the Zoo early in the term. A Zoo tutorial is available on-line from the course web page.
Course directory
The course directory, /c/cs200 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 Python 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, your performance on the programming assignments and other homework, and the exams. The weighting of these components will be approximately 33% on 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 Python, 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 ULA 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.

Course Outline

Week Date Topic
1 Aug 28, 30 Introduction. Python: strings, lists, UNIX, recursion.
2 Sep 4 Python: sorting, dicts, files, testing
3 Sep 9, 11 Python: regular expressions, utilities, UNIX shell scripts
4 Sep 16, 18 Python: object oriented programming
5 Sep 23, 25 Python: data structures (oop)
6 Sep 30, Oct 2 Python: databases (oop) and SQL
7 Oct 7, 9 Review for midterm I.
Oct 10Midterm exam I.
8 Oct 14 Computer Architecture. Python Virtual Machine.
Oct 16 No class. Yale Fall Break.
9 Oct 21, 23 Cryptography and Information Security
10 Oct 28, 30 1 Cryptography and Information Security
11 Nov 4, 6 Review for midterm II.
Nov 7 Midterm II.
12 Nov 11, 13 Complexity of algorithms.
Nov 18, 20 Machine learning
13 Nov 27, 29 No class. Thanksgiving break.
14 Dec 2, 4 Machine Learning, Review for Final
Dec 18, 9am. Final Exam, RTBA

[Home]