CS 159 - C Programming, Spring 2021

Residential and Distance Learning Offerings - [3 credit hours]

Course Staff

 Fully on-line section – W. Crum  T 1:30pm lecture – M. Crowe
 Who is your instructor? See Brightspace.
 Contact your instructor by e-mail only from your Purdue University account. Administrative concerns will be handled via e-mail, assistance related to course content will be addressed on Campuswire.

 M 8:30am lecture – W. Crum  W 9:30am lecture – G. McFall
 M and W 1:30pm lecture – CL50 224 – X. Liu
 M and W 1:30pm lecture – EE 129 – R. Tahboub

TA Office Hours

The lab instructors and graders of CS 159 will be monitoring BoilerQ and Campuswire to provide assistance to students at the times indicated on Brightspace. Lab instructors will also monitor these platforms during their lab sections with the expectation that they prioritize assisting the students enrolled in their lab section.

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
6:00pm – 9:00pm
11:30am – 3:20pm
4:00pm – 9:00pm
12:30pm – 3:20pm
4:30pm – 9:00pm
6:00pm – 9:00pm
12:30pm – 3:20pm
4:30pm – 5:20pm
6:30pm – 9:00pm
11:30am – 9:00pm

Course Motivation and Objectives

CS 159 introduces the tools of software development that have become essential for innovative and creative problem solving in science and engineering. Educators and employers agree that it is important for future scientific and engineering professionals to be able to function as part of a technical team and develop the ability to communicate complex technical concepts. CS 159 will require students to work in assigned teams for lab assignments. Educational research informs us that structured collaboration leads to increased learning gains for all students participating in an introductory programming course. Collaboration is a requirement of the course. You will be assigned to your teams.

CS 159 explores the concepts of programming using a language and development environment that are new to most students. One objective of the course is to help students recognize how programming concepts are common to various languages to which you are exposed in your undergraduate education and how those concepts can be used to solve a problem.

Course Prerequisites and Preparation

CS 159 is an introductory programming course without an official prerequisite, but rather assumes mathematical and physical science knowledge and sophistication typical of an engineering or science student.

The University expects students to invest 6-9 hours per week in preparation for a three credit hour course. The key to success in this course requires viewing lectures, active participation in lab, preparation and regular review of course materials, and planning to start and complete all assignments well in advance of the due date. The most successful students in previous offerings of CS 159 report habits such as re-watching lectures, reading the text, participating in online discussions, and daily code writing that goes beyond the minimum of completing assignments.

Course Required Materials

●  Computer Science, A Structured Programming Approach Using C, Forouzan and Gilberg, THIRD EDITION, ISBN: 0-534-49132-4

○  An e-book alternative is available (Cengage Unlimited): https://www.cengage.com/shop/isbn/9781337907651

●  Programming Applications for Engineers Course Packet (Spring 2021 edition)

○  A physical copy of this packet is available only in the local bookstores. A series of PDFs will be made available via Brightspace at no cost.

Supplemental Instruction

There are Supplemental Instruction (SI) student sessions available for this course. These student groups are open to anyone enrolled in this course who would like to stay current with the course material and understand it better. Participation in these sessions is voluntary, but for the maximum benefit you should participate regularly. The schedule for the study sessions can be found on-line: http://www.purdue.edu/si.

Students attending these interactive sessions will find themselves working with peers as they compare notes, demonstrate and discuss relevant problems and important concepts, and share study and test-taking strategies.

●  Students are asked to have their lecture notes, textbook, and be prepared to participate with others during these sessions. SI leaders are undergraduate students who have previously been very successful in the course and model their strategies for success to current students. Every session will cover new material!

Learning Resources

●  All relevant class information, updates, and announcements will be available on the Brightspace site https://purdue.brightspace.com/.

●  Lectures will be recorded and posted on Brightspace. There is no specific requirement for students to be on-line at a given time. The schedule of topics is presented below.

CS 159 Lecture Schedule
Chapters refer to the Forouzan and Gilberg text
Week of
January 18
January 25
February 1
February 8
February 15
February 22
March 1
March 8
Lecture
Intro and Chapter 1
Chapter 2
Chapter 3
Chapter 3
Chapter 4
Chapter 4
Chapter 5
Chapter 5
Week of
March 15
March 22
March 29
April 5
April 12
April 19
April 26
May 3
Lecture
Chapter 6
Chapter 6
Chapter 8
Chapter 8
Chapter 9/10
Chapter 11
Chapter 7

●  Campuswire (campuswire.com) is used as a moderated discussion board on which you can present questions about course material to be answered by course staff members and fellow students. Concerns regarding a specific solution you are developing to an assignment must be made via BoilerQ (courses.cs.purdue.edu/queue) during active office hours or a private Campuswire “Post to instructors and TAs” if real-time assistance is not needed.

