This is an archived copy, not for the current semester!
There are three lecture sections and twelve lab sections for the course as shown below. We do have lab the first week of class! You must attend the lecture and lab for which you are registered in order to receive credit for work done during that session. If you switch lab sections, when you arrive notify the Coordinator TA in charge of your new lab so they can give you permission to access the folder for that lab.
Instructor Information
Dale Reed (he/him/el)
Office: SEO 1237
Email: reed AT uic DOT edu
Website: bit.ly/dalereed
Ellen Kidane
Office: SEO 917
Email: ekidan2 AT uic DOT edu
Prerequisites: Grade of C or better in CS 141 for CS students. (For Computer Engineering students a Grade of C or better in CS 107.)
Course Materials & Tools (Text, Clicker, Piazza, Replit, Gradescope, Zybook)
- Textbook
We do not have a traditional textbook for this course, but rather have a collection of assigned readings for each week listed on the schedule. Many of the readings will come from Understanding And Using C Pointers, by Richard Reese. O'Reilly, 2013, which can be accessed for free through UIC's Safari service, as explained on the course Resources page.
- iClicker
Starting with the first 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 (Mac or PC) or on a phone (iOS or Android). The installation instructions explain that you must:
Create an iClicker online account using your UIC email (otherwise you'll have to pay for it). Create your account by visiting the iClicker student web app or by downloading the mobile app from the App Store or Google Play. Select Sign Up!
On the site or within the app, find our institution (University of Illinois at Chicago) and register yourself for the appropriate (10am Reed, 12pm Kidane, 1pm Reed) CS 211 Programming Practicum class session.
During class answer iClicker questions using the Web app or from your previously installed phone app.
Please contact your professor right away if you don't have a phone or computer to use for this purpose.
3. Piazza Discussion Board
You should have gotten an email invitation to join Piazza, the online discussion board we will be using for this class. Otherwise sign yourself up at: https://piazza.com/uic/fall2022/cs211
Do not email questions to us, rather post your questions on Piazza. Piazza is specifically designed to get you help quickly and efficiently from classmates, the TA, and instructors. 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 instructors can see who posted each message.
4. Replit
We will be using Replit, an online integrated programming environment (IDE), at this link: https://replit.com/teams/join/deycanbjefxhbsbtuclbqjcxoslunmcd-cs211-fall-2022. To start off, tinker with this Replit starter code (sharable with a partner!)
5. Gradescope
We will use GradeScope to grade exams, and perhaps also programs. If you did not already get an email indicating you have been added to Gradescope, you may add yourself using the Gradescope code: J3K2Z2
6. Zybook
We will use Zylabs to run lab and program test cases, starting with program 3. (Both Replit and Gradescope have been difficult to use in creating test cases!) Zybooks has been kind enough to give us access to this here mid-semester.
Sign in or create an account at learn.zybooks.com
Enter zyBook code: UICCS211Fall2022
Subscribe
Course Grading (Deadlines, Lab Prep, Quizzes, Curve, Piazza Good Citizens)
Deadlines are listed on the course schedule link near the top of this page. Only on-time submissions count towards lab preparation, quiz, reflection, and activity grades.
Lab preparation reading outlines, if typed double-spaced on a standard 8.5x11 sheet of paper, should be about half a page (260+ words).
Grading Rubric: 1 point each for: Complete topic summary; Reasonable proposed program; 4 new references
Lab and class quizzes will be closely based on the assigned readings. No makeup quizzes will be given.
Lab partner activities are graded on a 5 point scale:
Title, Outline, and Overview cover lab topics
Main points are listed and explained
Source code along with input & output illustrates main points given in lab description
Explanations of source code provide insight and clarity
Resources are listed in Bibliography
There is also 1 point extra credit possible (but not often given) for aesthetics, graphics, and compelling presentation
The lowest lab quiz grade and the lowest lab partner activity grade will be dropped. The lowest reading outline grade will be dropped.
Letter grades are assigned on a curve, at the end of the semester. A few students who are on the borderline between grades and who are "good citizens" on the Piazza discussion board will get bumped up to the next highest letter grade at the end of the semester. See UIC course grade distributions from previous semesters for courses taught by this instructor to get an idea what to expect in this course.
Programs (Pair Programming, Late Submissions)
Late Programs
We allow for late submissions of the programs because writing the programs are one of the principal learning experiences in the course. We want you to succeed, and want to help you do so! A program solution will usually be posted shortly after the due date, so the following apply:
For late program submissions you must write a 500-word essay comparing your solution to our posted solution, referring to specific differences and commenting on which is better and why. This essay must be submitted as part of the header at the top of your program. Your program will not be graded if it does not include this essay!
There will be a 10 point (out of 100) deduction per day for programs submitted after the deadline, up to a maximum deduction of 50 points, in addition to any other deductions. To be considered for credit any late programs must be submitted within 2 weeks of the original deadline or by the end of week 13 of the semester (whichever is sooner), so we have time to grade them. This means the last program most likely may not be submitted late.
Your late submission can use parts of our solution, however you will be graded on the extent to which you did your own implementation. For example if your program is 3 days late that would be a penalty of 30 points, for a maximum score of 70. Turning in exactly our program solution would be a 0/70, turning in 50% of our program solution would be a 35/70, and turning in all your own code could give you the full 70 points.
Pair Programming
You may (but don't have to) program with a partner on one or both of programs 3 and 4, but must work on programs 1, 2, 5 and 6 on your own. (11/6 update: Since we are only having 4 programs this semester, program 4 will be individual, and not a partner project.) For pair programming we recommend you use Replit, which allows you both to view and edit the code at the same time.
For pair programming you must choose a partner ahead of time, registering yourself and your partner using the partner registration form at least one week before the program is due.
When programming with a partner you must take turns being the "designated driver" and the "non-driver." To work with a partner you must also both read the article by Williams and Kessler entitled "All I Need to Know about Pair Programming I Learned in Kindergarten." When doing pair programming, only one of you should submit the program solution, with both of your names on it. (If you're curious, see a 40 sec. video from David Oliver, and see this evidence of the success of Pair Programming, which is considered an industry best-practice.)
Programs Grading Criteria
See below for details on programs grading.
Labs
In lab you will be working with a partner, using material you have prepared ahead of time to create a tutorial on the week's topics. According to educational research, creating, synthesizing, and collaborating are higher-order thinking tasks that can help you both understand, retain, and use course material better than many other approaches. This course (Programming Practicum) emphasizes learning-by-doing, hence the title Practicum.
The activities each week are geared around what happens in each week's 2-hour lab as follows:
Lecture on Friday presents material and leading questions for the following week's lab. The following week's lab topic should be posted by the end of the day Friday.
Do the assigned reading, and use it to create an outline of content. Use the Reading Outline form to submit this by the end of Monday, at midnight (in preparation for the Tues/Wed/Thurs labs). Keep a copy of your outline to use in lab.
When you arrive at your assigned lab session, your lab's google slides document for each week (see sample) will list your randomly assigned lab partner for that week, determining where you sit in lab that day. You can use the machines in the lab, or your laptop.
Lab begins with a 5-min quiz closely based on the assigned reading
With your lab partner in the shared slide deck for the day (see sample), collaboratively create a single original tutorial, starting from your outlines you prepared and submitted ahead of time. Your tutorial must be completed somewhere in the 60min-90min time window from the beginning of lab. Once completed, list your group's number and title on the first lab slide, so other groups can see you are done and can reflect on your work.
During the last 20 minutes of lab put a Notice and a Wonder comment on the tutorials of (at least) the groups listed before and after yours on the finished list.
Fill out the final Lab Reflection form, tracking whether required components were present in the group tutorials you looked at. This reflection form also includes an evaluation of your partner for the day.
Logistics (Posted Notes, Recorded Lectures, Joining Late, Missing Class, LOA)
Class Notes
See the Class Notes link on the course web page navigation bar for pdf copies of class notes and copies of code done in class, which will be posted by the end of each class day. Videos of class sessions will be available online through the Blackboard "Echo 360" link.
Joining Class Late
Refer as needed to the UIC academic calendar. For students who register for the class after the first day but still within the first two weeks of class, you must send the instructors a private post on Piazza, indicating the day you registered for the class, your class section, lab section, and your UIN. Be sure to select the late_registration tag for your post so we can find it in the future. If you have done this, then at the end of the semester if the missing points make a difference in your final grade, then we will revisit your missing lab and Zybook scores. You will not be eligible for any missed in-class clicker points.
Missing Class, Religious Holidays
I make an effort to avoid having tests on religious holidays, but if I neglect to take one into account, please let me know. If you miss class because of a religious holiday, jury duty, UIC sports team event or verified sickness (we may contact your doctor) then please send the instructors a private post on Piazza and be sure to select the missing_class tag for your post. You will be given the opportunity to take a make-up exam only in cases of medical or personal emergencies, which must be verified. Doctor's notes must include their contact information. If such an emergency occurs, post a private message into the Piazza instructor's group as soon as possible. In the case of a medical emergency, if your doctor is unable to verify your visit without a signed HIPAA authorization form, you will need to complete a HIPAA authorization for release of health information form in order for me to verify that you were seen by the doctor on the date in question.
Covid
We will be meeting in person, wearing masks. See the UIC current Covid guidelines page. If you miss class because of Covid, one option for documentation is a copy of your UIC Covid Exposure report submitted through the above-linked UIC Covid guidelines page. Take a screen shot of your UIC Covid Exposure report, since the UIC Covid reporting system has issues! Report in Piazza, again using the missing_class tag for your post.
If you miss class you should watch the class recording afterwards. Real-time broadcasts will not be available. If your case is documented, then we will give you the class average for in-person work that you are not able to do. You should still do all the assignments that you would normally be doing and submitting on your own. 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.
Disability Services, Letters of Accommodation (LOA)
Refer as needed to the UIC campus disability services policy which applies to students in this class. If you have special circumstances described in a letter of accommodation (LOA) from the UIC Disability office, post a message on Piazza to the Instructors, selecting the letter_of_accommodation tag, and we can confer with you about how to proceed. Remind your instructor before each exam of any accommodations needed.
Bias Reporting
If you feel you have been discriminated against because of bias, consider using the UIC Bias Reporting Form.
Announcements, Sensitive matters, Incompletes, Regrade requests
All critical announcements, changes to assignments, etc. will be announced through Piazza. I'm assuming you will check your email regularly.
For highly sensitive matters, the student or someone who is supporting the student should contact the Office of the Dean of Students via the Student Care & Assistance Request or at 312 996-4857. The Dean’s staff will then contact me on your behalf. This approach has the added benefit of the Dean's staff contacting all your instructors for you, instead of you having to do it one-by-one.
A grade of "Incomplete" can only be given if there are extenuating circumstances and you have at least a 'C' average in the course. It cannot be given for poor performance in the course.
If you feel that you deserve more points than you have been given on a quiz, assignment, or test, you must see the instructor about this within one week of the time the work in question is first returned to the class. After this deadline, your claim may not be considered.
Academic Honesty (Do's/Don'ts for Class, Lab, Programs, Exams; Penalty)
The vast majority of students do their own work, as we expect them to do. This section clarifies exactly you may and may not do in collaboration with others. We encourage conversation and collaboration, as detailed below. Academic dishonesty is anything that gives you an unfair academic advantage.
Class
Do
Talk to people around you during pair-share discussion, and during pair group discussion clicker questions
Don't
Use someone else's clicker in class to give them clicker points
Communicate with someone else in class during individual clicker questions
Lab
Security cameras monitor work done in labs, and logs for university log-on activity can be requested when necessary.
Do
Collaborate with your lab partner and in conversation with other groups around you during regular lab activities
Don't
Communicate with anyone besides a course instructor or TA during a lab quiz or test
Send or receive online quiz, lab assignment, or lab test password information
Send or receive a solution to a lab quiz or lab assignment before all the labs have passed for that week
Use a solution to a lab assignment that you find online that someone else wrote
Collaborate on a lab with one or more people outside of the lab context
Programs
We use an automatic cheating-verification program that is capable of detecting partial logical similarities of code. Don't take the risk!
Do
Discuss conceptual solutions to assignment coding problems, both in-person and online
Show people your code in-person, and describe it (but no electronic copies!)
Assist classmates in determining why his or her code doesn't work
Post a few lines of code online to illustrate some problem and get help in finding a solution
Post and discuss your program solutions after the deadline has passed
Don't
Send or post an electronic copy of a draft or finished version of your program before the assignment deadline
Represent someone else's code as your own. (If you can find it online, so can we!)
Have someone else write your program, either in person or online
Write someone else's program
Work with a partner (pair programming) without having notified the TA's and me at least one week before the deadline
Work with a partner (pair programming) on a program besides the assignments for which this is specifically allowed
Exams
Do
Bring in paper copies of old exams as well as paper copies of books and anything else on paper
Don't
Communicate with another person during an exam
Use electronic devices or electronic resources (e.g. phones, smart watches, tablets, computers, etc.)
Look at someone else's work during an exam or allow them to look at yours.
On an exam you may be asked to sign the following:
I, _____________________________, certify that I will not do and have not done anything during this exam to give me an unfair academic advantage.
Unless specifically allowed by the instructor, during the exam I will not and did not: 1. Use any electronic devices or resources; 2. Consult any book or course-related materials; 3. Communicate with or look at any other person's work.
I understand that violating this honor code will result in an Academic Integrity Incident Report to the UIC Office of the Dean of Students, which will become part of my academic record and may result in suspension, termination, or denial of a degree from UIC.
Signature: __________________________________________
Penalty
Any student who fails to follow the academic honesty policy on any course work will get a grade of 0 on that work and will be dropped a letter grade at the end of the semester, for each offense. This penalty applies to all prohibited behavior listed above in the Don't categories, unless specifically allowed by the instructor. Academic dishonesty will result in an Academic Integrity Incident Report go.uic.edu/academicIR going to the UIC Office of the Dean of Students. Details are given on the Academic Integrity page, which includes a link to the Student Disciplinary Policy.
How to Succeed in this Class
As the instructional staff our job in class is to organize the material coherently, give helpful lectures, provide a framework that combines enough challenge and support for success, and grade reasonably. A reasonable academic expectation is that you spend 2 hours outside of class for every hour spent in class. For a few of your programming assignments you may go over this time estimate. You should expect productive struggle. Getting stuck is normal in this class, particularly when working on the programming assignments, and talking with other students, the TAs and the instructors is expected and encouraged!
For you to succeed our expectation is that you will do the following:
Come to every class, unless you already understand the material very well and have no questions, and can afford to lose the points for in-class clicker use.
Do all the reading and make your outlines meaningful.
Participate in lab with good-will. You learn by both asking and explaining.
Write the programs ahead of time and not at the last minute. This allows you to get help from the teacher and from TAs if you need it.
See the teacher and/or TA when you don't understand something and have spent a reasonable time thinking about and working on it yourself first.