Home & Syllabus
This is not for this semester, but for a previous semester!
Welcome to CS 141, Programming Design II, Fall 2016. (UIC Call # 34657; Labs Tues: 8am:34780, 9am:34781, 10am:34782, 11am:36901, 12noon:38094, 1pm:39415)
The course syllabus is shown below. The links shown in the navigation bar at left include the following items:
Notes & Reference (C Libraries, ASCII table, precedence in C, SSH, Examples of Code)
Programs (includes links to old programs)
Discussion Boards (and advice from previous students)
Syllabus
Course meets: M W F 3:00-3:50 in LC B1. (See campus map)
Labs are in SEL 2254, Tues starting at 8, 9, 10, 11, 12 or 1. We do have lab the first week of class!
General Information
See the advice from previous semester students at: bit.ly/cs141eval
See my previous semester course evaluations.
Course Grading Criteria
30% Programs (probably 6 of them, 5 points each)
5% Zyante Exercises (We have access to portions completed, so no turn in is necessary after completing problems.)
5% CodeLab Exercises (We have access to portions completed, so no turn in is necessary after completing problems.)
5% Lab Quizzes (Most likely on Blackboard, requiring a password to open)
5% Lab Activities (Must be done in-person in lab)
5% In-class iClicker quizzes and 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. The way the curve in this class historically usually works, the most you will likely be able to get is a "C" in the course if you turn in only 3 programs. If your grade is right on the borderline of the next highest grade, I will consider whether or not you were a "good citizen" on the discussion boards.
Quizzes will be given during during the first few minutes of lab, and will be closely based on the exercises from the textbook assigned readings. No makeup quizzes will be given, but the lowest quiz grade will be dropped. Lab exercises will be assigned during lab and must be completed in person during that lab session. Labs are graded on a 3 point scale (0: didn't do it, 1: some effort, 2: average, 3: outstanding). The lowest lab grade will be dropped. CodeLab and Zyante exercises are available on the web and must be completed before 11:59 pm on the posted deadlines. Late submissions will not count towards your grade.
In-class and in-lab quizzes may be given right at the beginning of class, so be prompt!
Program Grading Criteria
Programs are due before 11:59 pm (just before midnight) on the day due unless otherwise stated. Late programs will be accepted within a week after the original program deadline, and will have a 30 point (out of 100 points) deduction. In addition you will need to turn in a paper comparing your solution to my posted solution. 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. Turning in a program consists of turning it in using Blackboard. CS account information to use in logging in on the CS lab machines can be found at go.uic.edu/csaccounts. Please get this information before your first lab.
C++ programs must run correctly in the environment designated for this class to be considered for grading.
Partial credit will be given only on programs that do compile and run substantially according to program requirements (i.e. not just "Hello World" or simple input and output). This is important: You will not be graded on the effort you put into a program, but rather on the final result.
You do not need to turn in a hard copy of your program. I strongly urge you to restrict your typing to an 80 column line length, and to consistently use either tabs or spaces.
Each program will be graded out of 100 points as follows. 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
Runs correctly: conforms to assignment description for input and output, follows instructions given. Make sure to test your program thoroughly.
Programming style, further broken down as follows:
(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:
/* ------------------------------------------------
* Basic Calculator with + - / *
*
* Class: CS 141, Fall 2015. Wed 9am lab.
* System: Windows 7, Qt Creator
* Author: Dale Reed
*
* ToDo: exponentiation is not working for negatives
* -------------------------------------------------
*/
Additionally your program must print out your name, assignment number and name, TA name and lab information. For instance, if your first program assignment was called "Average the Numbers," then when you run your program the first thing that should appear on the screen is something like:
Author: Dale Reed
Lab: Tues 8am
Program: #1, Average the Numbers
Do not modify your program after it has been turned in. In case of a submission problem, the last modification date of your original program can still be verified. If you want to change it, make a copy first. Experience has shown that students who develop their programs on PC's and then port them over sometimes encounter mysterious problems. Plan ahead, since no late programs are accepted.
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 do this 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, you will only turn in one program solution, with both of your names on in.
Course Notes
See the Notes link on the course web page menu for pdf copies of class notes. 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
For students who register for the class after the first day but still within the first two weeks of class, you will be given the class average for work you missed. You must send me an email with your UIN and lab day and an indication of the day when you first attended the class.
How to Succeed in this Class
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.
Do all the Code Lab assignments. This teaches you syntax, freeing you up when programming to think about problem-solving and design issues.
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.
Logistical Details
Make sure that you are on the class email list. I will be sending class email to your UIC email, so if you read your mail somewhere else be sure to forward your email. Please send email to me requesting to be added to the list if you do not receive an email from me by the beginning of the second week of class. I'm assuming students check email every day. All critical announcements, changes to assignments, etc. will be distributed via email. If you register late for the course you will be assigned the class average of all grades which have already been given.
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, call me or leave a note (or phone message) with the department secretary as soon as possible. If you will be out of town when an exam is scheduled, I must be told in advance and may require you to take the exam early. Otherwise, if you miss an exam you will receive 0 points.
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. No extra work or extra credit will be given.
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, justifiable or not.
Be sure to check the course web page for further information, handouts, programming assignment descriptions, and hints.
Academic Dishonesty
Any student caught cheating on an exam or program will automatically fail the course. In addition they will be reported to the university and handled according to the Student Disciplinary Policy. The same penalty would apply if you were to provide audience response input to give someone credit when they are not physically in the classroom. If you work on a program with a partner (pair programming), but have not notified both the TA's and me by email at least one week ahead of time, then this will be considered academic dishonesty and you will fail the course.
When writing programs, you may consult with me or the TA at any stage of your program development. It helps if you bring a current print-out or have a copy available online. You may seek help about the system or the editor from anyone at any time.
To avoid cheating via collaboration, do not show any other classmates your code, and certainly don't send anyone an electronic copy, even of a draft of your program. If a classmate consults you for help after attempting to run his or her program, you may assist in determining why her or his code doesn't work, but don't write it for them based on your own code. Do not lead your classmates into temptation: guard your print-outs. We use an automatic cheating-verification program called MOSS that is capable of detecting partial logical similarities. Don't even take the risk. In a recent class 10% of the students failed due to MOSS picking up program similarities. In recent semesters students have failed the course for hiring programmers online as well. If MOSS detects your program as similar to another, and you then tell me "Oh, we worked on it together," but you did not 1. turn in a single copy with both your names on it, AND 2. you did not notify me at least one week ahead of time, then likewise you will fail the course.
You may not get help of any kind from anyone else for the midterm and final exams. These exams must be exclusively your own work.
Other
Please also refer as needed to the UIC academic calendar, campus disability services policy, all of which apply to students in this class.