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 

General Information

Instructor:

Office:

Phone:

email:

On the Web:

Office Hours:

Prerequisites:

You Need: 

Reed.

SEO 917

(312) 413-9478

reed @ uic.edu

bit.ly/dalereed

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. 

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

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

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

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

Don't

Lab

Do

Don't

Programs

Do

Don't

Exams

        

Do

        Don't

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.