TWiki> CS111Law Web>Syllabus (revision 8)EditAttach

Syllabus: CS 111: Law

Program Design I, Legal and Public Policy Themes Section

Fall 2016, 3 Credit Hours, CRN: 40307

Lecture: Tue-Thu 11:00-12:15, Taft Hall 120
Labs: Mondays, 11-11:50 am, 12-12:50 pm (enroll in one), SEL 4229F

Instructors and TA

Instructor/TA Office Hours
Prof. Robert Sloan, 1112 SEO, Tuesdays 2:00–4:00 & by appt.
Prof. Richard Warner, 845 Chicago Kent Law School, Mondays 12:30 – 2:00 & by appt.
TA: Zhu ("Ellen") Wang, Mon. 1:00–2:30 pm and Wed. 12:00-1:30 pm, 4030 SEL
Undergraduate TA: Amanda Olson, Thursday, 12:30-2:30, CS Lounge, 2268 SEL

Electronic Communication

CS 111 Law Web Page , Blackboard , Piazza

Most materials, such as lecture slides, and the updated syllabus and schedule, will be posted to the world-readable webpage for the course. Grades, assignments, and video captures of the lectures are available on Blackboard. There is also a forum for course help at Piazza. You are responsible for checking Blackboard regularly and making sure you are doing all the work. You are responsible for knowing about all of the material distributed for this class, whether it is mentioned in the syllabus, posted on the class website, posted on Blackboard, posted on Piazza, or announced during lecture.

Course Description, Goals, and Objectives

CS111 Law is a new section of Introductory Computer Science Program Design I (CS111) offered for the first time by the UIC Computer Science Department in collaboration with Professor Richard Warner of IIT Chicago-Kent College of Law. The class is for students who have no (or very little) previous programming experience.

This course will take its examples, the things that we write programs about, from law and privacy policy issues, ranging from encryption to predictive policing. The course will be team taught by a Computer Science professor and a legal scholar, and will include some introductory law and public policy content. The programming language will be Python.

In this class you will learn to create and use programs in the Python language to analyze and illustrate various issues arising from law and public policy, with a particular focus on security and privacy. You will learn a little bit about "how to think like a lawyer," and a lot about "how to think like a computer scientist."

More formally, the learning outcomes are that by the end of this course you will:

  • Be able to discuss the importance of algorithms in the problem-solving process 

  • Be able to use Python to implement, test, and debug algorithms for solving simple problems
  • Have a basic understanding of how the Web works and how to interact with it as a Python programmer
  • Be able to understand and analyze legal issues in privacy, security, and the Web
  • Have a basic understanding of computer ethics and public policy issues

  • Appreciate what computer scientists do and the key concerns of computer scientists


Required Text

How to Think Like a Computer Scientist: Interactive Edition, a free online interactive book at http ://, based on an open source book by Jeffrey Elkner, Allen B. Downey, and Chris Meyers.

Optional Texts

For those who like traditional books you could try either of:

  • Lubanovic, Introducing Python: Modern Computing in Simple Packages
    • UIC has four electronic copies available through Safari; you should be able to get to a copy just by doing a regular search for the book in the UIC Library catalog; this direct link may also work
  • Zelle, Python Programming: An Introduction to Computer Science (either 2nd or 3rd edition, the 3rd edition is supposed to be out approximately August 15 to September 10)


Subject to change at any time for any reason

Item Weight
Lab programming assignments 20%
Lab quizzes, lowest two dropped 5%
Programming projects 25%
Two midterms 10%x2=20%
Final Exam 20%
Lecture participation (from clicker questions), attendance required 10%
Total: 100%
In addition, you must pass both the programming part of the course (labs plus programming projects) and the exam part of the course (midterms plus final) in order to receive a passing grade.


Attendance and Participation Policy

You will be expected to attend all lectures, having completed the assigned reading and ready to discuss them with your classmates. Your lecture participation grade will come primarily from answering clicker questions (not graded for correctness). We will excuse absences from the first three classes (so you can shop the other sections).

Lab quizzes will be given almost every week. You must be present at the lab to get credit for the quiz. We will drop your two lowest lab quiz scores.

Policy for Missed or Late Work

All programming assignments (lab and projects) are to be turned in electronically via Blackboard. Lab assignments will be due at 11:59 pm Wednesday; programming projects will come with a deadline.

In general, no late lab or project assignments will be allowed for this course. However,you have three "late day" passes that you can use on the programming assignments, so you can turn in three programming assignments 1 day late without penalty, or a single assignment 3 days late, etc. Once you have used your late days, late assignments will not be accepted. If you wish to use late days for a lab or project assignment, you must fill out the form on Blackboard before the time it is due.

Student Courtesy Policy: No laptops or phones in class

If you absolutely cannot take notes without a laptop, please come talk to Prof. Sloan. Otherwise, no laptop use in class. It is distracting to others, and it keeps you from being fully engaged. Likewise, no phone use in class, and of course silence your phone before class.

Academic Integrity Policy

As an academic community, UIC is committed to providing an environment in which research, learning, and scholarship can flourish and in which all endeavors are guided by academic and professional integrity. All members of the campus community–students, staff, faculty, and administrators–share the responsibility of insuring that these standards are upheld so that such an environment exists. Instances of academic misconduct by students will be handled pursuant to the Student Disciplinary Policy.

Consulting with your classmates on assignments is encouraged, except where noted. However, submissions are individual, and copying code from your classmates is considered plagiarism.

To avoid suspicion of plagiarism, you must specify your sources together with all submitted materials. List classmates you discussed your assignment with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their submitted materials. For example, give the question "how did you do X?", a great response would be "I used function Y, with W as the second argument. I tried Z first, but it doesn't work''. An inappropriate response would be "here is my code, look for yourself."

Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc., are obviously prohibited, is grounds for possibly failing the course or even expulsion from UIC, and will be reported. We will be running an automated plagiarism detection tool on your hand-ins.

Students are advised that it is a violation to copy, or allow another to copy, all or part of an exam or program.

Student Disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact instructors as soon as possible so that appropriate arrangements can be made. Support is available through the Disability Resource Center. You will need to contact them to get your disability documented before accommodations can be made.

Incomplete Grade Policy

The UIC Undergraduate catalog states that in addition to needing excellent justification for an incomplete grade, a student must also have been "making satisfactory progress in the course".

Therefore, no matter how good your excuse, we will not grant you an incomplete grade if you have less than a C average at the time you ask for an incomplete.


Date Event
Monday, Aug. 22 UIC semester begins
Tuesday, Aug. 23 First lecture
Wednesday, Aug. 24 Register your clicker and do assigned reading before 2nd meeting of class
Monday, Aug. 29 First Lab meetings
Friday, Sept. 2 Last day to complete late registration; last day to add a course(s) or make section changes; last day to drop individual courses via Student Self-Service without receiving W (Withdrawn) grade on academic record.
Thursday, Sept. 20 First hour exam (may be moved a little later)
Thursday, Oct. 27 Second midterm (may be moved a little later)
Friday, Oct. 28 Last day for undergraduate students to use optional late drop in college office and receive grade of W on academic record.
Friday, Dec. 2 Instruction ends
Final Exam Monday, December 5, 10:30–12:30


How to Think Like a Computer Scientist: Interactive Edition, General Introduction.

Edit | Attach | Print version | History: r10 < r9 < r8 < r7 < r6 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r8 - 2016-09-08 - 00:43:00 - Main.sloan
Copyright 2016 The Board of Trustees
of the University of
Helping Women Faculty Advance
Funded by NSF