Course Policies
Disabled Students Program (DSP)
UCSB provides academic accommodations to students with disabilities. Students with disabilities are responsible for ensuring that the Disabled Students Program (DSP) is aware of their disabilities and for providing DSP with appropriate documentation. DSP is located at 2120 Student Resource Building and serves as the campus liaison regarding issues and regulations related to students with disabilities. The DSP staff works in an advisory capacity with a variety of campus departments to ensure that equal access is provided to all disabled students. If you have a disability that requires accommodation in this class, please go see the DSP very early on in the quarter. I will only honor these types of requests for accommodation via the DSP. More information about the DSP is found here: http://dsp.sa.ucsb.edu
UCSB Policy on Academic Honesty
It is expected that students attending the University of California understand and subscribe to the ideal of academic integrity, and are willing to bear individual responsibility for their work. Any work (written or otherwise) submitted to fulfill an academic requirement must represent a student’s original work. Any act of academic dishonesty, such as cheating or plagiarism, will subject a person to University disciplinary action. Using or attempting to use materials, information, study aids, or commercial “research” services not authorized by the instructor of the course constitutes cheating. Representing the words, ideas, or concepts of another person without appropriate attribution is plagiarism. Whenever another person’s written work is utilized, whether it be a single phrase or longer, quotation marks must be used and sources cited. Paraphrasing another’s work, i.e., borrowing the ideas or concepts and putting them into one’s “own” words, must also be acknowledged. Although a person’s state of mind and intention will be considered in determining the University response to an act of academic dishonesty, this in no way lessens the responsibility of the student.
(Section A.2 from: http://www.sa.ucsb.edu/Regulations/student_conduct.aspx, Student Conduct, General Standards of Conduct)
Each student is responsible for knowing and abiding by UCSB’s policies on Academic Honesty. Any student violating these policies will earn an ‘F’ in the course and will be reported to the Academic Integrity Office . Committing acts that violate Student Conduct policies that result in course disruption are cause for suspension or dismissal from UCSB.
About Collaboration and Academic Honesty
As mentioned above, one of the things we really want to convey in this course is that real-world software development is very seldom an 'individual sport'—it is much more often a 'team sport'. Companies want to hire CS and CE graduates that know how to collaborate with others on producing software.
In the CS Department at UCSB, we understand the value of this. However, it puts us in a tricky position.
On the one hand, we want to encourage working together in ways that help you develop your skills and teamwork, and help you understand that programming can be a social, collaborative, creative activity—not something done only by loner nerds in cubicles. The sooner you start with activities such as pair programming, code reviews, and other collaborative software development activities, the more skill you'll develop, and the sooner you'll be ready for the real world. Plus, for many people, working together with others is a lot more enjoyable and fun than being a loner.
On the other hand, we need to avoid any situations where freeloaders are "coasting" through courses by leaning too much on others—never developing independent skills as programmers. This situation creates huge problems. Mostly it is damaging to the freeloaders themselves, who eventually crash and burn, perhaps far too late to choose another career path without significant difficulty. However, it also creates problems for everyone else—some hardworking students become demoralized by the unfairness of it all, and the value of a UCSB education is diminished by the freeloaders' lack of accomplishment.
Thus, we must strike a balance.
Our emphasis on collaboration means:
- We will try to create opportunities for you to work in pairs on assignments—in some cases, we may even require it.
- We will try to create opportunities for you to develop the ability to think critically about software development by talking about and reflecting on your own code and other people's code in small groups (code reviews).
- Some in-class assignments will permit discussion with other students.
However:
- You may not "just copy" homework or code from others and claim it as your own work.
- You may not work together on assignments unless you've been specifically told that it is allowed.
- You may not simply divide a programming assignment between yourselves, and code separately, even when pair programming. Instead follow the pair programming guidelines and always work together on the same copy of the code
- If you are programming with a partner, you must add your partner in gradescope and include both your name and your partner's name at the top of every file
- If you are reusing information or posted by instructors from a previous offering of this course, you must cite it in your work. In general our policy is to not use any code from previous offerings unless it has been explicity provided as a reference in any given assignment.
The bottom line:
- We'll try to be very specific about what kinds of collaboration are permitted, and what kinds of collaboration are not permitted, and are considered a form of academic dishonesty.
- If you are not sure about whether some kind of collaboration is permitted or not, it is your responsibility to ask questions.
A final note: the emphasis on collaboration in this course does not necessarily extend to other CS courses you may take in the future.
- Each course will have its own policies, and the default policy is still: no collaboration.
- Please be sure you understand each instructor's policy on collaboration carefully, and don't assume it will be the same as that from previous courses.
- And, finally, be sure to review the UCSB Academic Honesty Policy. You should read and understand the UCSB policy on academic honesty listed below. You should also understand that I take academic honesty and personal integrity very seriously, and will do my best to uphold and enforce this UCSB policy.
Other important policies
- If you are registered for another UCSB course that overlaps with this one, you MUST HAVE specific written permission from both instructors, or I am within my rights to give you a failing grade on any work you miss as a result, and will NOT make any accommodations for you. This includes exams.
- Collaboration is only permitted when specifically allowed for—otherwise, you must do your own work.
- This course moves quickly. So attendance is very important. We’ll sometimes cover two or even three chapters in a given week. We need to go at that pace, because during the last week of the quarter, you can’t really start anything new, because there isn’t time to put it into practice with programming assignments. If you don’t put it into practice, you aren’t very likely to learn it in any way that is going to stick with you, so there isn’t much point in just "going through the motions".
About pair programming
Most of the programming work in this course will be done using a style of programming known as "pair programming". This is where two people (in rare cases, three) work together at the same terminal to solve a programming problem.
It is similar, in some ways, to having a "lab partner" in a Biology, Chemistry or Physics course.
For the assignments where pair programming is used, it is required, not optional. Here's why:
- Pair programming is a real-world skill that is highly valued by employers.
- Many companies use pair programming extensively, including several local area employers of UCSB CS graduates.
- Companies that employ UCSB CS and CE grads tell us that our graduates have good technical skills but need better skills and working in pairs and groups to solve problems.
- Incorporating pair programming into our curriculum is part of our response to this "real-world" feedback.
- Most students find it helpful and enjoyable—UCSB CS students from 2009-2010 that were surveyed about their pair programming experiences overwhelmingly reported positive results.
- There is also evidence in the scientific literature that it improves student learning, and helps you get better grades.
To learn more about pair programming, watch the following video (it takes less than 10 minutes):
http://bit.ly/pair-programming-video
If a lab allows you to pair program, you must choose a partner before you start working on the lab. You must then follow the pair programming guidelines descibed in the video above. All the while you should be working on a single copy of the assignment. The name of both partners should be clearly specified as a comment at the top of each file. The partners should make a single joint submission to our autograder (gradescope) and add the name of both partners to the submission made on gradescope. Failure to follow these guidelines, for example submitting two copies of the same code individually would be considered a case of academic dishonesty and will be reported Academic Integrity Office
Late Lab Policy
The policy is simple, and is based on the idea that the primary purpose of the deadlines is to allow the TA manage his/her workload. The number of labs in this course requires that he/she not have to do “context switching” between grading different labs. All labs must be graded in one sitting, or he/she just won’t be able to keep up with the workload. So:
- If you want your work to be graded without penalty, turn it in on time.
- We will grade late labs ONLY if it creates no extra inconvenience for the graders, and we MAY impose a late penalty.
- There is NO GUARANTEE that late labs will be graded at all. The TA will simply start work at some point after the deadline, and grade until he/she is finished. At that time, he/she will “close the books” on that particular lab, and any work not submitted at that time will NOT be considered.
Frequently Asked Questions
Do we need to bring laptops to class?
You do not need to bring a laptop to class but you are **encouraged** to bring your laptop to follow along during live coding sessions in lecture, and to use your own device during lab (discussion sections).
Research has shown that the use of electronic devices for purposed othen than note-taking or class related activities hampers the learning of both the student and those sitting close by. Although you are allowed to bring your laptop or mobile device, please do not use it to read email or Facebook, play games, etc. That latter use can be a real distraction to others sitting behind that student, not to mention the distraction to the laptop user herself/himself.
The instructor holds the right to ask you to leave the class if you fail to comply with the course policy on using devices.
Disclaimer
The course policies have been provided as accurately as possible, but are subject to change at the instructor's discretion, within the bounds of UC policy.