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:

However:

The bottom line:

A final note: the emphasis on collaboration in this course does not necessarily extend to other CS courses you may take in the future.

Other important policies

Exceptions

If you miss a class, you miss the opportunity for the points on that in-class assignment, or homework that was due. Period.

There is no makeup, except for:

To make up an assignment from a "sick-day/personal-day", you must within one week of the absence, or 24 hours before the final exam, which ever is earlier, come to office hours (this cannot be done in lab). You may only do this ONCE per quarter.

In rare cases, if there is a documented family emergency, documented extended illness, documented required court appearance, or other situation beyond the students' control (with documentation) the instructor may grant additional make up days entirely at the instructor's discretion—but this is not a guarantee or a right.

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:

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:

Frequently Asked Questions

Do we need to bring our textbook to lecture? To lab?

It is generally not necessary to bring the textbook to lectures for CS16. It may be helpful to bring the book to lab though, as it may be a useful reference for working on programming assignments.

Are there any extra credit components in this course?

I offer extra credit to the first person to report typos in the assigned readings from the book, or the homework or lab assignments themselves. Thus, starting earlier gives you a better chance to be the first one to report errors. There is a special thread on Gradescope for reporting errors—the time it is first reported there is what counts for extra credit (reporting it by email or in person or in class is nice, but does not earn the extra credit.) You can also get extra credit for exceptional participation and dissemination of good information on the class discussion forum (Piazza)

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.

Are we permitted to use laptops during lecture?

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, you may 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. If I find that this isn't working out, I reserve the right to change the policy and implement a ban on laptops in lecture (where the only exception would be someone with a medically certified disability that needs the laptop for ADA-compliance.)

So, you don't want to be "that person" that spoils it for everyone else. If you use a laptop, use it for legit purposes during class time.

What about laptops in lab?

Sometimes students want to use their laptops in lab instead of using the Linux computers provided. I would like to strongly discourage this for a variety of reasons:

This isn't an absolute prohibition. If the Linux machines are having software or hardware problems, or there is a problem with your account—these things happen rarely, but they do happen sometimes—then, sure, go ahead and use the laptop during lab. But otherwise, please stick with the machines provided.

Do we need to download anything to our laptops or computers at home/in the dorm?

If you are using Windows, you definitely will want to download two programs: PuTTY and XMing OR MobaXterm and Xming. I recommend the latter combination. These programs allow you to access the Linux environment on the CoE computers from your Windows machine. (Mac and Linux users usually have tools to do that already installed as part of the operating system called "ssh" and "X11".)

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.

Back to Syllabus