| CPS 210 Introduction to Computer Systems (Duke) | |||||||
|
|||||||
Communication. The course schedule with all due dates and exam dates is posted on the course website at the start of the semester. We expect few if any changes after the Drop/Add period. Course announcements are on the Web message box and/or by e-mail via Sakai or DukeHub and the Ed forum. You can get help through the Ed forum, weekly discussion sections, and posted office hours for all teaching staff. Come to office hours! We are here for you. You can help us help you by taking care to communicate with clarity and precision.
Workload and exams. Assigned work includes a short lab per lecture, due each Wednesday, and C programming projects due on certain Thursdays (Tuesdays after Ian) roughly every two weeks on average. Readings from the CS:APP3e textbook and other sources are posted for each lecture on the schedule. Exams include pre-class Sakai check-in quizzes for each lecture, two in-class midterm exams, and an in-class concurrency quiz at the end. There is no final exam.
Attendance. We expect you to attend and engage actively. We record attendance for discussion sections, which may affect your grade. We do not record attendance at lectures, but there is a check-in quiz on Sakai due before each lecture.
Free passes. You are granted a certain number of free passes for discussion absences or missing quizzes or labs. You may use your passes due to illness (e.g., filing an incapacitation form) or late add, or for any reason or no reason, without penalty. You do not need an excuse. See below for the specifics. Missing grade items not covered by a free pass receive a zero. If you need further accommodation after consuming your free passes, please submit a form to request one in advance. Exceptions require a Dean's excuse or incapacitation form.
Grading. Your grade is determined from your scores on the assigned work and exams, weighted 50/50. In general: all labs have equal weight, all projects have equal weight, project work has equal weight with lab work, the midterms have equal weight, and exams are weighted equally with assigned work. Your composite work score includes participation in discussion sections. Consistent with these principles, the overall grade breakdown is roughly: 20% labs, 20% projects, 20% midterm1, 20% midterm2, 5% pre-class quizzes, 5% concurrency quiz, 5% discussion, and 5% added weight. We derive the weight from the other score elements according to a formula that is favorable to you to emphasize your strengths. We map the total scores to letter grades according to cutoffs drawn "by thumb" at the end of the semester. Options for extra credit may improve your final letter grade. There is no "curve" to assign anyone a weak grade by algorithm or to penalize anyone for someone else's credit or success.
Sakai quizzes. There is one Sakai check-in quiz due before each lecture. Each quiz has multiple-choice questions to test concepts in the reading assigned for the corresponding lecture. Quizzes open on Sakai one week prior to the class, and submissions close at the start of class. You are allowed three attempts for each quiz. You have four free passes for quizzes: the composite quiz score drops your lowest four quizzes.
Programming exercises: labs and projects. Labs and projects use the C programming language on Linux systems hosted by Duke's Containers service. See the setup directions (getting started) in the course repo. Numbered labs and projects are in corresponding folders of the course repo. Directions for each lab/project are in its folder's readme markdown file. Please study the directions and follow them carefully. Use the CS GitLab web interface to view the directions and to fork each lab or project folder and submit it to Gradescope for scoring. See the calendar for their deadlines. The penalty for late labs and projects is 10%, increasing by 10% for each 24 hours after deadline.
The labs. The labs are short hands-on tasks (1-3 hours) done solo to apply and reinforce concepts from the readings and to prepare you for the projects. Labs are due each Wednesday for each lecture of the prior week (usually two). Each lab has a required portion and an optional extra credit portion. You are required to submit at least the required portion. You have three free passes for the labs.
The projects. There are seven programming projects done solo or in pairs. Projects are due about once every two weeks on average. Each project builds on concepts and skills obtained from lecture, readings, and labs. Please follow posted directions for team submits. Certain projects are customized per student or team: please follow directions with care.
Discussion sections. Our outstanding UTAs lead the discussion section meetings on Mondays. Please be kind and treat UTAs with respect and gratitude. The discussions are designed as dedicated help time for the labs due in that week. You should start work on both labs prior to your discussion section meeting. UTAs may also provide assistance with projects at the meetings as time allows. If you submit the labs early you may file a form to be excused from the week's discussion. Additionally, you have two free passes for the discussions.
Assistance. Teaching staff are available to assist you via Ed and posted office hours. We want to help you and we encourage you to ask questions and visit office hours. Please be respectful of staff time. Start early, seek help early, and do not expect extra time beyond the schedule. We expect you to make a good faith effort to solve problems yourself before seeking help. Study the directions and other resources first. Keep up with the Ed board and check to see if your question is already answered. If demand is high, we use a queuing system and other tools to allocate time. In that case, we may ask you to write down the steps you have already taken before receiving help. If a TA refuses to help you, please respect their decision and raise the issue with the instructor if you feel you are treated unfairly.
Regrading. Regrading requests (for labs, projects, quizzes, exams) must be submitted within one week from the release of that grade.
Collaboration policy for CPS 210. We encourage you to discuss the labs and projects with other students and help one another, provided that you do not share or receive code. Do not incorporate code you find on the Internet or from paper archives, students who took the class previous semesters, or other sources. The labs are to be completed solo. Submit only your own code. Do not share any code or receive code from another source. For the projects, you may work solo or collaboratively in pairs. The rules for projects are the same as for the labs, except that you may share code with at most one other student (your one team member) for each project. It is not allowable to give or receive assistance from any source during a quiz or exam unless the instructor specifies an exception. Any violation of this collaboration policy is reported as a potential case of academic misconduct.
The line between allowable assistance and code sharing is a fine one. For the programming work, you may discuss relevant requirements, strategy, concepts, and debugging with others in the class, or give or receive help with syntax, parameter order for functions, general programming and debugging, etc. You may benefit from any assistance offered by UTAs and other teaching staff in discussions sections or office hours. However, assistance with low-level details from any other person may cross the line. Examples include, but are not limited to: description of general structure of code, pseudo-code, specific lines of code or steps to solve a problem, line by line help, etc.
For each lab and project that you submit, please create and submit a text file (called statement.txt) listing the nature and sources of any assistance your received, and anything else you want to tell us. For projects, please summarize the nature of any team collaboration in your statement.
Staying safe and healthy. Let's all work together to stay safe and healthy. Please treat teaching staff and other students with kindness and respect. Keep your remarks on the message board respectful. We will disable anonymous posting if we see any threatening or disruptive posts. Please monitor and comply with Duke mandates for precautions against infection. Let us know if you have concerns we can address regarding your safety or health. Please know that we are concerned for you. We understand that you may be facing negative reactions to stress and pressure, other personal challenges, or just the burdens of managing your life and future. Be mindful of your needs for sleep, exercise, proper food, recreation, social connection, and constructive engagement with your problems. We encourage you to take advantage of Duke resources for wellness and mental health. Ask for help when you need it.