Other Technology Requirements

●  Reliable High-Speed Internet Connection. It is expected that you have a reliable and readily available Internet connection. Assignments will be due at a high frequency and many will require collaboration with partners who are not physically in the same location or available at the same time as you. This will require regular (perhaps exclusively) electronic communication.

●  Access to Purdue's Virtual Private Network service. https://www.itap.purdue.edu/connections/vpn/

●  Ability for your computer hardware and Internet connection to support the use of the Respondus LockDown Browser and Respondus Monitor.

●  Obtain terminal (secure shell) software that will allow you to connect remotely to the server that we will use this semester to program and submit work for grading. Most students who use the Windows operating system will download and install PuTTY. Mac and Linux users already have this necessary software.

Lectures, Recordings, and Attendance

All lectures will be released weekly on Thursdays. Students selecting the residential option should watch the recorded lectures before coming to the weekly lecture. In the weekly lecture we will review selected content from the recordings, provide additional examples, and solve problems together.

Residential students will have a single weekly lecture listed on their schedule and to improve social distancing each student should attend only their official lecture section. The lecture section you are to attend is the same as every student in your lab section.

Students in the distance only section of CS 159 will have access to the same recorded lectures as well as the opportunity to join some of the live lectures remotely. The in-person lectures will always be captured and made available for viewing.

Residential Lab Attendance

Every student enrolled in a residential section has a physical lab on their schedule. Each lab section is 50 minutes in length and will be supported by a teaching assistant. This time is for you and the members of your collaborative lab team to work in a supervised environment if you are comfortable in doing so. Otherwise, consider this time as one in which all members of your collaborative lab team are available to meet on-line. Your lab instructor will prioritize helping students present in lab and on-line from your section during this time.

Residential SYNC ONLINE Time

All students in the residential offering have two 50 minute times reserved for CS 159. Teaching assistants will be available at these times to provide help to collaborative lab teams. All students in the same lab section have this time available in their weekly schedule. This time may be used as a regular reservation in your schedule to review lecture recordings.

Residential Lecture and Lab Attendance Expectations

The Protect Purdue Plan, which includes the Protect Purdue Pledge, is a campus policy and as such, all members of the Purdue community must comply with the required health and safety guidelines. Required behaviors in this class include: staying home and contacting the Protect Purdue Health Center (496-INFO) if you feel ill or know you have been exposed to the virus, wearing a mask in classrooms and campus buildings at all times, disinfecting desk/workspace prior to and after use, maintaining proper social distancing with peers and instructors, refraining from moving furniture, avoiding shared use of personal items, maintaining robust hygiene prior to, during and after class, and following all safety directions from the instructor.

Students who are not engaging in these behaviors will be offered the opportunity to comply. If non-compliance continues, possible results include instructors asking the student to leave class and instructors dismissing the whole class. Students who do not comply with the required health behaviors are violating the University Code of Conduct and will be reported to the Dean of Students Office with sanctions ranging from educational requirements to dismissal from the university.

Any student who has substantial reason to believe that another person in a campus room is threatening the safety of others by not complying may leave without consequence. The student is encouraged to report the behavior to and discuss next steps with their instructor. Students also have the option of reporting the behavior to the Office of the Student Rights and Responsibilities. See also Purdue University Bill of Student Rights.

Distance Learning Section ASYNC ONLINE Lab Time

Students enrolled in the fully on-line section will notice an additional section for lab at a time to be announced (TBA). These days and times will be determined based on the location of the students in the course. A teaching assistant will be available during these two hour periods to discuss current assignments and to provide support for students and groups needing help with programming assignments. The lab time will be common to all members in the same collaborative lab team and should be viewed as a weekly opportunity to work together on current lab assignments knowing that real-time assistance is available.

Grading

Assignment
Homework
Lab Tasks
Lab Exams
First Midterm Exam
Second Midterm Exam
Weekly Quizzes
Total Possible:
Points
70
110
60
75
75
110
500

●  At no time during the semester will it be speculated if this will be done or how much any given cutoff will be lowered. You should have no expectation that all cutoffs if moved will be moved by an equal amount.

●  The use of plus (+) and minus (-) additions to a grade will be considered for those individual who are very close to, but fall short of, one of the posted minimum scores.

Grades

Grade
A
B
C
D
Points Required
425
375
325
275

The instructor reserves the right to lower the minimum score required for each letter grade. If such a move is made, it will not be announced until after the final exam.

Assignments

