Home & Syllabus
*** This is from the Fall 2019 semester, not the current semester! ***
Welcome to CS 141, Programming Design II, Fall 2019
Lecture M W F 9am:34657, 10am:42636, 1pm:42032 Labs Mon: 4pm:34780; Tues: 9am:36901, 10am:38094, 11am:39415, 12pm:42215, 1pm:42216, 2pm:42643, 3pm:42644
Read this course syllabus page in detail. Pay careful attention to the various deadlines shown in the course Schedule link in the navigation bar at left. The General Reference link shown in the navigation bar at left includes C Libraries (and local copy), ASCII table, and precedence in C
Syllabus
There are three lecture sections for the course, all in LC F1. (See campus map)
M W F 9:00 - 9:50
M W F 10:00 - 10:50
M W F 1:00 - 1:50
Labs are in SEL 2254 on Mon starting at 4, and also on Tues starting at 9, 10, 11, 12, 1, 2, 3. 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.
General Information
Instructor:
Office:
Phone:
email:
On the Web:
Office Hours:
Prerequisites:
You Need:
Reed.
SEO 917
(312) 413-9478
See above web page
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.
A subscription to an online textbook from Zyante.com.
Follow these steps:
Sign in or create an account at learn.zybooks.com
Enter zyBook code:
UICCS141ReedFall2019
Subscribe. A subscription is $63 and will last until two weeks past the end of the semester.
The syllabus includes chapters and deadlines for the zyBook exercises that should be done interactively as you read. These count as part of your grade.
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.
We will be using iClickers for our classroom response system. These can be purchased at the bookstore or online. Older versions are fine, though you may not use a computer/tablet/phone version (Reef) because of latency issues. Please register your iClicker on Blackboard. We will use clickers starting the first class. If you have not yet gotten your clicker registered, your responses are still stored in my computer and will get associated with your id once you do register your clicker.
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/fall2019/cs141/home
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.
Accounts to create your programs:
We will be using codio.com this semester to write our programs and do lab activities. This is a system that runs through your browser in the cloud, so the experience should be the same for Mac, PC and Linux users.
On the codio.com starting page select the "Join Class" option at the upper-right. You will be prompted to enter a class token, which is: miguel-basic
Alternatively connect to the course using this link. The resulting page will be similar to that shown at right (but with our current semester listed), and will invite you to enter your uic email address.
We will use GradeScope to grade exams. If you did not already get an email indicating you have been added to Gradescope, you may add your self using the Gradescope code MPKR86.
Course Grading Criteria
30% Programs (probably 6 of them, 5 points each)
10% Zylab Exercises (As teachers we have access to what you have done in Zylabs, so no turn in is necessary after completing problems.)
5% Lab Quizzes (Mostly through Blackboard) must be completed in person in lab
5% Lab Activities (Must be done in-person in lab with a partner through Codio)
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.
(See the Data tab, then Student Data, then Grade Distribution, to take you into the application.)
The deadlines for programs and Zyante 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. Lab exercises will be assigned during lab and must be completed in person with a partner during that lab session. 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. Zyante exercises 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 Zyante exercises.
Some of you may not want to attend class, or may not want to attend lab. At the end of the semester your overall (in-lab + in-class) final exam score percentage will count instead of your clickers average if it is higher than your clickers average. This 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.
Program Grading Criteria
Programs must be submitted by midnight on the date listed on the CS 141 class schedule to be considered as on-time. You must create a single program version that passes all the Codio assessments to get credit for them. We may re-run all your tests when grading.
To get programming style points, your program must earn at least 25 points out of the total possible 55 points for program execution.
Late programs will be accepted within a week after the original program deadline, and will have a 30 point (out of 100 points) deduction. You will need to ask your lab grad TA to mark your Codio project as no longer completed if you want to turn it in late, as Codio programming projects will automatically be marked as completed on the original deadline.
For late submissions you additionally will need to turn in a 500-word essay comparing your solution to my posted solution, referring to specific differences and commenting on which is better and why. Failure to include this paper will result in an additional 20 point deduction.
Your late submission can use parts of my solution, however you will be graded on the extent to which you did your own implementation. In other words, 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 a maximum of 70/70.
55% of the score for each program will come from the Codio assessments. The other 45% will come from programming style points, as detailed below. Note that some of the criteria do not apply to early programs (e.g. functional decomposition) since we will not have learned those topics yet.
55%
45%
100
Passes Codio assessments and/or manual tests.
Programming style (awarded only if program earns at least 25 points out of 55 for program execution):
(Why the detailed coding standards? If these seem too explicit, take a look at the Indian Hill (AT&T) version or the Google version.)
Total Points
Each program should include a descriptive header at the top of the first page which must have at least as much information as the following:
/* -----------------------------------------------------------
Program 1: Basic Calculator with + - / *
Class: CS 141, Fall 2019. Tues 5pm lab
System: Codio
Author: Dale Reed
-----------------------------------------------------------
*/
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.
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 or Skype for video conferencing, and TeamViewer for writing code together.
Course Notes
See the Class Notes link on the course web page menu for pdf copies of class notes and copies of code done in class. Videos of class sessions will be available online through Blackboard in semesters where this course is taught in one of the UICast classrooms.
Joining Class Late, Missing Class, Religious Holidays
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 clicker points.
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.
Labs
Instructional labs are generally held once a week, 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 Blackboard in the Quiz section (or using a Google form). 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 written on the board.
~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. Plan on switching 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. 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.
Logistical Details
All critical announcements, changes to assignments, etc. will be announced through Piazza. I'm assuming you will check your email regularly.
You will be given the opportunity to take a make-up exam only in cases of medical or personal emergencies, which must be verified. 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. In 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.
You are responsible for all information (handouts, announcements, notes, etc.) covered during class. You should look at any online copies of notes and ask fellow classmates for missed information, not the instructor or the T.A.
No grades of "Incomplete" will be given for poor performance in the course. An incomplete can only be given if there are extenuating circumstances and you have at least a 'C' average 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, no claims will be considered.
Academic Honesty
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 Dishonesty policy shown below, and that you agree to abide by it.
Academic dishonesty is anything that gives you an unfair academic advantage. 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.
Any student caught in Academic Dishonesty 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 below in the Don't categories, unless specifically allowed by the instructor:
Class:
Do
Talk to people around you during pair-share discussion, and during pair or 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
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
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 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 anything else you want
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.
We use an automatic cheating-verification program that is capable of detecting partial logical similarities. Don't even take the risk. In spite of all these warnings, most semester ~6% of the students fail due to our system picking up program similarities. Security cameras monitor work done in labs, and logs for university log-on activity can be requested when necessary.
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: __________________________________________
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 such as a letter of accommodation (LOA) from the UIC Disability office, then please indicate this to me directly via email along with a copy of your letter, and remind me before each exam of any accommodations needed.
How to Succeed in this Class
See advice from previous students here. No need to login, and posts can be anonymous.
See the Starting Out link in the navigation bar above at left. My 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. For you to succeed my expectation is that you will do the following. Note that 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.
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.
Go through the on-line book chapters. If you are having difficulty go through it 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.
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.
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.
See the teacher and/or TA when you don't understand something and have spent a reasonable time working on it yourself first.