CPSC 120 | Data Structures and Algorithms | Fall 2023 |
On this page:
Course Communication |
Assignments, handouts, and materials from class will be posted on the course web page, specifically the schedule page. You will need to check this page regularly to make sure you stay up-to-date. Some material may be posted on Canvas. There will always be a reference to the existence of this material on the schedule page so that you don't need to also check Canvas for updates. Email will be used for individual communications and for time-sensitive announcements, so you should also regularly check your HWS email account. |
---|---|
Classroom Conduct |
Learning is much more effective if you are engaged in the material. You should come to class prepared for the day's activities, and should be on task during class - please do not surf the web, text, play games, do assignments for other courses, etc during class time. Also please do not wear headphones during lab - it makes it difficult to interact with you, and you may miss important announcements to the class about assignments. You are encouraged to bring a laptop to class for use during group activities. Outside of these activities, note taking on paper is encouraged as it avoids the distraction of electronic devices; if you do use a laptop or other device to take notes, you are encouraged to turn off notifications and close other applications to reduce the temptation of those distractions. Arriving late, leaving early, and coming and going during class is distracting to me and your fellow classmates. Please endeavor to arrive on time, and to take care of any necessary business before or after class so you can be present for the whole class period. If you know in advance that you will need to miss part or all of a class, please let me know. Disruptive classroom behavior will negatively impact your participation grade. |
Coding Standards |
Following reasonable conventions is important for the readability of your programs. These will be introduced in class, and are summarized in the course coding standards for easy reference. Not following these standards may result in points lost even if your program otherwise works correctly. |
Attendance and Making Up Work |
You are expected to be on time for all class and lab sessions, and to be present and engaged in the course for the full period. 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. In addition, announcements are made at the beginning of class, and late arrivals may miss important information. However, it is understood that sometimes there may be circumstances when you are unable to attend class. It is especially important that you not attend class and expose others to illness if you are sick. Excused absences are absences due to official Colleges activities (e.g. sports competitions, musical performances, debate competitions, field trips), academic events (such as presenting at or 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 job interviews, sports practices, helping out a friend, leaving early for a vacation, oversleeping, or being too busy - is considered to be an unexcused absence. Any absence for which no reason is provided is automatically considered to be unexcused.
If you cannot attend class, please let me know as soon as possible. You are responsible for acquiring any notes, handouts, assignments, and other material missed as the result of an absence - make sure that you check the schedule page for new assignments and materials from class, complete any missed readings, and come to office hours if you have any questions or need help with any aspect of the material. This should be done promptly to avoid falling behind. In addition, every effort should be made to hand in assignments 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). A missed exam can only be made up afterwards if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). For planned absences, arrangements for rescheduling the exam must be made in advance. |
Late Policy, Extensions, and Rescheduling Exams |
There is a steady workload throughout the course, and foundational topics introduced earlier are used and built on later in the course. Both of these mean that it is important to stay on track - it is difficult to catch up if you get behind, and every effort should be made to hand in assignments on time. However, as with attendance, it is understood that there may sometimes be extenuating circumstances which make meeting every deadline difficult. Late days: Three late days may be applied to labs and projects. These are available in whole-day increments, with the exception that something handed in by midnight on the due date is considered only a half day late. (For example, a lab due at 1:20pm on Friday is half a day late if turned in by midnight that night, one day late if turned in any time between 12:01am and midnight Saturday, two days late between 12:01am and midnight Sunday, etc.) College recesses aren't counted, so, for example, a lab due at 1:20pm on the Friday before fall break is only one day late if turned in any time between 12:01am Saturday and midnight Wednesday night. No reason is needed to utilize late days, but you must email me before the due date to say that you plan to use late day(s) and to indicate when you will hand in the assignment. Extensions: If you have exhausted your late days and don't think you can get something handed in on time, see me as soon as possible to discuss a timeline for getting back on track. Extensions are expected to be rare and to accommodate specific situations (such as illness); if you are struggling with the material, seek help promptly at office hours and/or Teaching Fellows so that you don't fall behind. Rescheduling exams: If you will have an excused absence on the date of an exam, please see me as soon as possible (before the exam date!) to discuss options for rescheduling. (Note that final exams can only be rescheduled in the case of religious observances, post-season athletic competition, or three exams scheduled on the same day.) A missed exam can only be made up after the fact if the absence is excused and not foreseeable (e.g. illness or other last-minute emergency). Arrangements for making up the exam must be made as soon as possible. No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete. Late days may not be used to extend this deadline. |
Academic Integrity and Collaboration |
The HWS Principle of Academic Integrity, stated below, governs all of the work completed in this course. From the HWS Catalogue: (available online at http://www.hws.edu/catalogue/policies.aspx)
The following is an excerpt from a post by Alex Gourevitch, a professor at Brown University:
What Prof. Gourevitch says about writing papers is equally applicable to programming - just substitute "program" for "essay". The core content of this course is the process of going from an idea to a working program, which includes not just the syntax and semantics of a particular programming language, but also a way of thinking, of organizing, of breaking down large problems into smaller tasks. Success means gaining proficiency with that process, not simply turning out programs, and academic integrity requires that the programs you hand in reflect your engagement with that process. So, what does that all mean for this course? When it comes to programming 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. This includes both computer files and paper copies, and also solutions produced by generative AI (such as ChatGPT and Codex), "homework help" or "study aid" sites (such as Chegg and Course Hero), and sites where you post a homework problem or question and solicit answers from others. Decompiling or reverse-engineering someone else's code (including provided code) is also prohibited. The course materials (including provided links or references to documentation and other materials) along with office hours and the Teaching Fellows should be your primary resources. However, unless it is otherwise prohibited (such as on exams), you can use other materials (such as reference books or websites) as technical references to learn about a particular topic and for examples, not solutions. An example illustrates a technical point or problem-solving strategy, applied to a different problem instance than the one you are trying to solve. An example can't be used as-is to solve your specific problem, but can be adapted to address some aspect of the problem. For example, an example demonstrating the proper syntax for a while loop is OK to use when writing a program which involves a while loop (as long as the point of the problem isn't to write exactly the while loop given in the example). A solution gives a significant amount of the answer to your particular problem (or an extremely similar problem). Quantity is relevant here - something might seem like just an example because it doesn't solve the exact problem, but if a single source covers a lot of your task, it becomes more of a solution. Using someone else's code "as a guide" to completing your own is using it as a solution, not an example, even if you make some changes. On some assignments you may discuss ideas with other students in the course as well as get help from the instructor and Teaching Fellows. These assignments are for learning and practice, and it can be very productive to figure things out with your peers. However, these are still individual assignments and it is easy to overestimate how much you yourself understand when watching someone else do something. You must always make the first attempt on a task yourself and you may not work with other students to produce a solution unless it is a designated group assignment. Limit your discussions with other students to ideas (e.g. how you might break down a larger task into smaller pieces), examples (e.g. "I don't quite get while loops - can you show me an example of when to use one?"), and specific technical questions (e.g. "how do you declare a variable?"); if you need help with specific details of a particular program or with the program code itself (e.g. debugging), go to office hours or the Teaching Fellows. Specifically:
In all cases, you must fully understand the help you receive. (You should be able to explain your solution to someone else.) You should never just be writing down code that someone else wrote or told you to write. A first offense may result in a warning, depending on the nature of the infraction. A second offense (and more severe first offenses) will result in a 0 on the assignment or portion of the assignment. Additional offenses are grounds for failure in the course. In all cases, the situation may also be referred to the Committee on Standards. 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 academic integrity policies. 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. |
Being Successful |
There is a steady schedule of assignments and the course material is cumulative - don't fall behind! Review each day's material soon after class, start on assignments early (it is better to spend some time each day than to set aside a large block of time the night before the assignment is due), ask questions, and take advantage of office hours and Teaching Fellows if you are stuck on something or want to discuss ideas. Letting a point of confusion slide can quickly snowball and then it is very difficult to catch up. 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 do use a laptop or other device to take notes, you are encouraged to turn off notifications and close other applications to reduce the temptation of those distractions. Either way, anything that appears on the projector screen - slides or code - will be posted on the schedule page soon after class, so you don't need to copy down all of that material in your notes. 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. Getting help:
|
Office of Disability Services |
It is the policy and practice of Hobart and William Smith Colleges to create inclusive learning environments. If you are a student with a disability and there are aspects of the instruction or design of this course that present barriers to you, please begin the process of registering with Disability Services by completing the Intake Form on Accommodate (click here).
Students are always welcome to contact the Disability Services
team: Shanelle France, Associate Director of CTL for Disability
Services and Thom Mascia, Disability Services Accommodation
Manager are the main contact staff for Disability
Services. Additional information can be found on the Disability Services webpage. |