Home & Syllabus

*** This is from Fall '18, not the current semester! ***

Welcome to CS 141, Programming Design II, Fall 2018   

(Lecture 10am: 34657, 1pm: 42636, 3pm: 42032. Labs Tues: 9am:34781, 10am:42643, 11am:42644, 12pm:34782, 1pm:36901, 2pm:42645, 3pm:42646, 4pm:38094. Wed: 8am:42215, 9am:42216)

The course syllabus is shown below.  The Notes & Reference link  shown in the navigation bar at left includes  C Libraries, ASCII table, precedence in C, SSH, and Examples of Code

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 UIC course grade distributions from previous semesters.  (See the Data tab, then Student Data, then Grade Distribution, to take you into the application.)

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%    Zyante Exercises (We have access to portions completed, so no turn in is necessary after completing problems.)

  5%    Lab Quizzes (Most likely through Codio)

  5%    Lab Activities (Must be done in-person in lab 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. 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 board.

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: extra credit). The lowest lab grade will be dropped. Zyante exercises are available on the web and must be completed before class on the posted deadlines. Only on-time submissions will count towards your grade for lab activities, quizzes, and Zyante exercises. In-class and in-lab quizzes may be given right at the beginning of class, so be prompt!

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

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, though the rubric may change from one program to another:

 /* ----------------------------------------------------------- 

    Basic Calculator with + - / * 

    

    Class: CS 141, Fall 2017.  Tues 5pm lab

    System: Windows 7, Qt Creator

    Author: Dale Reed

    

    45 points Grading Rubric for Programming Style

    

        10 Meaningful identifier names

        10 Comments: Has header.  Comments on each block of code

        10 Functional Decomposition

        10 Appropriate data and control structures

         5 Code Layout: Appropriate indentation and blank lines

      Extra Credit (usually up to +10)

      Did not follow naming convention (usually -5)

      Late penalty (usually -30) 

          -----------------------------------------------------------

  */

 

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 must both submit the same program solution, with both of your names on them. 

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 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, Missing Class

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 Zyante scores.  You will not be eligible for any missed clicker points. 

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. 

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

Academic Dishonesty

Any student caught cheating on an exam or program will get a grade of 0 on that assignment and will be dropped a letter grade at the end of the semester.  In addition they will be reported to the university and handled according to the Student Disciplinary Policy.   The same penalty applies if you use someone else's clicker 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 as well. 

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 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 our system picking up program similarities. In recent semesters students have been caught for hiring programmers online and for copying online code. If you can find it online, so can we.  If your program is detected 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 you will be subject to the academic dishonesty penalty.

You may not get help of any kind from anyone else for any part of 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.  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 will be missing class because of a religious holiday then please enter your information on the following form to help me keep track of this:  https://goo.gl/forms/KV6Ar0AL3Mjt6E2Y2.  If you have special circumstances such as a letter of accommodation (LOA) from the UIC Disability office, then before each exam please remind me using bit.ly/uicloa