Version: Tuesday, February 1: Added explicit pointer to constantly updated schedule of office hour of the team
Sunday, January 30, 2022 (added rules about project late day passes that were in Lecture 2 and Lecture 2 slides to Grading section here).
Tuesday, January 11, 2022 (updates in office hours certain for first 2.5 weeks of classes, likely throughout semester, any other non-calendar changes will be noted here)
Welcome to CS 113, Program Design I in the Context of Law and Public Policy, Spring 2022
Lecture: Tue-Thu 9:30-10:45 online via Zoom for first two weeks, then ARC 242 (CRN # 45612)
Labs: Tuesday afternoon or Wednesday morning, online via Zoom for first two weeks, then one hour located in SEL 2058. Enroll in one CS 113 lab.
Welcome to Computer Science 113! CS 113 is an innovative variant of Introductory Computer Science Program Design I (CS 111) offered by the UIC Computer Science Department in collaboration with Professor Richard Warner of Chicago-Kent College of Law. The class is for students who have no or very little previous programming experience. You will learn approximately the same computer science content in CS 113 as is covered in CS 111. (You will learn a little more data science.)
This course, CS 113, will take its examples, the things that we write programs about, from law and public policy issues, ranging from encryption to predictive policing. We, one Computer Science professor and one legal scholar are team teaching CS 113, and we will include some introductory law and public policy content. The programming language is Python.
Weeks 1 and 2 entirely on line; rest of course entirely in person.
See here for constantly updated list of office hour times and locations
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.”
By the end of CS 113 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
We will primarily use an online textbook called a Zybook. Follow these steps:
Click any zyBooks assignment link in the CS 113 Blackboard site Do not go to the zyBooks website and create a new account)
Subscribe
A subscription is $77. You may begin subscribing on Dec 28, 2021. Subscriptions will last until May 29, 2022.
The schedule (see link on the navigation bar) includes chapters and deadlines for the ZyBook exercises that should be done interactively as you read. These count as part of your grade. Typically reading and participation activities are due before each lecture, and once a week the associated challenge activities are due, usually at the end of the weekend after the week when we discussed the material. At the end of the semester you can download each chapter as a pdf, to serve as a reference, though the interactive elements will no longer work.
Note: Earnest completion of activities in the online book has been shown to improve student success, and student feedback indicates they enjoy the experience. We want you to succeed and enjoy learning, so please do the activities carefully and purposefully.
You will probably find it helpful to read “How to use zyBooks” located in your zyBooks library once your account is created.
We will have a few readings from the free online textbook:
How with to Think Like a Computer Scientist: Interactive Edition, a free online interactive book based on an open source book by Jeffrey Elkner, Allen B. Downey, and Chris Meyers. There will be 1-2 assignments from here.
(Highly) Optional Texts
If you like traditional books you could try either of:
Lubanovic, Introducing Python: Modern Computing in Simple Packages
UIC has some electronic copies available through O'Reilly Safari Technical Books and Videos; you should be able to get to a copy just by doing a regular search for the book in the UIC Library catalog.
Zelle, Python Programming: An Introduction to Computer Science (3rd edition or later)
Starting with the first or second class we will be using iClicker Cloud (a.k.a. remote access or REEF) for you to respond to in-class quizzes. This is available to you for free through UIC's site license. You can install and run the iClicker cloud software on a laptop or phone.
Please contact your professor right away if you don't have a phone or computer to use for this purpose.
You should have gotten an email invitation to join Piazza, the online discussion board we will be using for this class, by no later than the evening before the first lecture, Otherwise sign yourself up at: piazza.com/uic/spring2022/cs113
Piazza is specifically designed to get you help quickly and efficiently from classmates, the TA, and me. Our class Piazza page can be found using the link in the navigation bar above left. Your posts can be anonymous to your classmates, though we can see who posted each message.
We will all use this for our Python programming activities after the first week or two; installation instructions coming soon.
We will use GradeScope to grade exams, and perhaps also programs. We will tell you how to connect to Gradescope around the time of the first midterm exam.
UIC values diversity and inclusion. Regardless of age, disability, ethnicity, race, gender, gender identity, sexual orientation, socioeconomic status, geographic background, religion, political ideology, language, or culture, we expect all members of this class to contribute to a respectful, welcoming, and inclusive environment for every other member of our class. If there are aspects of the instruction or design of this course that result in barriers to your inclusion, engagement, accurate assessment or achievement, please notify me as soon as possible.
UIC is committed to full inclusion and participation of people with disabilities in all aspects of university life. If you face oranticipate disability-related barriers while at UIC, please connect with the Disability Resource Center (DRC) at drc.uic.edu, via email at drc@uic.edu, or call (312) 413-2183 to create a plan for reasonable accommodations. In order to receive accommodations, you will need to disclose the disability to the DRC, complete an interactive registration process with the DRC, and provide me with a Letter of Accommodation (LOA). Upon receipt of a LOA, I will gladly work with you and the DRC to implement approved accommodations.
UIC is an academic community 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. In this community, all members including faculty, administrators, staff, and students alike share the responsibility to uphold the highest standards of academic honesty and quality of academic work so that such a collegial and productive environment exists.
As a student and member of the UIC community, you are expected to adhere to the Community Standards of integrity, accountability, and respect in all of your academic endeavors. When accusations of academic dishonesty occur, the Office of the Dean of Students investigates and adjudicates suspected violations of this student code. Unacceptable behavior includes cheating, unauthorized collaboration, fabrication or falsification, plagiarism, multiple submissions without instructor permission, using unauthorized study aids, coercion regarding grading or evaluation of coursework, paying others to do your work, and facilitating academic misconduct. Please review the UIC Student Disciplinary Policy for additional information about the process by which instances of academic misconduct are handled towards the goal of developing responsible student behavior.
You are encouraged to consult with your classmates on assignments, except where noted. However, submissions are individual, and copying code from your classmates is considered plagiarism. Copied code on one lab will result in a 0 for the lab and being reported to the Dean of students; copied code on exams or on multiple labs may result in very severe penalties, such as failing the course or even expulsion from UIC.
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. You are expected to understand and be able to explain your submitted materials. For example, if I ask you, "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."
By submitting your assignments for grading you acknowledge these terms, you declare that your work is solely your own, and you promise that, unless authorized by the instructor or proctor, you have not communicated with anyone in any way during an exam or other online assessment. Let’s embrace what it means to be a UIC community member and together be committed to the values of integrity.
Lab quizzes, lowest four dropped: 5%
ZyBooks participation activities (exercises), about 20 total assigned, lowest 6 dropped: 5%
ZyBooks challenge activities (harder exercises), about 10 total assigned, lowest 2 dropped: 5%
Lecture participation (from clicker questions), attendance required, lowest 6 dropped: 5%
Lab programming assignments, lowest 2 dropped: 18%
Programming projects: 22%
Two midterms: 10% x 2 = 20%
Final Exam: 20%
Total: 100%
We will drop the six lowest grades for both lecture participation and zyBooks participation. You will receive credit for zyBooks participation activities for completing participation activities by 9:00 am on the day of the class that they are assigned for (i.e., before lecture). After that time you will not receive credit. Similarly, you will receive credit for zyBooks challenge activities for completing by the deadline we give you.
The numbers of low scores that are in bold are double the number that were dropped in 2019 and earlier, and are intended to cover absences directly or indirectly due to the COVID pandemic.
Most weeks we will assign zyBooks challenge activities after Thursday's class, to be finished by the end of the weekend (11:59 pm Sunday). We'll drop the lowest score here.
You wiil receive full credit for labs and projects submitted on time. Late labs will not receive credit, but we are dropping the two lowest labs. We are giving all students six 1-day-late passes that are valid only for projects (not labs). You could use them to submit one project six days late, or three projects two days late each, etc. You will not receive any credit for late project if you do not use the necessary number of 1-day-late project passes.
In addition, you must pass (have a D average or better for) both the programming part of the course (lab programming assignments, ZyBooks challenge problems, and programming projects) and the exam part of the course (midterms plus final) in order to receive a passing grade.
Professors
Prof. Robert Sloan: email sloan@uic.edu web: https://cs.uic.edu/profiles/robert-sloan/
Prof. Richard Warner: email rwarner46@gmail.com
web: https://www.kentlaw.iit.edu/faculty/richard-warner
Office hours: By appointment.
TA
Johnnalee Kutzke: jkutzk2@uic.edu
Lab times: Tues 3 PM, Wed 9 AM
Drishika Dey: ddey4@uic.edu
Lab times: Tues 1 PM, 2 PM
Student drop-in times (Office hours schedule):
Prerequisites: None.
As of today 1/5/2022, 5 days before classes start, our expectation is that the first two weeks of classes will be online, and CS 113 will be *synchronous online*, and then as of Monday, January 24, we will return to in-person meetings. My understanding is that we will all be vaccinated (or be tested regularly), meet masked and in person in our classroom, without extra physical distancing. Of course this could all change! Should there be the need to go back to online only, our plan is to have synchronous class online using Zoom. Class activities feature conversation between students.
If because of Covid you will be participating in class remotely and will not be able to join in person, post a message on Piazza to the Instructors, selecting the Covid folder, and we can confer with you about how to proceed.
On-campus class lectures will be recorded and posted via Blackboard / Echo360. After January 24, iClicker points can only be earned in person. The course policies have been changed to dropping the six lowest iClicker participation scores instead of three to cover anybody who has to miss class because of COVID. Of course, please do reach out to the instructors if you are having an absence of longer than 1-1.5 weeks due to COVID or any other reason.
Face Masks: Masks covering both your mouth and nose must be worn at all times by all students, faculty, and staff while on campus and inside any building, regardless of vaccination status. The mask requirement means eating and drinking are not allowed in classrooms.
On-Campus Exams: For this course you need to be on campus for in-person exams on the days given in the course schedule.
Long-Term Equipment Loan: Undergraduate and graduate students are eligible to request a loaner laptop or hot spot. Device availability may be limited if the number of students requesting hardware exceeds current inventory, so students are encouraged to submit the request form as soon as possible. Additional laptops can be ordered to accommodate the number of requests, but there may be a delay in receiving the necessary hardware in such cases. More information about the program and the request form can be found on [this webpage](https://help.uillinois.edu/TDClient/37/uic/Requests/ServiceDet?ID=450).
In any case, talk to us about your situation. We want to help, within reason, and want to give you the opportunity to learn the course material in the best way possible.
You will be expected to attend all lectures (online for the first two weeks, on-campus after that), having completed the assigned reading and ready to discuss them with your classmates. Your lecture participation grade will come primarily or exclusively from answering clicker questions (not graded for correctness). We will excuse absences from three classes.
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 **four** lowest lab quiz scores.
You will submit all your programming assignments (lab and projects) electronically via ZyBooks or Blackboard. We'll let you know which; at the start of the semester you'll mostly be submitting in ZyBooks. Lab assignments will generally be due at 11:30 pm Thursday; programming projects will come with a deadline.
You will get full credit for all work submitted on time. Additionally you will all 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 get any credit. If you wish to use late days for a project assignment, you must fill out the form on Blackboard before the time it is due.
We will drop your two lowest lab grades,
Be present! If you absolutely cannot take notes without a laptop, please come talk to Prof. Sloan. Otherwise, no laptop or phone use in class except when specifically needed to answer iClicker questions. Devices are distracting to others, and keeps you from being fully engaged. Of course silence your phone before class.
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.