Home & Syllabus

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

Welcome to CS 141, Program Design II, Fall 2021

Read this course syllabus page in detail. Pay careful attention to the various deadlines shown in the course Schedule link in the navigation bar, as well as information on TA Drop-in Times, Programs, Exams, and Grades, some of which may be under the right-most More drop-down menu.

There are three lecture sections for the course (See campus map for classroom and lab locations)

  • M W F 9:00 - 9:50 LC C6 Reed (Call # 34657)

  • M W F 10:00 - 10:50 LC C6 Fulton (Call # 42636)

  • M W F 1:00 - 1:50 LC C6 Kidane (Call # 42032)

We do have lab the first week of class! (See the Lab section below.) You must attend the lecture and lab for which you are registered in order to receive credit for work done during that session. Call numbers for the individual labs are: 9am:36901, 10am:38094, 11am:39415, 12pm:42215, 1pm:42216, 2pm:42639, 3pm:42640, 4pm:42644 , 5pm:42645

Faculty members

Dale Reed: SEO 1237 email (remove spaces): reed @ uic.edu Web: bit.ly/dalereed

Chris Fulton: SEO 923 email (remove spaces): cifulton @ uic.edu Web: TBA

Ellen Kidane: SEO 917 email (remove spaces): ekidan2 @ uic.edu Web: ekidane.github.io

Prerequisites

CS 111 & credit/concurrent registration in MATH 180.

If you have not taken CS 111 at UIC (or 107 or 109) or the equivalent somewhere else, the CS 111 proficiency exam is administered through UIC testing services. Newly admitted CS students will automatically have the option to take this exam along with other placement exams that are required and optional. Permission to take this exam is given only to recently admitted CS students and approved CS minors. Continuing CS and non-CS students can request to take the exam through your my.uic.edu account, and will be approved on a case-by-case basis. Questions about this? Contact the CS Student Affairs Office in SEO 905.

What you Need

  1. Textbook

We will use an online textbook called a Zybook. Follow these steps:

      1. Sign in or create an account at learn.zybooks.com

      2. Enter ZyBook code: UICCS141Fall2021

      3. Subscribe. A subscription is $63. Subscriptions will last until Dec 24, 2021. The cutoff to subscribe is Nov 27, 2021.

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. 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.

If the idea of a course without a traditional book leaves you feeling uneasy, check out the online Safari books available for free to UIC students. You may also want to look at the Lynda video lectures on C++ Programming listed on the course Blackboard site.

2. 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:

      1. 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!

      2. On the site or within the app, find our institution (University of Illinois at Chicago) and register yourself for the appropriate CS 141 Programming Design II class session.

      3. 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: piazza.com/uic/fall2021/cs141

Piazza is specifically designed to get you help quickly and efficiently from classmates, the TA, and me. Do not email questions to us, rather post your questions on Piazza. 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.

4. Integrated Development Environment (IDE)

Download and install some Integrated Development Environment (IDE). See the link in the navigation bar for General Reference / IDE for options. You can program directly online in the file editor within Zybooks, but it does not let you work offline.

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 X3KN2N.

6. Fill out the Academic Honesty Form

Near the bottom of this syllabus page is the class academic honesty policy. After reading it fill out the form that is linked there to indicate that you have read it. You must fill out this form to receive a grade in the class.

Covid Logistics

As of today 8/19, 4 days before classes start, our expectation of what in-person meetings will look like is given on the UIC Covid page in the latest "Circle Back to Campus" newsletter. 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.

Class lectures will be recorded and posted via Blackboard / Echo360. iClicker points can only be earned in person or if you've made special arrangements with your instructor.

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. If you have forgotten your mask, you may pick one up from one of the student information desks on campus during the first two weeks of campus. 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. The exception is those who are attending the class from outside the US. If this is you, please email your instructor so they are aware of this and we can discuss how to do the exams.

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.

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.

Course Grading

Everyone can succeed in this course! As the instructional staff our goal is to provide you with the structure and support for you to get the help you need. See the recommendations for success.

30% Programs (probably 6 of them, 5 points each)

10% Zybook Exercises (As teachers we have access to what you have done in Zybooks, so no turn in is necessary after completing problems.)

5% Lab Quizzes must be completed individually in person in lab

5% Lab Activities (Must be done in-person in lab with a partner)

5% In-class iClicker question responses.

10% Midterm Exam #1, both in-lab and in-class portions

15% Midterm Exam #2, both in-lab and in-class portions

20% Final Exam, both in-lab and in-class portions

=====

100 Total

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 to get an idea what to expect in this course.

The deadlines for programs and Zybook exercises are listed on the course schedule. See the link near the upper-left of this page for this schedule.

Quizzes will be given during during the first few minutes of lab, and will be closely based on the exercises from the assigned readings. No makeup quizzes will be given. Labs are graded on a 3 point scale (0: didn't do it, 1: some effort, 2: average, 3: extra credit). The lowest lab quiz grade and the lowest lab activity grade will be dropped. Zybook Participation as well as Challenge activities are available on the web and must be completed by midnight on the deadlines posted on the class schedule. Only on-time submissions will count towards your grade for lab activities, quizzes, and Zybook activities.

Some of you may not want to attend class, or may not want to attend lab. At the end of the semester your clicker score will be the maximum of: 1. Your iClicker percentage, 2. Your overall (in-lab + in-class) final exam score percentage. The final exam average substitution will also be true for your lab quiz and lab activity scores. This means that if you skip class and skip lab, your final exam will count an additional 15% of your grade.

Programs

Grading

See below for the programs grading breakdown.


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 on the due date, so the following apply:

  • For late program submissions you must write a 500-word essay comparing your solution to my 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 by the end of week 13 of the semester, 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 my 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 my program would be a 0/70, turning in 50% of my program 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. 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 a best-practice in industry.)

Consider using a tool such as Google Docs or TeamViewer to allow you both to view and edit code as you are developing together. TeamViewer is free for individual use (as of the time of this writing) and allows you to collaborate remotely. You could use Google hangouts, Skype, or Zoom for video conferencing.

Labs

Labs are in SEL 2254 Tues starting at 9, 10, 11, 12, 1, 2, 3, 4, or 5, starting the first week of class, running for 50 minutes. For midterms and for the final exam the instructional lab time is used for the hands-on component of the test. On non-test days the basic structure of each lab is:

  • ~5 minute quiz using a Google form or Blackboard in the Quiz section. Quiz links are only available at the beginning of lab, so if you arrive late you likely will miss it. You must be present to take a quiz, as the quiz password will be provided by your TA.

  • ~5 minute overview of the tasks of the lab activity for the day.

  • ~ 40 minutes to work on the lab tasks. You must work with a partner to get credit for the lab. The two of you will complete and finish a single project, which both of you should turn in. We will encourage or require you to switch lab partners every couple of weeks.

In lab every 10 minutes or so we will make an announcement for you to switch driver / navigator roles, which means you alternate being the person typing on the keyboard. (If we forget to announce this, please go ahead and switch on your own.) During the last 10 minutes of the lab the TA(s) will come around to verify your work and check off what you have done.

TAs will give you guidance when you ask a question, but will not necessarily give away the answer. Remember to "ask three before me". If you don't understand something, first confer with your partner. If you still can't get it confer with two other students in a nearby group. If you still can't get it then get help from a TA.

Logistics

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 during-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 folder 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.

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 folder, and we can confer with you about how to proceed. Remind your instructor before each exam of any accommodations needed.

Announcements, Sensitive matters, Incompletes, Regrade requests

  1. All critical announcements, changes to assignments, etc. will be announced through Piazza. I'm assuming you will check your email regularly.

  2. 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.

  3. 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.

  4. 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

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.

To receive a grade in this class you need to use this google form to enter your information and acknowledge that you have read the Academic Honesty policy shown below, and that you agree to abide by it.

Class

Do

        1. Talk to people around you during pair-share discussion, and during pair group discussion clicker questions

Don't

        1. Use someone else's clicker in class to give them clicker points

        2. 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

        1. Collaborate with your lab partner and in conversation with other groups around you during regular lab activities

Don't

  1. Communicate with anyone besides a course instructor or TA during a lab quiz or test

  2. Send or receive online quiz, lab assignment, or lab test password information

  3. Send or receive a solution to a lab quiz or lab assignment before all the labs have passed for that week

  4. Use a solution to a lab assignment that you find online that someone else wrote

  5. 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 even take the risk!

Do

        1. Discuss conceptual solutions to assignment coding problems, both in-person and online

        2. Show people your code in-person, and describe it (but no electronic copies!)

        3. Assist classmates in determining why his or her code doesn't work

        4. Post a few lines of code online to illustrate some problem and get help in finding a solution

        5. Post and discuss your program solutions after the deadline has passed

Don't

  1. Send or post an electronic copy of a draft or finished version of your program before the assignment deadline

  2. Represent someone else's code as your own. (If you can find it online, so can we!)

  3. Have someone else write your program, either in person or online

  4. Write someone else's program

  5. Work with a partner (pair programming) without having notified the TA's and me at least one week before the deadline

  6. Work with a partner (pair programming) on a program besides the assignments for which this is specifically allowed

Exams

Do

        1. Bring in paper copies of old exams as well as paper copies of books and anything else you want

Don't

        1. Communicate with another person during an exam

        2. Use electronic devices or electronic resources (e.g. phones, smart watches, tablets, computers, etc.)

        3. Look at someone else's work during an exam or allow them to look at yours.

        4. On an exam you may be asked to sign the following:

        5. I, _____________________________, certify that I will not do and have not done anything during this exam to give me an unfair academic advantage.

        6. 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.

        7. 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.

        8. Signature: __________________________________________

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

See advice from previous students here. No need to login, and posts can be anonymous. Please add your own thoughts at the end of the semester! I recommend that you read the Starting Out page.

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:

  1. Come to every class, unless you already understand the material very well and have no questions, and can afford to lose the 5% possible points for in-class clicker use.

  2. Go through the online book chapters. If you are having difficulty, go through them twice. This gives you the preparation to succeed on the lab quizzes. Read the chapters before we discuss them so that you can ask informed questions.

  3. Attend labs, taking quizzes and doing the exercises. If you already have many programming skills, then pair up with someone who needs the help. You will discover new insights when you have to explain things.

  4. Write the programs, working on them 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.

  5. 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.