Home & Syllabus

*** This is for the Spring 2017 semester, not the current semester ***

Welcome to CS 141, Programming Design II, Spring 2017.  (UIC Call # 34447;  Labs Tues: 11am:34448, 12noon:34449, 1pm:34450, 2pm:34451, 3pm:36510, 4pm:38102, 5pm:40102)   

The course syllabus is shown below.  The links shown in the navigation bar at left include the following items:

Syllabus 

General Information

          See advice from previous students here. No need to login, and posts can be anonymous.   (See the advice from older previous students here.) 

See my previous semester course evaluations (still not working as of 1/8/17).

See UIC course grade distributions from previous semesters.

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.  Of this 5%, part (~1/5 or 2/5) will be points coming from your assigned family.  

           You should sit with your family so you can help each other.

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

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, Spring 2017.  Tues 5pm 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 5pm

 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. 

Consider using a tool such as 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 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.

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.