On this page:
Classroom Participation
Laptops in Class
Programming Environment
Communications
The Dangers of Copy/  Pasting, Academic Dishonesty, and Peer-to-Peer Collaboration
Assignments
Late Assignements
Labs policy
The AP Exam
Grades
8.6

General Course Information

Classroom Participation

There are two essential components to this course: the classroom, and the assignments. The classroom provides us an opportunity to explore new topics and ideas together, generate discussion, and learn from each other. As such, classroom participation is very much encouraged, and lectures will be structured in a Q&A style (with questions coming from both directions!).

As such, please ask the questions you have and don’t be afraid to give answers you aren’t totally sure of. If you’re unsure of a topic, the likelihood is incredibly high so is one of your classmates, so speaking up will not just help you, but also your peers. Also, incorrect answers can be more instructive than correct ones, and often lead to great discussions! So long as you are being thoughtful and respectful to everyone in class, you cannot go wrong participating.

Laptops in Class

Laptops and other electronic devices are not allowed in class. Lecture code will be posted to Google Classroom after class, so don’t worry too much about taking notes. Reading what’s typed after class is not a substitute for classroom discussion, though, so be sure to pay attention.

The purpose of class is to learn how to think about programming; it is very hard to think and copy down code at the same time (try out the demonstration here on the costs of task switching, which is commonly called multitasking). As far as learning syntax, there will be plenty of examples to refer to from lecture code. Also, given that you are a student in CS2, you already know that the underlying concepts of programming are much more essential than the syntax by which they are represented, and that repeated programming (via assignments) is the best way to learn and internalize syntax.

Programming Environment

The IDE (integrated development environment) you should use is the Eclipse IDE. The second day of class will be dedicated to ensuring the installation and proper functioning of Eclipse on your laptops. You will install it for homework during the first class, following the instructions here.

Communications

I can be reached at my school email, and should generally respond within 24 hours (or on Monday if sent Friday-Sunday).

If you are sick or know of an upcoming abscence or conflict with an assignment, you should contact me ASAP to work out the details. As far as help with homeworks, see the lab policy below.

The Dangers of Copy/Pasting, Academic Dishonesty, and Peer-to-Peer Collaboration

There are two kinds of harmful copy/pasting. The first is copying part of your own code to other parts of your code, as this a sign you should likely be abstracting instead of duplicating your code. The second, much more serious kind, is copying someone else’s code into your own; in this course, that is considered cheating.

Cheating in CS2 is a high risk/low reward activity. It is low reward because we have many assignments, and one partially completed or incompleted assignment will not tank your grade. It is high risk because there is a very small student population, so I will have a very good idea as to what your code usually looks like. If you copy from the internet, I will be able to tell it isn’t yours, and worse, if you copy from your peer, I will be able to tell who you copied it from.

Cheating is also low reward because not completing an assignment is a sign that you don’t grasp the material, are struggling with your workload, or both. In any of these cases, talking to myself and/or your advisor as soon as possible is by far the most productive step you can take. Make the decision that will most greatly impact your longterm understanding instead of taking shortcuts.

While copy/pasting from your classmates is forbidden, they can be very helpful in the learning process. Discussing course concepts and assignments at a high level is both fruitful and encouraged, and if I am not available, your peers are your best allies in becoming developed programmers. As a general rule of thumb, if you’re not spelling out answers directly, you are likely not committing any academic integrity violations.

You must be very careful when engaging in this sort of discussion, however. If you are unsure where the line between high-level discussion and academic dishonesty is, you are expected to err on the side of caution and not collaborate with your peer. You are always welcome to ask me whether or not a line of discussion or answering a particular question is allowed.

Use of ChatGPT and its equivalents is strictly prohibited.

As a general policy, ignorantia juris non excusat (ignorance of the law is no excusce). Whether or not you intended to, academic dishonesty will be treated as academic dishonesty.

Assignments

As per the Student Bill of Rights, while homeworks will be posted here, they will be linked to from Google Classroom. Assignment submissions should consist of one .java file, or as our programs become larger, one .zip file containing .java files. Assignments should reflect the code quality as demonstrated in class, especially in regards to clarity, documentation, and test coverage.

Feedback will be given via Google Classroom. Feedback will consist of a letter grade and a comment pertaining to the strengths of the submission and areas needing improvement, with references to specific lines of code.

Late Assignements

Assignments will be docked half a letter grade per day late, and will not be accepted after a week. Extensions will be considered on a case-by-case basis.

Additionally, assignments which are assigned over the span of multiple classes will have specified check-ins. If you cannot demonstrate that you have done the work demanded of the check-in by the check-in, that will result in half a letter grade loss. Note that most check-ins will only require you to define data definitions and examples. The purpose of this is so that assignments which are meant to be done over the course of a week are not started the night before it is due.

Labs policy

As you are all now experienced programmers, there will be no lab periods. Asking for help via email or Google Classroom or help recieved in a 1:1 meeting still has the same best practices as a lab, though.

If you have questions about the content of the assignment, be sure you’ve read the entire assignment first, as your question may be answered later. A good technique for understanding technical writing, much like dense prose, is to slow down your pace, and possibly read it aloud to yourself. Be sure to try both of these approaches before asking clarifying questions, as answering your own questions will better enable you to do so in the future.

If you find yourself stuck when programming, taking time to formulate your question is an incredibly productive step. Think carefully about what you’ve done (what classes have/haven’t you designed, what methods have/haven’t you defined, etc.) and how to articulate it, so the person helping you can quickly understand where your question is coming from and help you as best as possible. If this seems daunting, don’t worry; you will become better at this with practice.

As with groking the assignment, an essential step in debugging or progressing in writing code when you’re stuck is to first try and un-stuck yourself. A skill all programmers must learn is balancing the tension between answering the question on your own, and not wasting too much time on a problem you cannot solve. Never give up immediately, but 5 minutes spent totally stuck is a sign it’s time to step away and come back to a problem later, or ask for help.

In-class lab periods will be announced ahead of time.

The AP Exam

As stated elsewhere on the site, this course will prepare you for the AP Computer Science A exam. While the course is not geared towards the exam, students at Commonwealth have the distinct advantage of taking two years of programming before taking the exam, which is not usually the case. As test-time approaches, we will ensure you can map the skills covered in this class onto the exam, largely through practice testing. Note that the order this course goes in differs wildly from most AP courses, so I recommend talking to me before trying out practice tests early if you are so inclined, as you may find yourself misguidedly discouraged by the material you can’t yet answer.

Grades

Grades will be calculated based on assignment grades and projects (which are effectively just large assignments). Some assignments will be weighted more highly than others.