Introduction | This page contains material that will be important and useful throughout the entire quarter. I consider it a contract with my students. Please read it once now, and keep it handy for future reference. You can search this page in your browser for specific information by typing Ctrl F (on most browsers) and then entering the text that you want to locate. Many questions that you might have about this course during the quarter are already answered inside this document (so become familiar with its contents and how to search it). It also contains lots of good advice on getting the most out of this course. |
Catalog Description |
"Intermediate-level language features and programming concepts for larger, more
complex, higher-quality software.
Functional programming, name spaces, modules, class protocols, inheritance,
iterators, generators, operator overloading, reflection. Analysis of time
and space efficiency."
|
Course Philosophy |
My goal in ICS-33 is for students to solidify their basic understanding of
Python and to extend their knowledge of Python and their ability to use the
language to solve problems.
We will explore new Python language features and re-examine old ones, in light
of what we learn.
The material we cover needs to be understood thoroughly, so that we can apply
it in complex and novel situations, not just memorized; by mastering the tool
that is Python, we can build all sorts of useful software with it.
We will also cover some Computer Science topics that are closely related to programming. In addition, students will be introduced to some new tools: modules (regular expressions, unnit tests) and software (Eclipse Integrated Development Environment and its Debugger Perspective). The intellectual content of this course can be roughly categorized into three main areas (although some topics bridge multiple areas): Classes, Functions, and Computer Science.
Here is a quick overview of the three programming class in UCI's three quarter Introduction to Programming sequence. All are taught in Python, and the combined time-on-task studying and programming with this language should make students proficient at using it.
Although we will mostly study programming-in-the-small, we will concentrate on the technical and lingual issues of building large, reliable programmed systems that are constructed from standard components. Expect to cover most relevant Python language features thoroughly, but also to spend much time discussing less concrete -but ultimately more general and important- aspects of computer programming. Programming style is a particularly important topic: to understand programming, we really need to develop appropriate aesthetics that allow us to separate "elegant" programs from "hacks". As in any writing activity, we must also learn to be self-critical of our own creations, so that we can continually improve them; this skill is difficult to acquire, and its importance extends well beyond the domain of programming. Finally, to become an expert in any discipline, we must master its terminology. Fluency with technical terms allows us to communicate -and even to think- more accurately and concisely. Therefore, the materials in this course will define, illustrate, and repeatedly use many important technical terms concerning programming. Take the time required to master them. An old Chinese proverb says, "The first step towards wisdom is calling things by their right names." |
Textbooks |
The primary sources for ICS-33 will come from materials that I have
written (and am continually updating).
These materials include readings, problem sets, quizzes, and programming
assignments (and a bunch of infrastructure material, like this syllabus).
Typically, these materials will be shorter than chapters in a textbook, but
they are more densely packed with information; thus, you will still spend
about the same amount of time studying my note as you would reading a
textbook.
Recently ICS-31 and ICS-32 classes taught by other instructors have used the following book: Perkovic, Introduction to Computing Using Python: An Application Development Focus, Wiley, 2011. Copies should be available at the bookstore or online at Amazon, Here are two Python books that are great resources for programmers.
Finally, there are many Python resources on the internet. One goal of this class is to get you closer towards being able to find and use relevant online information based on questions you have about Python. |
Computing Platforms and Programming Environments |
The standard computing platforms for this course are
We expect that ICS-33 students will use their own computers to complete their programming assignments (sometimes working in groups of two: pair programming). All the software used in ICS-33 is available, for free, on the web: see below for details. The programming environment that we will use is Eclipse: it is an Integrated Development Environment (IDE), including a project manager, editor, interpreter, and debugger. We will write all our programs in the Python programming language. To run Eclipse with Python, you must first install Java (to run Eclipse), and then Python, and then Eclipse itself. This software, and others useful for the course, are available through the Course Software link (see the heading Main Software, near the top). You should try to follow these instructions, and download and install this software yourself; if you are having difficulty, please bring your computer to lab and ask our staff to help you with the installation. Typically it takes only a few days before everyone has correctly downloaded and installed the necessary software, and has started to learn how to use it properly. Using this software is integral to every programming assignment during the quarter, so it is best to be aggressive and download, install, and start mastering this software quickly. |
ICS Computer Labs |
We expect students to do much (but not all) of their programming assignments
during their labs, which are scheduled for 4 hours per week.
These labs are staffed by TAs and Lab Tutors.
I encourage all students to ask them questions on a regular basis and generally
engage them in a dialog about programming: learning to talk about programming
is an explicit goal of this course.
While most students will do their coursework in labs on their own machines, the ICS Labs also provide machines with the correct software loaded. You should follow these Activation Instructions for your ICS Lab Account early in the quarter. Some students will use their own machines to run Eclipse and the lab machines to read online Python documentation. Although the machines in the ICS labs also provide some external storage space (the H drive on a Unix system), it is an excellent idea to backup your work either electronically or using USB memory, whether you are using your own computer or the computers in our lab. Finally, the ICS 364 lab is a general purpose lab in which no courses are scheduled. It is open to students on weekdays and weekends: MTuWThF 8:00am - 10:00pm, F 8:00am - 8:00pm, and SaSu 12:00noon - 6:00pm. Here is the most up to date Lab Schedule for all these labs. |
Instructor Office Hours |
I welcome students (individually, programming partners, or small groups), to
come by and talk with me during my Office Hours.
If we need to talk, but you cannot come during my office hours, please email
me so that we can arrange an alternative time to meet; or better yet, maybe
we even can resolve the entire issue over email (or using Ed Discussion),
discussed below, where other students can benefit from questions and answers).
I will be glad to talk with you about any of the ICS-31/-32/-33 courses, Computer Science, UCI, or whatever else you want to discuss. Although UCI is a large school, ICS is a smaller school within it, and ICS promotes opportunities for close faculty-student interaction, especially with instructors who are lecturers. Unfortunately, in my opinion, not enough students take advantage of this opportunity at UCI. I especially encourage students who are having problems in the course to visit me immediately; I know that this is asking a lot, but the payoff for recognizing the situation and acting on it immediately is tremendous. The primary reason that students fail to thrive in programming courses is that they fall behind in their work -often because of what is initially a small misunderstanding; but, because of the cumulative nature of this course, even a small misunderstanding can quickly grow into a big one. Often, I can quickly diagnose and rectify such a problem one-on-one. Getting help fast can critically affect your overall performance in this course: many times I've seen students start performing one grade level higher after coming in to get help during my office hours. Unfortunately, I teach hundreds of students during a typical quarter, so my time is a bit limited. But, generally I have time during office hours to talk with all the students who visit. So, please come if you need help so we can try to work out your issues/problems. Of course, you can also talk to your TA and Lab Tutors during your labs, where resources and time are not so tight. |
Instructor/Course |
If you have a small question (one requiring little back-and-forth discussion),
and cannot directly contact me or any of staff, please ask it by sending me
email (pattis@ics.uci.edu).
It has been my experience that the act of writing a detailed description of a
problem (detailed enough so that someone not physically present can
understand it) often leads a student to his/her own solution of the problem.
Frequently, before I even get a chance to read my email, I receive a second
message saying, "Please ignore my earlier message, I solved the problem
myself."
I believe that the seeds of the solution are sown in the act of carefully
composing the first email message.
Here is quote on my website about this phenomenon
Talking about programming is important. One of the reasons that we program in pairs is to always have someone who you can to talk to about your code; unlike the teddy bear, someone who has an interest in getting your code to work, and who might supply relevant feedback. I try to answer email every few hours during the day. I normally will not answer email sent after about 10:00pm until early the next morning (but I'll typically answer it by the next morning). If you have problems late at night that you cannot resolve, please send me email (or post in the relevant Ed Discussion category) summarizing your problems, and then go to work on something else (or if it is really late, go to sleep). By planning to finish assignments early, you can protect yourself against a big problem that arises at night and cannot be fixed until the next day: you really don't want to have to fix such a problem the night that an assignment is due. For most problems -ones that are of general interest to the class- I would prefer that you ask the question using on Ed Discussion (see below). In this way, everyone in the class can see the question and its answer (which I might provide, or a a TA/Lab Tutor, or another student). One of the few advantages of a big class is having lots of student activity on Ed Discussion, leading to peer-instruction. Finally, the Electronic Educational Environment (EEE) at UCI creates and maintains course-wide mailing lists. I have created a "merged" mailing list for all my ICS-33 students (which also includes those students signed up for CSE 43, both in the Sammueli School of Engineering and the Donald Bren School of Information and Computer Science). All members of our course (staff and students) can use this mailing list, whose email address is ics33-S22@classes.uci.edu All messages sent via this discussion list are archived: click Lecture A or Lecture B (depending on in which lecture you are enrolled) or see the Email Archive link on the course website. Mostly student-initiated questions/discussions should use Ed Discussion (see below), but sometimes students can use this email list to inform the instructor, staff, and other students about some timely issue: e.g., the Checkmate Homework Dropoff system not responding to program submissions. |
Ed Discussion |
If you have a question of general interest (of interest to many students in the course, not just you), then you should post the question in an Ed Dicussion thread. These threads allow students to ask questions (or start discussions) easily, as well as supply answers (or participate in the discsussion further). For example, if a lecture note, programming assignment, etc. contains unclear (or even contradictory) information, start a new thread in the appropriate Ed Discussion category, asking for clarification. I, or someone from my staff will read and reply to whatever questions are asked. In fact, if you read a question in a thread, and know the answer -or generally have something to contribute to the topic- I encourage you to to post a response to help resolve the problem even sooner. Thus, you can use the threads to discuss any course materials out-of-class. Again, threads are appropriate for questions relevant to most students in the course; directly email me (see above) for questions of a more individualistic nature. Obviously students should not use these threads to solicit nor post answers to take-home quizzes, programming assignments, or anything else that would be interpreted as academic misconduct (which is discussed in greater detail below). But general informational questions and answers are fine. I often find that students send me individual email when they should be asking in a thread; think before you decide which to do. It is an excellent idea to check Ed Discussion frequently, to keep up to date on any coursewide discussions. |
Staff: TAs, Lab Tutors |
I will have various UCI graduate and undergraduate staff members to assist me
in running this course.
TAs will supervise the labs and be assisted by Lab Tutors.
In labs, the Staff's primary responsibilities are to help you write and debug
your programs, backfilling Python material that you might need to know or
understand better.
You can certainly discus programming and Python in general with these staff
members.
TAs will also be responsible for grading programming assignments; if you have
a question about how your programs are graded, please see the TA first,
and then come to see me if any issues remain.
TAs will also grade the weekly quizzes and in-lab, midterm, and final exams.
While in lab, the TAs and Tutors will help you diagnose any computer/programming problems that you have and guide you toward a solution. They will help you learn how to program by answering your questions; but, do not expect them to write your programs for you. You should approach them with a well thought-out question, and expect to answer questions from them about your state of understanding the issues surrounding the question. Sometimes when you come to the staff with a specific question, they will show you how to solve a more general problem. Be patient; the staff are just trying to teach you how to recognize and solve these problems by yourself.
|
Before/After Class |
I expect students to read the assigned lecture materials, either before class
(as a way to preview the lecture) or after class (where the lecture previews
the reading), to get the most out of both: cover the material twice.
Try to work out solutions to the assigned problems, to prove that you have
understood the material; you can often test/verify/explore your solutions on
the computer.
Here understanding means "be able to use the information operationally
to write programs".
If you have difficulty with a problem, it indicates that you should probably
go back over the related reading -or certainly ask a question about it on
Ed Discussion.
One of the few advantages of a big class like this is the potental for
peer-teaching.
Because these problems are not graded, feel free to discuss them, but don't give away the answers for those still working on them: working on exercises like these builds your programming muscles. Students will be required to solve similar problems on (almost) weekly take-home quizzes, on which collaboration is NOT allowed. Don't cheat yourself in this aspect of the course. |
During Class |
I expect students to attend class daily.
During the 40+ years that I have been teaching, I have observed a strong
correlation between attending class and understanding the material (which
ultimately improves student grades).
Having all the course materials online is a great resource, but just as
important is coming to class -and paying attention, once you are there-
and participating by volunteering information when you know it and asking
questions when you are confused.
I will lecture during class, but I prefer discussing the material and answering questions; asking you questions about the material, and amplifying on those topics that need further discussion. I expect most "lectures" to be interactive, with students participating. I encourage you to participate by raising your hand; sometimes I may finish the point I'm making before calling on you, but please keep your hand up if you want to speak. If you have a question about the material, it typically means that I have explained something incorrectly, poorly, or incompletely, and that other students have (or will soon have, maybe right after they leave the classroom) the same question. So, it would be best for all of us to correct the problem immediately in class by someone bringing it to my attention. If you cannot ask in class, post a question later on Ed Discussion. In summary, this class runs on the Dershowitz principle: "Question authority; but raise your hand first". |
Class Decorum |
I expect students to attend class daily, arriving on time.
The announcements made at the start of class are often very important.
On some days (mostly Fridays) I will collect quizzes at the start of class.
I expect students to neither carry on private conversations, nor use their
computers to answer e-mail, surf the web, day trade stocks, or perform any
other activities unrelated to this course.
Do not use your personal media in any way that would disturb students sitting
near you.
In fact, because I continually receive complaints about this issue, my policy
is "All students who use their computers/personal media must sit on the
right side of the classroom (right as you are facing the front)."
Students not using computers/personal media should not sit in this area.
Ringing cell phones disrupt my lectures. Unless you are responsible for someone's life, your cell phone should be turned off. Otherwise, you should set it to operate in some silent mode (as mine will be set); if it rings silently, please leave the class, with a minimum of disruption to the rest of the students, to answer it. If your cell phone rings audibly in class, you will be asked to leave class for that day. Finally, if you know that you must leave early, please sit near a door, so that you can exit quietly and without disturbing the class. Overall, please strive to be a considerate class member, both to me and to your fellow students. |
Testing Instruments and Grades
Quizzes |
I will assign eight take-home Quizzes to ensure that everyone is keeping pace
learning the course material and is able to express themselves on technical
matters both in English and Python.
Each will have problems similar to those assigned daily in class (and similar
to those on upcomming written exams; working these quizzes is a major way to
"study" for these exams).
These quizzes will be a take-home instrument: most will be distributed late
Friday afternoon and submitted to Checkmate by Thursday night at 11:30pm;
most material to be submitted by hand will be due at the start of class on
Friday.
During the weekend, you will have as much time as you need to work on the
quizzes.
The quizzes are open-book: you will be able to use any class materials, or any other materials from the web, to answer its questions. But, you may not communicate with anyone about these quizzes nor their solutions; nor should you search for/look at solutions to these specific problems on the web (nor post problems or solutions on websites). The quizzes are also open-computer: by that I mean that you may use a computer to check your work. To promote good time management skills, if you submit a quiz at least 24 hours before it is due, you will receive 1 point of extra credit. For a 25 point assignment, this extra credit is equivalent to almost half a letter grade improvement. |
Programming Assignments |
I will assign five full programming assignments (and one shorter one) to ensure
that everyone is getting the necessary hands-on programming experience.
While working on these programs, you will acquire a solid and fine-tuned
understanding of the course material as well as gain important
process of programming skills.
Programs will typically be started in Lab on Tuesday, and be due (submitted
electronically) two weeks later, on Tuesday evening at 11:30pm.
I recommend that students work in groups of two on most programming assignments. Such an approach is called Pair Programming. One student from each pair submit all parts of the programming assignment with both their names on it (in the code files) in the format specified (see the assignment writeups). Apart from your pair, you can get general help from anyone (Instructor, TA, Lab Tutors, friends, etc.) on programs. But, the best kind of help to get is oral: where you describe the problem, possibly showing your code briefly, and then get an oral answer that you understand and translate into code. In such instances, you are learning. You may neither copy nor transcribe (written or orally) any parts of another student's program, nor have another student sit down and systematically correct your program. When you submit your programs for grading, you are expected to understand all parts of them and have improved your process of programming skills while writing and debugging them. Students who complete their programs in this way will be well prepared for the In-Lab Programming Exams; students who get too much help (on purpose, or accidentally) from their programming partners or others will have a more difficult time on these exams, which can severely impact their grade. You will submit your solutions to programming assignments through Checkmate, special softare that records the time they are submitted. You can resbumit your programs as many times as you want. We will grade only the final submission. You can read about Submitting Homework using Checkmate and practice using it in Program #0. To promote good time management skills, if you submit a program at least 24 hours before it is due, you will receive 1 point of extra credit. If you submit a program 48 hours early, you will receive 2 points. You can gain no more than 2 points of extra credit by early submission. For a 50 point assignment, this extra credit is equivalent to almost half a letter grade improvement. I know from long teaching experience that students who work ahead of the deadlines learn more, in a less stressed envrionment: students working right up to a deadline are more concerned with getting the right answer and less concerned with learning anything. On the other side of this coin, I will not accept any late programs. So, you must turn in your work on time: if you turn in a partially working program on time, it will receive partial credit; if you do not turn in anything on time, then I must assume you did no work on the program, and you will receive no credit. Therefore, always turn in whatever work you have finished by the official due time. |
Written Exams |
I will assign one Midterm Written Exam and one Final Written Exam to
ensure that everyone is successfully integrating all the material being
taught.
Its problems will be similar to those assigned on homework, and especially on
weekly quizzes.
These written exams are closed-book: you will not be able use any notes nor
class materials while taking these exams.
The best way to study for these exams is to do all the homework and quizzes (and programs -sometimes material from programming assignments appear on these exams) and review these quizzes (and programs). Cramming will be of little help: we will cover too much material during the quarter. Students are expected to be able to do these problems both quickly and accurately. The Final Written Exam is comprehensive: it will cover material from the entire quarter (but will concentrate on the material presented after the Midterm Written Exam, which builds on the prior material). |
In-Lab Programming Exams |
I will assign three In-Lab Programming Exams (taken during labs) to
ensure that everyone can write (and debug) their own programs.
The first exam will focus on using iteration and Python's major data types; the
second on classes, overloaded operators, and writing iterators;
the third (the half exam) will focus on generator functions, recursive
functions (including linked lists and trees), decorators, and simple
inheritance.
Of course, you will have to know lots of general material about programming
in Python to solve all these problems effectively (as well as how to use the
Eclipse IDE).
The programming exams themselves will be closed-book; but, you will be able to access a copy of the standard Python library documentation. I will grade these programs 100% on correctness |
Solutions and Returned (Graded) Work |
I will use
Ed Resources to upload all my solutions to all quizzes, programming
assignments, and written/programming exams soon after they are due (which is
another reason why I accept no late work).
I expect that students will carefully examine my solutions for immediate
feedback.
Note that the best time for you to study my solution is the day that I
distribute it, having just spent a good amount of time working on your own
solution.
The sooner you examine my solutions, the more receptive you will be to learning
something.
Finally, my solutions sometimes contain mistakes: if you are the first person
to post a correction in an Ed Discussion thread, I will award you extra
credit points: the same number that I would take off for the mistake.
I plan to return quizzes and programming assignments on the Monday following their submission; do not submit a new programming assignments until you have received feedback on your previous submission (so you won't repeat mistakes). I plan to return written/programming exams within a week of when they are given. If you believe that I have graded any of your work incorrectly, I encourage you to contact your TA about the discrepancy ASAP Such a discussion can have only positive outcomes: either you will receive more credit (and, I do want you to receive all the credit that you are due), or you will not, but understand why your solution was wrong. This is certainly a win-win situation. In any case, carefully examine my solution first. |
Final Grades |
Your final grade is computed from your
quizzes, programming assignments, written/programming exams as follows.
Of these instruments, the highest percentage of points is allocated to all the programming assignments: 26%; these are worth a bit less than the midterm and final exams combined: 30%. Note that a bit under half the grade is based on work done in an unsupervised (take-home) environment (45%) and a bit over half of the grade is based on work done in a supervised (in-class) environment (55%). Based on your percentage, your final grade is computed as follows.
Technically, I round your score to an integer and then apply these rules. So, if your percentage is 86.7%, it is rounded to 87% and therefore results in a grade of B+. Finally, if your calculated grade is a C or higher, but you do not have at least a C (72.5% after normalization) on either (1) your In-Lab exams (averaged over all) or (2) your written exams (averaged over your midterm and final) then your final grade will be reduced to a C-, which is not passing as a prerequisite for later courses. Restated positively, if your calculated grade is C or higher, having a C average on either (1) or (2) qualifies you to receive that calculated grade. This is straight calculation, not based on a curve. I tend to grade programming assignments liberally, but quizzes and exams conservatively. As a rule of thumb, I expect about 25% of the student to earn As, about 25% to earn Bs, about 25% to earn Cs, and about 25% to earn Ds or Fs. This course is NOT graded on a curve, so these are only expectations from past course performance, not mandated numbers; your numbers can be higher or lower. For most quarters, the final grades are skewed higher: the actual breakdown for a recent quarter was about 40% As, 32% Bs, 16% Cs, 12% Ds or Fs. Only after finishing 4 quizzes, 2 programming assignments, one in-class programming exam, and the midterm will you have a reasonable indication of your final course grade (which, of course, will still heavily depend on the grades you earn afterward).
|
Academic Integrity |
No one comes into a class expecting to cheat, but I would suggest that you
become familiar Bren School of Information and Computer Sciences
Academic Honesty policy, which is just one of many of the many
Undergraduate Policies with which you should become familiar.
The following information is my own restatement of this policy, as it applies in my courses. You will also be asked to read and sign a handout to acknowledge that you understand the Academic Integrity Contract that applies for this course. |
Policy |
The decision as to whether a student has cheated depends on the intent of an
assignment, the ground rules specified by the instructor, and the behavior of
the student.
The following two guidelines help an instructor decide whether plagiarism has
occurred in programming assignment, which is the fuzziest area:
Here are some examples that are clearly cheating and clearly not cheating. Examples of CHEATING:
If you ever feel that after talking to someone about a program, which is legal, your solution will be very similar to theirs, cite the consultation in the header comment in your program. Doing so protects you from University disciplinary action (although the instructor is free to grade the material as he/she sees fit). Examples of NOT CHEATING:
|
Automatic Detection of Cheating |
Recently, various cheating-detection software systems have become widely
available.
Some use search engines to compare selected portions of submitted papers to
content on the web.
In the context of programming, they compare each student's program to those
submitted by his/her classmates (for this quarter, and any previous
quarters if the assignment has been repeated).
This software does not compare programs exactly: it ignores format changes,
variable name changes, and a variety of well-know transformations that
change the look of code but not its underlying logic.
Many courses in ICS use this software to spot potential cheating cases. Once it identifies suspicious behavior, instructors carefully examine the flagged code to make a final determination as to whether students will be prosecuted for cheating. Often instructors can find additional evidence of cheating, once this software points them to the simlar code. |
Consequences |
ICS will not condone cheating by students in its classes.
When cheating is suspected, instructors will take reasonable action to
establish whether or not it has actually occurred.
If, in the instructor's opinion it has, the instructor will apply appropriate
disciplinary policy.
In my courses, for a typical case of cheating, the student will receive 0 points
for the entire assignment (not just the part involved in cheating).
Students will also be reported to the Academic Integerity and Student Conduct
Office (for University-Level sanctions).
For particular egregious forms of cheating (e.g., cheating on exams, stealing
another student's work so he/she cannot submit it for credit), harsher
consequences may apply (from loss of a full letter grade, through immediate
failure of the course, up through suspension or expulsion from UCI).
Instructors must contact the student shortly after investigating evidence of academic dishonesty and evaluating the relevant work. Notice of any action taken by an instructor must also be forwarded to the Academic Integerity and Student Conduct Office. Thiss office acts as a repository for such information, in case the student commits multiple infractions. While the first infraction often results in just a grading penalty and a warning at the University level, a second infraction typically results in suspension from the University for one or more quarters. |
Student Rights | UCI's Office of Academic Integrity and Student Conduct (AISC) has a relevant document that you can view at the following website. |
Final Words: A Personal Statement |
Cheating undermines the fabric of education.
The atmosphere at UCI (contrary to whatever opinions, prejudices, or
superstitions you hold) is one of fostering cooperation between faculty and
students in the pursuit of learning, knowledge, and wisdom.
This course, for example, is graded on an absolute scale, not a curve;
so, helping other students when appropriate doesn't affect your grade.
And, if a student cheats for a higher grade, other students do not receive
lower grades as a result.
Although it is embarrassing to fail an assignment, getting caught cheating is much worse (and some students get caught cheating for very few points). I know, though, that students rarely think about getting caught. But think about it: I often see students break down and cry when they get caught cheating and only then start to realize the consequences of their actions. Their stress level goes through the roof and it immediately affects both the academic and social aspects of their lives. The process is distressing for me too, although I must confess that I have been hardened by the number of times that I have had to go through it (typically dozens of times each quarter). Pursuing these cases at the University level takes a lot of my time, and reduces the time that I can spend on more important matters relating to my course and my students. It is definitely a lose-lose situation. The #1 excuse that I hear for cheating is, "I was pressed for time, so I cheated." By carefully managing your time, you can avoid this problem. If you start working early enough, and run into problems (and you should expect to run into problems), you will have time for the course staff to help you learn to solve them. Also, I understand that some students take this course only because it is a requirement for their major, and that they have little intrinsic interest in the subject area; this is not a valid excuse for cheating either. I have seen too many instances recently where student A asks a friend, student B, for help; specifically, A asks to see B's quiz or code (on paper or in a computer file). Often, A copies B's code (with or without B's knowledge). I understand that B feels pressure to give A help. But, B is doing A no favor if A's cheating is discovered; B has made a bad situation (A would receive no credit) worse (A receives no credit and is reported to the Office of Academic Integrity and Student Conduct. And, according to UCI's rules, B is violating the Academic Integrity policy by these actions too: while B would receive full credit on the assignment (assuming he/she did it) he/she would be reported to the Office of Academic Integrity and Student Conduct as well. I have seen friendships shattered because A copies B's code without telling B what was done, and then both get prosecuted under UCI's rules. A similar situation arises with cheating on quiz questions. I have seen too many students cheat on one question on a quiz and get caught and receive a 0 score for the whole quiz (and letter to the Office of Academic Integrity and Student Conduct), when leaving the question blank would result in just a small point deduction and no University action. In my final statement here, I ask you to pause and reflect on the consequences of choosing to cheat at UCI: this includes the impacts that it will have on you, your parents, your siblings, your friends, and your fellow classmates at UCI. Cheating is invariably the wrong decision. |
Exceptions to Policies |
I have strict policies regarding attending classes, taking quizzes, submitting
programs, and taking in-class exams; but, there are exceptions.
Exceptions to these policies include valid medical excuses (if documented by
your Doctor or Health Care Provider), or any other officially excusable
absence: emergencies, family problems, religious observances, job interviews
or sports-related trips, etc. (if documented by the Office of the Dean in
your College, a Coach, etc).
If you need such an exception, bring a copy of the required documentation to me as soon as possible: do it beforehand, if you know about the problem in advance; if you do not have advance warning do it on the next day that you are able to attend class (or during my office hours) . I will need to keep the copy for my records of all excused absences. Again, if you have advance notice of a problem, please notify me by email beforehand to discuss any ramifications. |