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, sloan@uic.edu |
1112 SEO, Tuesdays 2:00–4:00 & by appt. |
Prof. Richard Warner, rwarner46@gmail.com |
845 Chicago Kent Law School, Mondays 12:30 – 2:00 & by appt. |
TA: Zhu ("Ellen") Wang, zwang260@uic.edu |
Mon. 1:00–2:30 pm and Wed. 12:00-1:30 pm, 4030 SEL |
Undergraduate TA: Amanda Olson, aolson7@uic.edu |
Thursday, 12:30-2:30, CS Lounge, 2268 SEL |
Electronic Communication
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
COURSE MATERIALS
Required Text
How to Think Like a Computer Scientist: Interactive Edition, a free online interactive book at
http ://interactivepython.org/runestone/static/thinkcspy/index.html, 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)
COURSE REQUIREMENTS (GRADING)
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.
COURSE POLICIES
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.
CALENDAR OF SELECTED MAJOR COURSE EVENTS AND DEADLINES
Date |
Event |
Wednesday, Aug. 24 |
Register your clicker and do assigned reading before 2nd meeting of class |
Tuesday, Aug. 23 |
First lecture |
Thursday, Sept. 20 |
First hour exam (may be moved a little later) |
Thursday, Oct. 27 |
Second midterm (may be moved a little later) |
Monday, Aug. 29 |
First Lab meetings |
Monday, Aug. 22 |
UIC semester begins |
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. |
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 |
READING ASSIGNMENT DUE BEFORE START OF CLASS, Thursday August 25
How to Think Like a Computer Scientist: Interactive Edition, General Introduction.