Homework Assignments (7 total, 10 points each) 

 The homework assignments are individual efforts designed to give you the opportunity to solve problems on your own without the assistance of other students.
 All assignments will be posted on Brightspace 10-12 days before they are due.
 Please review the course policies as they relate to academic integrity found later in this document.
Homework Assignment
Due at 11pm on
1
February 1
2
February 15
3
March 1
4
March 15
5
March 29
6
April 12
7
April 26

Lab Tasks (11 total, 10 points each):

Lab assignments are to be completed collaboratively in your assigned lab groups and each of these lab programming assignments will be due on Fridays at 11:00pm and released the prior Thursday (eight days prior).

●  Collaborative groups are expected to communicate who will submit the assignment, when the assignment will be submitted, and how progress will be confirmed with all participating group members.

●  Setting expectations for every member of the group will improve the likelihood that a complete assignment will be submitted.

●  Lab partners failing to participate and contribute to the satisfaction of all group members will not receive credit for the lab assignment.

●  Lab teams may be reassigned during the semester. Enrollment and participation changes may warrant additional changes.

Lab Exams (3 total, 20 points each):

Lab exams will be individual programming assignments that may build on a previously assigned programming problem. Students may reference their previously developed code including that for a collaborative lab. Assistance is not provided by course staff related to the solution but questions regarding the understanding of the problem may be asked. Proctoring will not be required, but similarity measurements will be made on all submissions to detect potential issues of academic integrity.

Exams (two midterm exams, each worth 75 points)

Exams will be individual assessments of your knowledge. Exams will consist of multiple-choice problems covering programming concepts, best programming practices, lab and homework assignments, and the interpretation of code.

Midterm Exam #1
Midterm Exam #2
Notes on Proctoring Requirements:
●  Camera, microphone, and high-speed Internet connection.
●  Respondus Lockdown Browser with Monitor
 Date: Tuesday March 9
 Time: 12:00am – 11:59pm
 Date: Tuesday April 20
 Time: 12:00am – 11:59pm

Weekly Quizzes (11 total, 10 points each)

At the end of every week (Fridays at 11:00pm), there will be due an individual assessment of your knowledge related to the topics introduced in lecture and implemented in the most recent assignments. Knowledge of course standards and good programming practices will be evaluated throughout the semester.

●  The best way to prepare for quizzes is to watch lecture recordings and to actively participate with your team during the process of solving the lab, including contributing to both the written problems and the development of the programming problem solution.

Programming Assignment and Quiz Schedule

All assignments due at 11:00pm (time local to Purdue University campus) on date listed below.
Week of
January 18
January 25
February 1
February 8
February 15
February 22
March 1
March 8
Monday


HW #1

HW #2

HW #3

Friday

Lab #1 + Quiz #1
Lab #2 + Quiz #2
Lab #3 + Quiz #3
Lab Exam #1
Lab #4 + Quiz #4
Lab #5 + Quiz #5
Lab #6 + Quiz #6
Week of
March 15
March 22
March 29
April 5
April 12
April 19
April 26
May 3
Monday
HW #4

HW #5

HW #6

HW #7

Friday
Lab Exam #2
Lab #7 + Quiz #7
Lab #8 + Quiz #8
Lab #9 + Quiz #9
Lab Exam #3
Lab #10 + Quiz #10
Lab #11 + Quiz #11

Grading Expectations and Policies

Our expectation of your grader is that he/she grades your assignment in a timely manner and provides you with adequate feedback for improvement. If you feel this is not the case, please address your concern to your instructor of the course. Typically, your grader should be returning assignments 4-6 days after a given assignment is due.

To request a re-grade on any assignment, you must make your request to your instructor via e-mail. You have five days to appeal any grade from the day the assignment is returned to you. After that period, the grades are frozen and no appeal will be considered. A re-grade is not a second chance to complete an assignment, neither is it a means to challenge assignment requirements, course policies, or programming and documentation standards.

A re-grade request must include the following:

1.  A copy of the original graded assignment that was returned to you (if applicable).

2.  An attached reason why you believe a re-grade is warranted.

Attendance and Absences

Only documented and serious hardships will be considered for any missed work.

If you have documentation of what you consider to be such a hardship then you must contact your instructor in a timely manner via e-mail when you are able to resume participating in class. Any student who knows in advance of an absence must make a request for consideration one week prior to the planned absence.

●  University policies on absence and absence reporting are available from the Office of the Dean of Students: http://www.purdue.edu/studentregulations/regulations_procedures/classes.html

●  Do not expect assignment deadlines or exam dates to be altered for reason of personal travel.

●  Make-up requests for reasons of illness MUST be accompanied by documentation from a medical professional stating the dates you were under their care and the date you were cleared to return to school/work.

