CPSC 329 | Software Development | Fall 2020 |
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 |
All course information, materials, and announcements will be posted on the course webpage and/or Canvas. You are expected to check Canvas and the schedule page regularly. Individual communication will take place via email. You are expected to check your HWS email account regularly. |
---|---|
Conduct |
As with any course, you are expected to be on time prepared to engage in the day's activities for both class and lab sessions. Labs and class sessions will often involve group activities, and being late or unprepared impacts others. During class/lab, you are expected to be present and on task for the whole period - web surfing, texting, playing games, doing assignments for other courses, etc are not acceptable, nor is leaving during the session (absent an emergency). (Take care of any necessary business before or after class!) However, meeting and interacting online brings some additional considerations. Many distractions are present on a computer; you should turn off email and other notifications and close applications that are not needed for class in order to reduce the temptation of those distractions. Please keep your video on to aid in conversation and maintaining a sense of community, and be aware of the impact of your environment on others - if there is noise or activity in your environment, please mute yourself when you aren't speaking so that the class is not interrupted. Additionally, if there are others around, you are encouraged to use headphones to avoid bothering them. This course will use Zoom. Please make sure that you have Zoom installed and that you are familiar with using it. You should also make sure to join each session early enough to make sure that your speaker, microphone, and camera are working properly. (The ability to troubleshoot individual connections during class time is limited.) Keep speakers away from microphones to avoid feedback. During class/lab, please have the Zoom chat open. This course and its materials are limited to officially enrolled students. Do not share the Zoom link with others or post it in a public place. In addition, Zoom classes may not be recorded or distributed by anyone other than the instructor. Materials posted on Canvas are likewise not to be distributed without instructor permission. |
Technology Failures |
There may well be technological glitches at some point during the semester. In general, use the Zoom chat as a backup form of communication in case of audio/video problems during Zoom sessions and email if you can't access Zoom or it is outside of class time. If there are problems during class (audio/video issues with Zoom, Zoom disconnects, your computer crashes, the network goes down, etc), try to get reconnected as soon as possible. (For audio/video issues, try quitting and restarting Zoom, then try rebooting your computer if that doesn't work.) If the issue can't be resolved reasonably promptly, use backup communication methods to communicate your problem as soon as you are able to (though note that the ability to troubleshoot individual issues during class time is limited - test things ahead of time so that you have a working setup; email/come to office hours if you need help). For a problem not on your end (such as my computer crashing), continue to try to reconnect to Zoom and keep an eye on your email for information. If it is possible to resume during the class period, expect that to happen. Outside of class/lab times, email if there is a system-related issue (such as the course webpage not being available or a server being down). Keep an eye on your email for information. (For a campus system, you can also monitor the IT News and Alerts page.) Of course, if email or the network itself is down, communication will not be possible. During class/lab time, continue to try to reconnect to Zoom and monitor your email until the end of the period in case the problem is resolved. Otherwise periodically check to see if service has been restored. |
Assignments and Evaluation |
Daily Lessons: For most class and some lab sessions you will be expected to complete a lesson beforehand involving readings and/or videos and some questions about the material to help you self-assess what concepts you understand, learn what you don't, and identify where you have further questions. Labs: Labs are an opportunity for hands-on practice with software and concepts 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 if you come to lab prepared and work diligently. (Anything not completed during lab will need to be finished outside of class.) Projects: This is a course about software development, so programming projects are an important component of the course. There will be five projects:
Skills Checks: Each of the group projects will be followed by an individual assignment covering the main technical content of that project (GUIs, client-server networking and threads, object-oriented analysis and design; for the final project, the focus will be on coding practices). These may involve programming tasks and/or written questions and will be graded as an individual component of the corresponding project. Final Reflection: There will be a final written reflection at the end of the course. There will not be an additional final exam; the final project and written reflection take the place of a final exam. Grades: Grades in this course will be computed as follows:
Extra credit options may be available on the final project. If you are struggling with the material or are concerned about your grade, seek help right away by coming to office hours rather than waiting until later in the semester. |
Attendance |
Any absence, whatever the reason, 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. However, when group work is involved - as it is in class, labs, and projects in this course - being on time, present, and contributing to the group is even more important because it impacts others besides yourself. For example, being late for a lab or project meeting wastes the whole group's time as others must wait for you or take time to catch you up later. As a result, you are expected to be on time for all class and lab sessions and to be present for the full period. ("Present" means at the computer and engaging in the class, not logging into Zoom and then doing other things.) In addition, you are expected to attend project meetings scheduled (by the group) outside of class time and to be a contributing member during group tasks, including labs and projects. Attendance will be taken in class and lab and will be factored into the engagement grade: any unexcused absence from lab and three or more unexcused absences from class will lower your engagement grade. There is no penalty for excused absences, but you must notify me promptly of the reason for any absence that is to be considered excused. It is also your responsibility to make sure that you sign the attendance sheet each day; repeatedly forgetting to sign in may result in the accumulation of unexcused absences. Absences/lack of contribution to group projects will be factored into the project grade. 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. Since the course is being held remotely, an unexpected technology problem or one outside your control (such as the campus network going down) is also grounds for an excused absence. 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. While attendance is important, it is even more important that you do not go out in public if you are not feeling well or have been exposed to COVID-19 and need to quarantine. You will not be penalized for missing class for these reasons, though, because the course is being held remotely, it is expected that you will plan ahead for foreseeable contingencies such as being quarantined, not being able to access labs or other resources on campus, and having to leave campus (whether at Thanksgiving or earlier in the semester) in order to minimize such interruptions. Communicate with me about possible alternatives if you anticipate not having access to the necessary resources. |
Making Up Work, Late Policy, Extensions, and Rescheduling Exams |
Any handouts, examples, recordings, and other materials from class will be posted on the course website (on the schedule page) and/or on Canvas. Announcements will be posted on Canvas. If you miss class, you should review this material as soon as possible and seek help at office hours as needed. Late handins refer to assignments being accepted for grading after the due date. No work is accepted late except in the case of a last-minute emergency that prevents an on-time handin of already-completed work. In this case, notify me as soon as possible and make arrangements to complete the handin promptly. This is not an extension of time to complete the assignment. Extensions allow handins after the due date without penalty, whether or not late handins are allowed for the assignment. Extensions will not be granted for daily lessons, and are difficult to accommodate for other work. Daily lessons are time-sensitive; much of the value of these exercises is to be prepared for the day's class and to determine what needs more attention. For daily lessons it is understood that (very) occasionally it may not be possible to complete the task on time - missing a few will not directly impact your grade. For labs, the skills covered in lab will quickly be put to use in a project; getting behind on labs means that you won't be prepared for the next project. For projects, planning your efforts so as to meet deadlines even in the case of unexpected surprises is an important component of software development. 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 event of an extended interruption or an excused absence or issue that affects a significant amount of the time for an assignment, contact me as soon as possible to discuss how to make up the missed work. Note that leaving early for a vacation, being busy, having a bunch of assignments due at the same time, and foreseeable computer failures are not considered reasons for an exception to the "no extensions" policy - schedule your time carefully, save often, and make backups of your files. No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete. |
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 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 x 3351. |
Working Together and Academic Integrity |
The HWS Principle of Academic Integrity governs all of the work completed in this course. Students should read the full policy. For this course:
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. With groups, this applies to sources outside the group - group members should be sharing and fully collaborating within the group. Violations can result in anything from a warning to point deductions or a 0 on the assignment for the first offense. A second such offense is grounds for failure in the course. Cases may also be referred to the Committee on Standards. Note that the HWS Principle of Academic Integrity states:
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. |
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: daily lessons, a lab, and a project or skills check. 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 time. The primary resources for this course are your group (for labs and group projects), other students in the course (when allowed), and the instructor - during lab, during office hours, via email, 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).
|