CPSC 225 | Intermediate Programming | Fall 2018 |
You are expected to be familiar with the course policies stated below. Ignorance of a policy is not an excuse for violating a policy or being surprised when it is applied to you, and will not exempt you from its penalties.
On this page:
Communication |
You are expected to regularly check your HWS email and the course web page (especially the schedule page). Assignments, handouts, and other information relevant to the class as a whole will be posted on the course web page. Email may be used in the case of a particularly time-sensitive announcement (e.g. an announcement about an assignment which is due in the next class meeting) or for matters which are only relevant to a few people in the class. |
|||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Classroom Behavior |
You are expected to be on task during class and lab - web surfing, texting, playing games, doing assignments for other courses, etc. are not acceptable. Except in the case of an emergency, leaving the classroom during class is not acceptable. (Take care of any necessary business before or after class!) Also, please do not use headphones during lab - you may miss important announcements to the class about assignments, and it makes it difficult to interact with you about what you are working on. |
|||||||||||||||||||||
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. (Also, some material in the assigned readings may not get covered in class but you are still responsible for that material.) Readings are to be completed for the class period where they are listed on the schedule page. Labs: Lab sessions will be held on Thursdays in the Rosenberg 009 computer lab. 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 or nearly completed during the lab period; anything not completed during lab must be finished outside of class. Labs will be due on Mondays. Programming Assignments: 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 written exams held during a regular lab period. The dates and times of the exams are noted on the course schedule - be sure to consult that! 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:
Engagement: Learning isn't a passive activity where you sit back and watch someone else do things; you need to work with the material by thinking about it, trying to apply it, asking questions about it, and so forth. The engagement grade covers aspects of engagement in the course not otherwise graded: attendance, completion of assigned preparatory work (such as readings), meaningful contributions to class discussions, being on task in lab and in-class activities, and pulling your weight on group assignments. Class engagement may be taken into account when considering borderline final grades, and poor attendance will impact your final grade. 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, and contain the three paragraphs listed will earn full credit. A maximum of four talks (for a total of 1% of the final grade) will be counted for extra credit. |
|||||||||||||||||||||
Programming Rubric |
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:
|
|||||||||||||||||||||
Coding Standards |
Following reasonable conventions is important for readability of your code. The course coding standards specify the particular conventions you should use in this course; not following these standards can result in points lost on assignments. | |||||||||||||||||||||
Attendance |
You are expected to attend and be on time for all class and lab sessions. Attending and participating in class (and especially lab) is an important part of your experience in this course, and students who miss class frequently typically do worse on assignments and exams. In addition, labs are typically small group assignments and missing lab means having to do the task on your own. Also, announcements are made at the beginning of class and late arrivals may miss important information. Up to three absences (whether excused or unexcused) are allowed without penalty, but if you have more than three absences, any unexcused absences will impact your final grade. (For example, if you have two excused and two unexcused absences, the two unexcused absences will lower your final grade. If all four absences are excused, there is no penalty.) It is your responsibility to make sure that you sign the attendance sheet each day; a few slip-ups will be allowed but repeatedly forgetting to sign in may result in the accumulation of unexcused absences. It is also your responsibility to provide an excuse for absences that are to be considered excused. Note that even though there is no direct grade penalty for excused absences, any absence (whether excused or not) means that you miss out on discussions and activities that take place in class. This puts a greater burden on you to catch up and students who miss a lot of class often end up not doing as well in the course even if all of the absences are excused. 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. (Note that providing a reason does not automatically make an absence excused - it must also be one of the reasons listed above.) 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. |
|||||||||||||||||||||
Making Up Work |
You 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, then you need an extension (see below). In the case of an illness or other emergency that causes you to be absent on the day of an exam, you must notify me of the reason for the absence as soon as possible (you can have the dean's office communicate with your professors). It is expected that the exam will be made up promptly. You may not communicate with other students about the exam until you have taken it. |
|||||||||||||||||||||
Late Policy, Extensions, and Rescheduling Exams |
Late work is accepted - labs and programming assignments will be penalized 5% if turned in by the day after the due date, 10% if turned in by the next class period after they are due, 20% if turned in within a week of the due date, and 30% thereafter. In addition, late submissions may not be returned as promptly. Note that while late work is accepted, handing work in late should be a rare occurrence - deadlines are tight (being late on one assignment takes away time from the next) and a habit of late handins will have a significant impact on your grade as well as making subsequent topics harder to master (much of the material is cumulative). Labs are an important opportunity to practice with new material that will be needed for the programming assignments; if not completed on time, you risk falling behind on the programming assignments. No work will be accepted after the end of the Registrar-scheduled final exam time slot unless an incomplete has been granted. Extensions will generally only be granted for the kinds of things that count as excused absences (see the definition under "Attendance" above), and 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 generally only be rescheduled in the case of an excused absence on the exam date. Leaving early for a vacation is specifically not a reason for an excused absence - note the dates of exams before making travel plans. Arrangements for extensions or rescheduled exams must be made sufficiently in advance of the date in question - contact me as soon as you know you'll need an extension or will miss an exam rather than waiting until the last minute! Last-minute requests may be denied. Also, it is your responsibility to make sure there are actual arrangements (a specific new deadline or date) - simply sending an email notification about an upcoming absence does not constitute "arrangements". Extensions/rescheduling will not be granted retroactively - if a last-minute emergency causes you to miss an exam or prevents you from handing an assignment in on time, the make-up policy applies (see "Making Up Work" above). Note that the "extension" in this case will only be for long enough to get the already-completed assignment handed in; if you need more time to complete the assignment, it will be considered late. |
|||||||||||||||||||||
Working Together and Academic Integrity |
The HWS Principle of Academic Integrity governs all of the work completed in this course. Specifically:
To emphasize: "Your own work" (or "your group's own work") means that the ideas and the effort to mold those ideas into a working solution are your own (or your group's). Copying part or all of someone else's solution is expressly prohibited and it is never acceptable to be in possession of someone else's program or solution before you have handed in your own. This includes both computer files and paper copies. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited. All of this should be obvious: using someone else's program "as a guide" to completing your own is plagiarism. Potentially less obvious is the line between getting help (OK) and working with others (not OK). Working together with someone else to produce a solution which you both hand in is not OK, even if you each type it in individually and/or make some modifications afterwards. You may discuss ideas about how to get started and you may get debugging help or discuss why something doesn't seem to be working; you may not work on designing a program or writing code or pseudocode with someone else. Ask before you do something if you are unsure what is OK. It is OK to use other materials (such as reference books or websites) as technical references to learn about an aspect of Java or a data structure. However, looking for and/or copying a solution is not acceptable (even if you make some modifications). See "Plagiarism in Programs and on Problem Sets" below for more information on the difference between a reference and a solution. The purpose of these rules is to make sure that you learn the material so you can solve the next problem instead of getting an answer that only addresses the current problem. A good guide is to make sure that the first attempt on any aspect of a program is on your own (before asking others), and that you incorporate ideas discussed into your solution on your own (away from others). Submitting work which is unreasonably similar to another person's work and/or not being able to explain some part of your solution will result in a minimum penalty of a 0 on the assignment. A second such offense is grounds for failure in the course. Plagiarism offenses may also be referred to the Committee on Standards. There are no exceptions to this policy; ignorance of the policy and desperation ("It was the night before it was due and there wasn't anyone else to ask!") are specifically not excuses for violating the policy. If you are having trouble with the course material, come to the instructor! - it is never advantageous to "borrow" someone else's solution, and the time spent trying to disguise this "borrowing" is far better spent getting help. From the HWS Catalogue: (available online at http://www.hws.edu/catalogue/policies.aspx)
|
|||||||||||||||||||||
Plagiarism in Programs and on Problem Sets |
As with papers, verbatim copying of programs and problem solutions constitutes plagiarism. Also as with papers, plagiarism is not limited to verbatim copying - copying the significant ideas and structure of someone else's program/problem solution also constitutes plagiarism. In this course, working together with someone else to produce a solution which you both hand in also oversteps the allowed collaboration, even if you contributed to producing that solution.
But aren't all programs which solve the same task/solutions to the same
problem pretty much the same, so won't my program/solution look like everyone
else's even if I worked by myself?
Programming/problem solving techniques are often explained via examples -
what's the difference between using an example and "copying the
significant ideas and structure"?
OK, then, so I can't use any examples because that constitutes
plagiarism?!
Using "examples" (as defined above) is generally OK but using "solutions" is not.
There's a fuzzy middle ground here, and I'm still not sure exactly
what is OK and what isn't.
|
|||||||||||||||||||||
Being Successful and Getting Help |
There is a steady schedule of assignments and much of the course material is cumulative - it is important that you review each day's material (after class is a great idea) and promptly address anything that is confusing. It is also important that you budget your time and start on assignments early so that you have time to think about problems and deal with unexpected surprises. Your first resource if you need help with any aspect of the course material should be the instructor - ask questions during class and lab, stop by office hours, send email, or drop by or schedule a meeting. Additional resources include the CS Teaching Fellows, who are available in the Rosenberg 009 computer lab 7-10pm Sun-Thu. Note that they are not specifically hired to support this course, but they should still 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, you are encouraged to check out the Center for Teaching and Learning (CTL):
|
|||||||||||||||||||||
Disability Accommodations |
If you are a student with a disability for which you may need accommodations, you should self-identify, provide appropriate documentation of your disability, and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL). Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/academics/ctl/disability_services.aspx Please direct questions about this process or Disability Services at HWS to Christen Davis, Coordinator of Disability Services, at ctl@hws.edu or x3351. |