|CPSC 225||Intermediate Programming||Spring 2016|
On this page:
|Assignments and Evaluation||
Readings: Readings are the first introduction for most material. There is not a great deal of reading, and it is expected that you will do what is assigned. Some material in the assigned readings may not get covered in class.
Labs: Labs will be small-group exercises to explore, practice, and reinforce ideas from class. Some labs may introduce specific software or packages. Labs should generally be completed during the lab period; anything not completed during lab must be finished outside of class. Labs will be due on Fridays.
Programming Assigments: The programming assignments (along with the final project) constitute the bulk of the out-of-class work for this course. The programming assignments provide an opportunity to work on larger programs, practice going from specifications to a working program, and apply the course material.
Exams: There will be two midterm exams. These will be in-class, written exams. The dates and times of the exams are noted on the syllabus - be sure to consult this schedule before making travel arrangements! More details about each exam will be announced prior to the exam.
Final Project: There will be a final project instead of a final exam. It will be due at the end of the registrar-scheduled final exam time slot. More details about the project will be announced later in the semester.
Final Grades: Final grades will be computed as follows:
Participation: You are expected to participate in class. This does not mean that you have to volunteer for everything, but you should be actively engaged in class - i.e. you are paying attention and contribute meaningfully to the class on a regular basis, and you are on task and contributing to the group during in-class group activities. You should not hesitate to ask questions about the course material, either in class or outside of class via email or office hours - if you remain confused about something, it will make the next topic that much harder. Class participation will be taken into account when considering borderline final grades.
Extra Credit: Some extra credit opportunities may be available on programming assignments and the final project. Another avenue for extra credit is attending colloquium talks (see below). If you are interested in extra credit, take advantage of these opportunities!
Talks: The Math/CS Department sponsors a number of colloquium talks from faculty, alumni, and visitors during the semester. These talks are a great way to find out about a variety of topics in the fields of mathematics and computer science. You can earn extra credit for attending talks relevant to computer science - this includes computer-science-themed math/CS colloquium talks, as well as any other talk given on campus that is relevant to computer science. (Feel free to suggest talks that might qualify.) To get credit for attending a talk, you must be present at the talk and must submit a three-paragraph writeup of the talk: one paragraph summarizing the talk, one paragraph discussing what you learned from the talk, and one paragraph explaining why the talk is relevant to computer science. Writeups are due within one week of the talk. Writeups which are clearly written, substantive, contain the three paragraphs listed, and make a strong case for the relevance of the talk to the course will earn full credit. A maximum of four talks (for a total of 1% of the final grade) will be counted for extra credit.
You are expected to attend and be on time for all class and lab sessions, and it is your responsibility to make sure that you sign the attendance sheet each day. Late arrivals or early departures may be marked as absent.
Attending and participating in class (and especially lab) is an important part of your experience in this course. For that reason, if you have more than three absences (whether excused or unexcused) in class and/or lab, your final grade will be lowered by 3.3% (1/3 of a letter grade) per unexcused absence. More than seven absences (whether excused or unexcused) is grounds for failure in the course - see me as soon as possible if a major illness or emergency means that you will miss multiple days of class in a row.
Excused absences include absences due to sports competitions, official Colleges activities such as musical performances or debate competitions, academically-related events such as attending a conference, religious observances, illness, or personal or family emergencies. A reason must be provided in order for such an absence to be counted as an excused absence.
Missing class for other reasons - such as being too busy, oversleeping, or leaving early for a vacation - is considered to be an unexcused absence. Any absence for which no reason is provided is automatically considered to be unexcused.
|Late Policy, Extensions, and Rescheduling Exams||
If something comes up and you can't get an assignment completed on time, you may turn it in late for reduced credit. Labs and programming assignments will be penalized 5% if turned in by midnight on the due date and 10% per day or part of day thereafter up to a maximum deduction of 40%. Getting things in on time is best, but late is better than never!
Extensions will only be granted for the kinds of things that count as excused absences, and generally only if a significant portion of the time allocated for the assignment is affected. If you miss lab due to an excused absence, you may request an extension allowing you to turn in the lab by the start of the next lab period without penalty. (This is expected to be a rare occurrence, and repeat requests may be denied.) Note that leaving early for a vacation, being busy, or having a bunch of assignments due at the same time are not considered reasons for extensions. Save often and make backups of your files - computer failures do occur and are generally not grounds for an extension. Similarly, exams can only be rescheduled if you will have an excused absence on that day.
Arrangements for extensions or rescheduled exams must be made as far in advance of the deadline or exam date as is feasible - don't wait until the day before a team trip which has been scheduled for weeks to begin to make arrangements! In addition, it is the student's responsibility to ensure that there are actual arrangements in place - simply sending an email notification about an upcoming absence does not constitute "arrangements".
No work will be accepted after the end of the Registrar-scheduled final exam time slot.
|Making Up Work||
Students are responsible for acquiring any notes, handouts, assignments, and other material missed as the result of an absence, whether excused or unexcused. This should be done promptly to avoid falling behind.
Every effort should be made to hand assignments in on time, even if you are absent from class that day. If a last-minute emergency prevents you from handing in completed work on time, the assignment will be accepted late without penalty only if arrangements are made as soon as possible to get the assignment handed in. If you need more time to complete the assignment, arrangements for an extension must generally be made in advance of the deadline - start on assignments early!
Exams can only be made up if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). (For foreseeable excused absences, such as a scheduled sports competition, arrangements for rescheduling the exam must be made in advance.) In addition, documentation from an appropriate person (such as a dean) is required to validate the excuse.
Following reasonable conventions is important for readability of your code. The course coding standards specify the particular conventions you should use in this course. You will be graded on how well your programs adhere to these standards.
Programs will be assessed on both functionality (does the program run, and does it do what it should?) and style (which includes readability, commenting, clarity, and design). Specific points I will be looking for:
Programming can be a lot of fun (and it's great to be able to point to something you created), but it can also be challenging to learn. Here are a few tips:
If you are having trouble with the course material or get stuck on a problem you can't figure out how to solve, don't just ignore it! The course material is cumulative, and skipping a difficult topic will make it harder to be successful with the next.
Your first resource should be the instructor - ask questions during class and lab, stop by office hours, send email, or drop by or schedule a meeting.
CS Teaching Fellows are available 7-10pm Sun-Thu; they are not specifically hired to support this course, but should be able to help you with debugging or thinking through logic. Note that assignment-specific questions are best directed to the instructor.
For more general help, such as with writing, study skills, or time management, the Center for Teaching and Learning (CTL) also has resources to help you. You can talk with me about these resources, visit the CTL office on the 2nd floor of the library to discuss options with the staff, or visit the CTL website. Of most relevance to this course is the Study Mentors program. This program is especially valuable to students just starting college or adjusting to the demands of their choice of major, but all students can benefit. Study Mentors engage directly with each student in the process of adjusting to new academic demands: they help you find the time you need to engage with both your academic and co-curricular activities, accomplish the tasks in front of you, and enhance your reading and study time. Study Mentors may be especially important for those of you who are involved in many activities; work on or off campus; are studying for Teaching Certification, graduate school exams, or prepping for fellowships; or who have one or more unusually demanding courses on your schedule. To meet with a Study Mentor, one option is to go to the TutorTrac link provided on the CTL webpage and make an appointment. You can also contact Ingrid Keenan, x3832, firstname.lastname@example.org, or drop in at the CTL office on the 2nd floor of the library.