This is an archived copy, not for the current semester!

Course Information
        This page is available at:  bit.ly/cs211f22

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.

Lecture and Lab Schedule

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)

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.

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:

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.

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:

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.

Syllabus Information

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:

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.

Syllabus Information

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:

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 calendarFor 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 pageIf 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

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

Don't

Lab

Security cameras monitor work done in labs, and logs for university log-on activity can be requested when necessary.

Do

Don't

Programs

We use an automatic cheating-verification program that is capable of detecting partial logical similarities of code. Don't take the risk!

Do

Don't

Exams

Do

Don't

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: