ICS 65: Advanced Programming in C++
Fall 2011
Course Reference


Instructor information

Office hours: I will be available on Wednesdays from noon-2pm and 5-6pm in ICS 4092, during which all course-related issues will have the highest priority.

Contacting me: I tend to be much easier to reach via email than by phone, so I would suggest using email to contact me under normal circumstances. When you write me an email, please take a few moments to make sure that the following information is placed somewhere in your message: your name, your student ID#, and which course you're enrolled in (as I'm teaching more than one).


Times and places

The lecture meets on Tuesdays and Thursdays from 3:30-4:50pm in ICS 180.


Textbooks

There are many ways to get good information about C++. This book is a very nice introductory C++ textbook — the best I've reviewed: well-written, organized well, presented at the appropriate level — but if you have a comprehensive book that you like (and there are many), feel free to use it. This course is mostly about project work, so the main objective in having a book is to provide yourself with a reference when you need it, as well as the ability to have a well-organized introduction to each topic. (Many students get by in this course with lectures, my commented code examples, and online searches when needed. If you can do that, that's fine with me.)


The TA and discussion section

We are not going to have a TA for this course, and there will be no discussion section, though we will have a grader. (The reason why there's no discussion is because the first time I offered this course, with over 30 students enrolled, literally one student showed up regularly.)


Obtaining additional assistance

Asking questions of course staff

You can most easily get course questions answered by coming to lecture and asking them! During office hours, I'm happy to help you in person. You can also ask questions by sending email to me; I read and respond to my email often. Thus, you can usually get a response to your course-related questions within a few hours (sometimes less frequently on weekends and holidays). If the questions require a complex or lengthy response, I may ask you to see me in person. As projects approach their due date, particularly on days when projects are due, I begin to receive quite a bit of email all at once, so I may not be able to respond to all messages before the project is due. I'm not ignoring you on purpose, but unfortunately it's not always possible for me to answer questions from a large number of students at once.

Accommodations for disabilities

Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs. Also, contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations, such as alternative test-taking environments or note-taking services, can be provided to you in a timely way.


Grading

Your course grade will be determined from the weighted combination of the scores on each of your four projects. There will be no in-class exams. Your lowest project score will count for half as much as your others, meaning that the following formula will be used to compute a final course score:

    (2 * each of your highest three scores) + your lowest score

So, if your project scores are 90, 70, 50, and 30, your overall score will be (2 * 90) + (2 * 70) + (2 * 50) + 30 = 450. In total, 700 points are possible.


Dropping the course or changing grade option

This policy will be announced soon.


Academic dishonesty

The policy

As ICS 65 students, you are expected to know and follow the academic honesty policies of both the Bren School of ICS and the University as a whole. Please take a few minutes to read the policies, which can be found at this link.

All of your lab work is expected to be completed solely by you (and your partner, on paired assignments). Worker in larger groups and/or sharing of code between students that are not partners is not permitted. Note that "high-level discussion of course material for better understanding" is permitted and encouraged, but when it comes time to sit down and write code, that is expected to be done by you and you alone. All submissions are compared to one another using an automated plagiarism detection system. This system is extraordinarily good at finding similarities between submissions, even when there are superficial differences. (Note that we also compare your submissions to those submitted during previous quarters whenever one of these assignments was given during a previous quarter, so it is an exceedingly bad idea to turn in, or even refer to, code written by a friend of yours who took the course already.)

Since all of your work is expected to be completed solely by you (and your partner, on paired assignments), you will be held responsible even if you plagiarize only a small portion of someone else's work.

You are not permitted to reuse code that you wrote along with a partner during a previous quarter. You may only reuse code that you wrote on your own, and you may only reuse it for a project that is not paired this quarter. (The reason for this rule is simply that I do not want students repeating the course to pair up with someone new and deprive them of the opportunity to work on the project. Besides, if you're repeating the course, it's generally a good idea to start fresh, to solidify the ideas you missed the first time around.)

Academic honesty is a two-way street. Providing your code to other students for them to turn in as their own is not permitted anymore than turning in someone else's code. Resist the temptation to give code to your friends "for reference." Based on my experience, I can say that your "friends" may very well betray you and turn it in, anyway.

Violators of academic honesty policies are subject to the penalties described in the Bren School of ICS policy. They are also subject to an immediate course grade of F, and you will not be allowed to drop the course to avoid the grade. Also be aware that a single documented case of academic dishonesty may preclude you from switching into computing majors, registering for computing minors, joining the ICS Honors Program, and graduating from a computing major with honors.

The lesson

Okay, so the moral of the story is that it's wise to avoid cheating. I believe that it's relatively rare that students enter a course with the conscious intent to cheat their way through it; why come to UCI if you're not planning to get something out of the coursework? So why do people cheat every quarter in every course? The answers vary, but here's the easiest way I can boil down the numerous conversations I've had with students caught cheating in my courses over the years: I fell behind and couldn't figure out how to catch up. Things happen and ten-week quarters are unforgiving. You might get sick, you might have issues crop up in your family, you might have an off-campus job that's demanding too much of your time, you might be trying to decide whether you're on the path you want to be on... Any of those things (and many others) can make it hard to keep up. You fall a little behind, you fall a little further behind, and pretty soon the situation seems hopeless. You're under pressure, temptation gets the better of you...

If you feel like you're beginning to slip off course or things are getting beyond your control, the best thing to do is to talk to us sooner rather than later. We're here to help; we understand. But the reality of taking large-sized courses at a large-sized institution is that we're not going to know you're in need unless you tell us. If things are happening in your life, tell us; you don't have to be specific if you're not comfortable with it. Before the fact, there's often a way to work things out. After the fact, it's usually too late.