Policies for CSC 2/454

Programming Projects

Tentative plans call for five programming assignments, in a variety of languages (probably some subset of Ada, C, C++, C#, Java, OCaml, Prolog, Python, Ruby, Rust, and Scheme).  Expect the workload to be heavy.  You will probably write at least as much code in this class as you did in 173, and what you write will be much more subtle.  Don’t procrastinate!  Also be sure to read all on-line documentation carefully. 

For most assignments you will have the option of working in pairs.  You can also work alone if you prefer.  In most cases the partners in a pair will receive the same grade, but I reserve the right to assign different grades if I have reason to believe that partners did significantly different amounts of work.  Team membership will be self-selected, and can vary from assignment to assignment. 

Grading standards are documented on a separate web page.

Grades will be uploaded periodically to Blackboard, the University’s on-line course management system.  Please check your grades after they are posted to make sure that everything has been entered correctly.  Note that grade calculations are made on a private spreadsheet, not in Blackboard itself. 

Extra Credit

There will be opportunities for extra credit on many of the assignments and exams.  Extra credit will be considered after making the first cut at letter grades for the course.  If you’re near the top of your grade bracket, or the amount of extra work you’ve done is particularly large, you can expect it to push you up a grade.  Ten students (out of 136) benefitted from this in 2021 and eleven (out of 97) in 2022. 

Attendance and Class Participation

Attendance is mandatory for both all-class meetings and workshops, and will count toward your end-of-semester grade.  Please arrive on time. 

Assigned reading in the text is also mandatory, and should be done before the associated lecture.  Toward this end I will be requiring students to complete and hand in answers to the “Check Your Understanding” questions in the book before the start of class.  See the course schedule for more details. 

My goal is to spend class time answering questions and explaining material in ways that complement the text.  If no one has questions or suggested discussion topics, I may call on you—so be prepared!

As a general rule, if there’s something you don’t understand, make me stop and explain it.  There are probably a dozen people sitting around you who didn’t understand it either, but aren’t brave enough to say so.  Likewise, if I’m belaboring something that everyone understands, prod me to move on. 

My lecture notes are available on-line, but please note that they come with no guarantee.  In particular, I reserve the right on exams to ask about anything I’ve covered in class, even if it isn’t in the book or lecture notes. 

Workshops

We will be running workshops in CSC 254, much as in 171-2-3: talented upper-level students who have taken the class before will host peer-led, small group, team learning sessions.  Participation in workshops is mandatory: experience suggests it makes a huge difference in what students get out of the course—and correspondingly in the grades that they receive. 

No Late Assignments

It is my strict policy not to accept late assignments.  Exceptions will be made only under the most dire of circumstances.  Note, however, that I am extremely generous with partial credit, so turn in what you have.

Every semester I have students who let a due date pass.  When I ask them what happened they say “Oh, I didn’t finish, so I didn’t turn anything in.”  Then I have to give them a zero.  If they had turned in even some reasonable preliminary thoughts on how they might have done the assignment—without a single line of code—they often could have received as much as 30% of the total points.  This can easily make the difference between letter grades at the end of the semester. 

So if it looks like you aren’t going to make a due date, don’t keep debugging down to the wire.  Stop an hour early and take the time to organize what you have and put together a write-up that presents it in the best possible light.  Your transcript will love you for it. 

Academic Honesty

Student conduct in CSC 2/454 is governed by the College Academic Honesty Policy, the Undergraduate Laboratory Policies of the Computer Science Department, and the University’s Acceptable Use Policy for Information Technology.  I helped to write all three of these policies personally.  I believe in them strongly, and will enforce them aggressively. 

The following are details specific to CSC 2/454. 

Exams and quizes in CSC 2/454 must be strictly individual work. 

Collaboration on programming assignments among team members is of course expected.  Collaboration on assignments across teams is encouraged at the level of ideas.  Feel free to ask each other questions, brainstorm on algorithms, or work together at a whiteboard.  You may not claim work as your own, however, unless you transform the ideas into substance by yourself.  Among other things, this means that you must leave any brainstorming sessions with no written or electronic notes—only what you carry in your head. 

If you use the work of others (e.g., you download a function from the web at the last minute so that you can get the rest of your project working), then (1) either you must have the author’s explicit permission or the material must be open source, and (2) you must label what you copied, clearly and prominently, when you hand it in.  You will of course get points only for the parts of your assignment that you wrote yourself. 

To minimize the temptation to steal code, all students are expected to protect any directories or on-line repositories in which they do their work. 

For purposes of this class, academic dishonesty is defined as

Note that grades in CSC 2/454 are assigned on the basis of individual merit rather than relative standing, so there is no benefit—not even a dishonest one—to be gained by sabotaging the work of others.

I work under the assumption that students are honest.  I will not go looking for exceptions.  If I discover one, however, I will come down on it very hard.  In 2021, I had the misfortune of needing to report more than 20 students to the College Board on Academic Honesty.  All but one resulted in major penalties for the students involved.  Please don’t be on the list this year. 

A Special Note on Generative AI

Increasingly, generative AI tools are developing the ability to create or modify soruce code in useful ways in response to narrative prompts.  As these tools improve, using them is likely to become an essential part of the skill set of any professional programmer.  At the same time, just as children need to learn to add and multiply despite the existence of calculators, programmers need to be able to write their own code. 

The projects in this course are designed to help you learn.  If an AI tool writes your code, you won’t learn what you need to from the course.  I therefore strongly discourage the use of AI tools in this particular course.  That said, if you believe that one of these tools (GPT-4, Chat FPT, Copilot, Colab, etc.) will actually help you learn, then you are permitted to use it—but only if you very clearly explain exactly how you did so in the README file you turn in with your assignment.  (Project-specific guidance [or prohibitions] may also be provided as the semester progresses.)  Be sure to identify the parts of the code that should be considered your work (as opposed to that of the AI tool).  As noted above, you will receive credit only for your own parts. 

Failure to disclose the use of AI tools will be considered academic dishonesty.  I reserve the right, whether I suspect undisclosed use or not, to ask you detailed questions about your code and to reduce your grade if you don’t understand what you turned in. 

Disabilities, Equal Access, Diversity and Inclusion

In accordance with University policy, the law, and simple fairness, the instructor and TAs are committed to respecting and welcoming students of all backgrounds and abilities.  More broadly, they are committed to the University’s Vision and Values

Any student requiring accommodation or encountering any barrier to full participation in this course due to a disability should contact the Office of Disability Resources.  Email disability@rochester.edu, call 585-276-5075, or visit the office in Taylor Hall. 

For more information about the full range of University policies, services, and resources around diversity and inclusion, or to report an incident of harassment, discrimination, or sexual misconduct, visit the Culture of Respect website. 


Last Change:  29 August 2023 / Michael Scott's email address