CPSC 329 | Software Development | Fall 2019 |
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 something 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. Note taking on paper is encouraged, as it avoids the distraction of electronic devices and the act of handwriting helps with retention of information. If you choose to use a laptop or other device to take notes, you are encouraged to turn off the wifi and close other applications to reduce the temptation of those distractions. Either way, I recommend that you (only) make note of key ideas and examples during class and then rewrite your notes, filling in other details and relevant information, soon after class. This allows you to pay more attention during class, increases your engagement with the material, and helps you identify what you need to ask questions about. |
Assignments and Evaluation |
Readings and Class Prep: These assignments set the stage for class and are to be completed for the class period where they are listed on the schedule page. Class prep exercises will be graded on a "reasonable effort made" basis and will be factored into the class engagement grade. Labs: Lab sessions will be held on Tuesdays in the Rosenberg 009 computer lab. Labs are an opportunity for hands-on introduction to new material and will typically be completed in pairs. (Note that you are still responsible for all of the material covered by the lab - pair programming is recommended, rather than dividing up the task and working independently.) Labs are intended to be short enough that most, if not all, of the lab can be completed during the lab period with diligent effort. (Anything not completed during lab will need to be finished outside of class.) Labs will generally be due at the start of the lab period one week later, though it is to your advantage to complete them as soon as possible as material may be relevant for a project you are working on. Projects: This is a course about software development, so much of your time will be spent developing software. A series of projects will build on each other, culminating in a significant piece of software. Most of the projects will be group projects, and you will work in several different groups and different sizes of groups over the course of the semester. Final Exam: There will be a final exam/reflection addressing key concepts from the course. The date is on the schedule page; more information about content and format will be announced later in the semester. 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. Teamwork is also an important element of this course, and successful teamwork requires everyone's contributions. The engagement grade covers aspects of engagement in the course not otherwise graded: attendance, completion of assigned preparatory work (readings, class prep assignments), meaningful contributions to class discussions, and being on task in lab and in-class activities. (Aspects of engagement relevant to the projects, such as pulling your weight on projects, will be incorporated into the project grade.) Grades: Grades in this course will be computed as follows:
|
Neatness and Coding Standards |
Work turned in for this course is expected to be easily readable - it should be clear what answers go with which problems, and what those answers are. Unless otherwise specified, both (legibly) handwritten and typed work is acceptable. For code, following reasonable conventions is important for readability. 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 and to be present for the full class period. Labs are typically pair assignments; being late holds up your teammate and missing lab means having to do the task on your own. Attendance in class is important because there is no textbook to help you catch up on missed material, and because not all of the material is black-and-white - discussions with others are valuable in building your ability to make good choices. In addition, announcements are made at the beginning of class and late arrivals may miss important information. Attendance is factored in to the engagement grade. Any unexcused absence from lab and, after three absences of any kind (excused or unexcused), any unexcused absence from lecture will impact your engagement grade. (For example, if you have two excused and two unexcused absences from lecture, the two unexcused absences will lower your engagement 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. In addition, note that 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 regularly miss 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). |
Late Policy, Extensions, and Rescheduling Exams |
Most work will not be accepted late. There are several reasons for this - for class prep exercises, the value of the exercise is to be prepared for class (and they will be discussed immediately after they are due), and for projects, planning your efforts (and how much you take on) so as to meet deadlines even in the case of unexpected surprises is an important component of software development. (In addition, projects build on each other so it is important to complete each one so as to be ready for the next.) It is understood that (very) occasionally it may not be possible to complete a class prep exercise, and missing a couple will not directly impact your grade. The exception is labs, where late work will be penalized 10% per day. Work more than 10 days late will be accepted for grading and feedback, but will no longer earn credit. Labs are an important opportunity to learn how to use new tools and practice with new material that will be needed for the projects; if not completed on time, you risk falling behind on the projects. No work will be accepted after the end of the Registrar-scheduled final exam time slot unless an incomplete has been granted. Because most assignments are group assignments and projects build on one another, it is difficult to accommodate extensions. Groups should plan (and adhere to!) a timeline that gets critical components done early and should adopt practices that allow for flexibility in task completion so that an individual emergency doesn't doom the project; individuals should plan around absences when they are foreseeable and promptly communicate with their group so that tasks can be shifted when absences are unexpected. In the case of an excused absence that affects a significant length of time, see me as soon as possible. Note that leaving early for a vacation, being busy, having a bunch of assignments due at the same time, and computer failures are not considered reasons for extensions - schedule your time carefully, save often, and make backups of your files. Extensions will not be granted retroactively - if a last-minute emergency 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:
For all assignments, 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. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited. Failure to acknowledge help received will generally result in a warning the first time, and point deductions for subsequent offenses. Submitting work which is unreasonably similar to another person's work and/or not being able to explain any 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.
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 lot of new material in this course, and at any point you will potentially have several active assignments: reading and class prep, a lab, and a project. Don't fall behind! It is important that you budget your time so that you can fit all of these things in and get them in on schedule. The primary resources for this course are your group (for labs and projects), other students in the course (when allowed), and the instructor - during lab, during office hours, and dropping by or scheduling a meeting outside of office hours. 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. |