Syllabus
Welcome to CS 141: Programming Design II (online), Summer 2020.
Please read the following page carefully
Syllabus table Heading link
Instructor | Nasim Mobasheri |
nmobas2 AT uic dot edu | |
Office hours | Online on BlackBoard Collaborate W 1:30 - 4:00 |
Lecture | M W F 10:00 - 11:40 online on Blackboard Collaborate |
Labs | M W 12:00 - 12:50 online on Blackboard Collaborate |
Teaching Assistant | Tanima Chatterjee, Yuwei Cao |
TA Office Hours | Tanima: Tuesday, Friday 11:30 - 1:00 Yuwei: Wednesday, Friday 8:30 - 10 |
Prerequisites | CS 111 & credit/concurrent registration in MATH180. 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. For more information contact the CS Student Affairs Office |
Course materials Heading link
Catalog Description:
Data abstraction and modular design; recursion; lists and stacks; dynamic memory
allocation; file manipulation; programming exercises. Course Information: 3 hours.
Previously listed as CS 102. Extensive computer use required. Credit is not given for
CS 141 if the student has credit for CS 102 or CS 107. Prerequisite(s): CS 109 or CS
111; and credit or concurrent registration in MATH 180. Class Schedule Information: To
be properly registered, students must enroll in one Laboratory-Discussion and one
Lecture-Discussion.
ZyBook:
We will be using an online and interactive textbook this summer. You need to follow these steps:
- Sign in or create an account at: learn.zybooks.com
- Enter the zyBook code: UICCS141MobasheriSummer2020
- Subscribe. A subscription is $63 and will last until one week after the course is
complete.
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.
IDE:
You need to download and install an Integrated Development Environment (IDE) such as CLion. You can directly write code in the file editor within zyBooks, but it does not let you work offline. When it comes to running C programs, different machines and IDEs have different structures, assumptions, and included libraries which may affect your output and test cases. Make sure the programs you are submitting are tested in the grading environment that will be announced by us. JetBrains’ CLion IDE offers CLion development environment free to all students. It works on all machines (Windows/Mac/Linux) and it has a nice debugger.
see https://www.jetbrains.com/student
We will use CLion as our primary IDE, but you are welcome to choose any other IDE that you feel more comfortable with. Here are some suggestions:
If you are a PC user:
If you are mac user:
If you want to work with an online IDE:
For more information please visit the Resources page on the course website.
Course policies Heading link
General Policies
We will be using Blackboard, Gradescope, and Piazza as well as the course website throughout the semester for various proposes. Class materials and announcements will be distributed on Blackboard and the course website.
Blackboard:
We will use Blackboard and in particular Blackboard Collaborate for lecture and lab discussions. All lectures will be recorded and accessible from the “recording” tab in Blackboard Collaborate.
After most lecture sections, there will be a Blackboard quiz that you have to take. These quizzes are part of your final grade and you must submit them in order to receive their corresponding points. You can also view your grades, announcements, and course materials on Blackboard.
Gradescope:
We will use Gradescope to collect and grade programs. If you did not already get an email indicating you have been added to Gradescope, contact me.
Piazza:
We will use Piazza for communication and discussion. You should have gotten an email invitation to join Piazza. If not, sign yourself up piazza.com/uic/summer2020/cs141
Piazza is specifically designed to let you get help quickly and efficiently from classmates, the TA, and me. Do not email questions to us, rather, post your questions on Piazza. Your posts can be anonymous to your classmates, though we can see who posted each message.
Lab Sessions:
Your lab sessions are Monday and Wednesday 12:00 – 12:50 on Blackboard Collaborate. At the beginning of each session, your TAs will explain the lab activities for ~ 5 to 10 minutes, and then you get to work on the lab assignment. You can complete and submit a lab assignment by the end of the day that the lab was held.
Participation/Attendance
Attending the online lecture is not mandatory but is encouraged. The same rule applies to lab sessions. Most lecture sessions are accompanied by zyBook activities and Blackboard quizzes. You have until the end of the day that the lecture was held to submit your quiz and zyBook activities. The same rule applies to lab sessions.
Course Communication Policy
Due to the volume of email we receive daily, we prefer the use of Pizza for all class-related communications. If you have a personal matter you wish to discuss, you can email your professor or one of the TAs. please include “CS141” in the subject of your email. Piazza is the primary site for all class-related discussions and questions. We will monitor it frequently and answer your questions. Before posting a question, please search Piazza as the answer to your question may already be there. Follow the guideline:
- Check other questions on Piazza before you post. You might have a common question that is already answered. There are tags on Piazza that allow you to narrow down related posts.
- Make your posts public. Leave private posts for questions with personal nature or when you need to provide a snippet of your code.
- State your questions clearly. Don’t paste a chunk of code and ask “please fix this.” Try to narrow down your problem.
- Don’t post your entire code. Posts of this nature will be removed immediately. If you need to post your entire code, then make a private post that is visible to staff only.
Disability accommodation Heading link
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.
The University of Illinois at Chicago is committed to maintaining a barrier-free environment so that students with disabilities can fully access programs, courses, services, and activities at UIC. Students with disabilities who require accommodations for access to and/or participation in this course are welcome, but must be registered with the Disability Resource Center (DRC). You may contact DRC at 312-413-2183 (v) or 773-649-4535 (VP/Relay) and consult the following:
Course requirements, methods of evaluation, and grading policies Heading link
Course Grading Criteria
30% Projects
12% Labs
10% Blackboard quiz
10% Zybook activities
10% midterm 1
10% midterm 2
20% Final exam
Grading
In determining the final course grade, the following scale is used:
90% and above = A
80% and above = B
70% and above = C
60% and above = D
below 60% = F
Late Work Policy
Programs must be submitted by midnight of the due date on Gradescope and zyBook. Late programs are accepted up to 24 hours after the deadline with a 15% penalty. Your program must run correctly to receive the full point.
Lab assignments, Blackboard quizzes, and zyBook activities must be completed by midnight of the due date (same day as the lecture/lab session). We will not accept any late submission for them.
Program Grading Criteria
Before submitting your program, test your program against all zyBook test cases. Your program should pass all the tests to get credit for them. We re-run your code when grading. Submit your source code into Gradescope for style points. To earn style points, your program must earn at least 25 points out of the total possible 55 points for program execution. In other words, you only get style points for substantially correct code.
The general grading criteria follows:
Program Grading Criteria Heading link
55% | Passes zyBook tests and manual tests |
45% | Programming style (awarded only if program earns at least 25 points out of 55 for program execution) |
10% Meaningful Identifier Names: Identifier names are meaningful and unambiguous, indicating their purpose. Names should be words separated using capitalization (known as camelCase), such as gradesSum. Short loops of ~ 5 lines can use loop counter variables such as i or j. | |
10% Comments: Every function must have a short description stating the purpose of the function, what it receives as parameters, and what it returns. Each block of code (but not every line) should have a descriptive comment. Comments should be easily identifiable and lined up with the code they are describing. A program should be able to be understood by reading only the comments. Program includes a header at the top (see example below) that has descriptive information. | |
10% Functional Decomposition: A segment of code that appears more than once should be extracted to form a separate function (in C++) or method (in Java). Functions / Methods should be used to organize program ideas and should be no longer than around 50 lines. This may not apply to early programs that don't use functions / methods. | |
10% Appropriate data and control structures: Global variables should be avoided and used only when necessary, with parameters used instead. Appropriate looping and decision structures should be used to make the program clear and efficient. This may not apply to early programs that don't use functions / methods. | |
5% Code Layout: Different nested levels should have different indentation. Indent at least 3 spaces. Spaces or tabs are used consistently and use of braces is consistent. Program has at most one blank line between sections of code, and at most two blank lines between functions. |
Academic Honesty Heading link
All work submitted for grading must be done individually. You cannot work in teams or submit someone else’s work as your own. You cannot offer or receive any kind of unauthorized assistance. Examples of academic dishonesty include but not limited to: transferring programs between students, copying-pasting code from the internet, working in a group on homework assignments, and allowing a tutor, TA, or another individual to write an answer for you. The University’s policy is available here https://dos.uic.edu/community-standards/academic-integrity/
We use an automatic cheating-verification program that is capable of detecting partial logical similarities. Don’t even take the risk. 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.