Students should stay home and contact the Protect Purdue Health Center (496-INFO) if they feel ill, have any symptoms associated with COVID-19, or suspect they have been exposed to the virus. In the current context of COVID-19, inperson attendance will not be a factor in the final grades. If you become quarantined or isolated at any point in time during the semester, in addition to support from the Protect Purdue Health Center, you will also have access to an Academic Case Manager who can provide you academic support during this time. Your Academic Case Manager can be reached at [email protected] and will provide you with general guidelines/resources around communicating with your instructors, be available for academic support, and offer suggestions for how to be successful when learning remotely. Importantly, if you find yourself too sick to progress in the course, notify your academic case manager and notify your instructor. We will make arrangements based on your particular situation. The Office of the Dean of Students ([email protected]) is always available to support you should this situation occur.

Important Assignment Guidelines

All assignments must comply with the programming and documentation standards of the course. Programs that execute and meet minimum assignment requirements but are not logically correct or complete may be considered for partial credit.

To receive full credit, your program must (1) produce correct results, (2) be well-designed, (3) make efficient use of the limited resources of the computer, (4) follow assignment requirements, and (5) adhere to course programming and documentation standards.

An assignment that is not submitted as expected cannot be considered for a grade. Only work submitted correctly prior to the assignment deadline can be considered for grading. Late work is not accepted.

Demand for resources and course staff will increase as an assignment deadline nears. Waiting until the last minute to work on your programming assignments is discouraged! Course policy is NOT to extend deadlines unless campus resources (not your local ISP) are unavailable for an extended period near the deadline for an assignment.

You are responsible for understanding how to use the technology utilized by the course, this includes but is not limited to UNIX and related course tools such as the assignment submission script.

Be sure your account is set-up correctly as outlined in the account configuration exercise at the start of the semester.

Planning to submit work early will allow sufficient time to seek assistance should you experience any difficulties submitting an assignment.

Academic Integrity

A very detailed set of criteria that is enforced rigorously related to academic integrity is applicable to CS 159. The consequences for violating course policies are serious.

You are encouraged to discuss any CS 159 topic including high-level ideas about how to approach an assignment. But, under no circumstances will exchange of, or shared access to, code via written or electronic means be permitted between teams for collaborative assignments or individuals for individual assignments.

It is considered dishonest either to read another solution or to provide anyone with access to your work (or that of another student). Be mindful when working on code with others on individual assignments as this is discouraged.

Why enforce academic integrity? Academic integrity violations amount to theft. Theft of the work of the individual who developed the solution, theft of that individual's time, and theft of the instructor's time to conduct an inquiry into such matters. It amounts to theft from every student who has come to Purdue University, made a significant financial investment in their education, and has the expectation that their degree will be valued by employers and other academic institutions.

When is it no longer acceptable to discuss an assignment with another student or someone not from my group?

Discussions with peers are most appropriate during the early phases of solution development. Once you begin to design and implement (write code) your solution you should be referencing course staff members exclusively for assistance.

Working closely with another student on a homework assignment may result in highly similar work due to collaboration. Collaboration may not have been the intended approach to solving the problem but the end result of working closely with others for extended periods of time.

Every student is responsible for protecting their own work. Do not make the assumption that someone in your close circle of friends would not take advantage of knowing your password, having access to your computer, or taking a picture of your work when left on an unattended machine. You are responsible for such events that leave your work unprotected.

Many free on-line compilers, collaborative editors, and file depositories will store your work and leave it publicly visible unless you pay for their upgraded services. Please understand the policies of any such service before you make use of them. See the note above regarding your responsibility to protect your work.

Do not make the mistake of thinking that superficial changes in a program will avoid detection. If you are unable to complete the work yourself, it is unlikely that you will succeed in disguising the work of another as your own. We are adamant that violations in any form will not be tolerated. Even the most trivial assignment is better not done than if you violate course integrity policies to complete it.

As easy as it is to share an electronic copy of a file, to gain access to a file through account sharing, or seeking assistance from the Internet, it is just as easy to analyze and detect such sharing as it results in similar efforts being submitted.

Internet forums, including premium services that advertise assistance in college courses, are monitored by course staff members. Any relevant code found is included with student submissions to test for similarity. Searching for and using solutions to assignments, requesting assistance on assignments, and the posting of assignments in a venue such as these is a violation of course academic integrity policies and potentially violations of University copyright.

Assume that every final submission you make during the semester will be analyzed by at least one software similarity service. These services will measure the percentage of similarity between your solution and those submitted by others in the course. Additionally, these services indicate the number of lines matched among submissions.You will be solving problems this semester that have no unique solution and your solution is expected to be uniquely yours.