Prerequisites CS 20.
E-mail, CSIL Computer Account, and CSIL Access I will use umail.ucsb.edu account to e-mail you information about the course and your grades. You will need a CSIL computer account (or CSIL Access for non-CS majors with COE accounts) for this course. See the instructions in the web page http://www.cs.ucsb.edu/~teo/cs60.html on how to open a CSIL account and/or gain CSIL access. This link,CSIL Tech. Support and Information, has information about remote access, tech support, etc.
The COE Computer Accounts (which handles the CSIL accounts) periodically cancels accounts. If this happens to you go to the CS Office to get your account reinstated. If the CS office is closed send me e-mail (with copy to the TA and support@cs.ucsb.edu) indicating that this has happened and we will try to get it reinstated as soon as possible. Sometimes the COE sends you e-mail to your CS account warning you that if you do not change certain feature (password, disk space, etc.) your account will be closed. So you need to READ your CS account mail at least once every day. You may do this with the command "pine" or you may create a .forward file that will automatically forward your CS mail to your umail.ucsb.edu (or other) account or when you opened your account you set the forwarding address so your mail will be forwared to that account. More information about mail and .forward files appears in CSIL Tech. Support and Information.
Emailing to cs60@cs.ucsb.edu forwards to both the instructor and the TAs. Use this to ask questions or send comments. Direct email to the instructor is fine, but in general the "cs60" alias is preferred.
There will be six programming assignments. Instructions on how to turn in your assignments will be given later. The programming assignments will be due on (Friday) June 26th, (Friday) July 3rd, (Friday) July 10th, (Friday) July 17th, (Friday) July 24th, and (Thursday) july 30th. The code for the Programming Assignment must compile and execute in the Linux PCs in the CSIL Lab. The code must be in gcc (GNU C) or g++ (GNU C++). JAVA IS NOT ALLOWED. JAVA IS NOT ALLOWED. JAVA IS NOT ALLOWED. In the past, students have used C or C++ on their PCs, and then transfer their code to the Linux Unix PCs. This process is acceptable. However, we must warn you that C and C++ compilers are different, and your code might work on your PC, but not in the Linux PCs. So if you follow this approach, make sure that you leave some time to debug your code on the Linux PCs, even if the program works correctly on your PC. We can only run your code on the Linux PCs in CSIL. We can only run your code on the Linux PCs in CSIL. We can only run your code on the Linux PCs in CSIL. All the assignments will have a due date and a deadline. If you hand them in after the due date, then 7% of the total points the FULL ASSIGNMENT is worth (not just the part that is late) will be automatically deducted each day (rounded UP) the assignment (or part of the assignment) was late (excluding Saturdays, Sundays and University Holidays). Assignments will not be accepted after their deadline.
There will be four quizzes, a mid-term exam and a final exam. The quizzes will be held (during the lecture from 3:25 - 3:45 pm) on (Thursday) June 25th, (Thursday) July 2nd, (Wednesday) July 8th, and (Thursday) July 23th. The mid-term exam will be held during part of the lecture period on (Thursday) July 16. The final exam will be on Friday July 31st (4:00 pm - 7:00 pm). All of the exams and quizzes are closed book and notes. However you may be allowed to bring one 8.5" by 11" page (you may write on both sides) with notes to the midterm and final. The exams will be based on all the material covered up to the day of the exam in the lectures and discussion sessions. The quiz will cover the material since the previous quiz or exam, except the first one that will cover all material discussed so far. There will be no makeup exams. There will be no makeup exams. There will be no makeup exams. In the past 34 years there have been very few exceptions to this rule. There will be no make up quizzes, but we will count only the the three best quiz grades.Campus Learning Assistance Service: 893-3269. CLAS helps students increase their mastery of course material through course-specific tutoring and academic skills development. Check out their tutorial groups and drop-in tutoring schedules posted on their web site: www.clas.ucsb.edu. Sign up for services at their main office, Building 477 9-5 daily.
Counseling & Career Services: (893-4411, www.counseling.ucsb.edu) offers counseling for personal & career concerns, self-help information and connections to off-campus mental health resources.
Disabled Students Program: 893-2668; www.sa.ucsb.edu/dsp DSP provides academic support services to eligible students with temporary and permanent disabilities. Please inform (Prof. Gonzalez) if you require special classroom accommodations due to a disability. You must register with DSP prior to receiving these accommodations.
The weights for the assignments and exams are given below.
| Assignment/Exam | Number | Points |
| Programming Projects | 6 | 450 (about 75 each) |
| Quizzes | (Best) 3 (grades) | 100 (about 33 each) |
| Mid-Term Exam | 1 | 150 |
| Final Exam | 1 | 300 |
To make the programming projects count a little bit more, we always include in the final exam a couple of questions from the programming projects.
There will be no incompletes, there will be no incompletes, there will be no incompletes, and there will be no incompletes. The Statue of Limitations for any grading is 5 days or the day of the final exam (whichever comes first). I.e., if there is an error in the grading, it must be settled within 5 days of the time the assignment or exam was returned and before the final exam. If you have any questions about the grading, see the TA. If you cannot reach an agreement, please see the instructor. Only letter grades will be given, i.e., A+, A, A-, B+, B, B-, C+, C, C-, D+, D, D-, and F.
The grades are normally computed as follows: Normally, students with the average number of total points receive a C+ or B-. It will in the B- range (or slightly higher) if the students are active participants in class and almost all of the students show up for class during the whole quarter, but in the C+ range (or lower) if the students are not active participants. I expect the average points for the written homeworks to be very high (80% - 90%). Very few students earn the total number of points in my exams.
All the written assignments, exams and the programming projects must be done INDEPENDENTLY. Why work independently? Because quite of bit of the learning process for this course is learning by doing and the skills you will develop will not only help you solve problems in this course, but they will also help you solve problems in the future. To motivate you into working independently we will recycle up to 40 points that you loose in the programming assignments and assign those points to the final exam. I.e., If the total number of points that you earned in the programming assignments is 416, then the minimum of (450 - 416) and 40 points will be assigned to the final exam. In this case your final exam will be worth 34 extra points. So, if in the final exam you earn 70% of the 300 the final is worth, you will recover 70% of the points lost in the written homeworks, which is 0.70 * 34 = 27.3. If the above rule does not motivate you to work independently and we can prove that two or more students solved together an assignment or part of an assignment, the case will be reported to the appropriate administration officials. You are allowed to study in groups and you may discuss the homeworks problems with other people in order to fully understand the problems you are being asked to solve in the homeworks; however, you may not SOLVE the assignment or any part of the assignment or the exams in groups, and you may not ask anyone how to solve any particular problem or subproblem in a homework assignments. If we can prove that two or more students solved together an assignment (exam or project) or part of an assignment (exam or project), the case will be reported to the appropriate administration officials.
The university, the department, and this instructor all take the issue of academic integrity very seriously. A university requires an atmosphere of mutual trust and respect. While collaboration is an integral part of many scholarly activities, it is not always appropriate in a course, and it is never appropriate unless (1) explicitly allowed and (2) due credit is given to all participants in the collaboration. This goes for both ideas and programming or other work.The university labels each of the following activities as academic misconduct:
Cheating. Whether on exams or homework assignments, this includes copying the work of other students, and asking or allowing another student to do your work.
Plagiarism. Also known as "academic theft," it refers to the use of another's ideas or words (or source code) without proper attribution or credit.
Collusion. "Any student who knowingly or intentionally helps another student to perform any of the above acts of cheating or plagiarism is subject to discipline for academic dishonesty. There is no distinction between those who cheat and plagiarize and those who willingly allow it to occur."
The following are examples of violations of academic conduct (this list is not inclusive):
- Working together (that is, actually writing the computer code) with another student.
- Showing any portion of your code (no matter how small) to another student.
- Viewing any portion (no matter how small) of the code of another student.
- Copying any portion, no matter how small, of another student's code for use in your program.
- Modifying another student's work to make it "your own."
- Sharing solutions in the form of pseudocode.
- Asking a fellow student to help you find a bug in your program, or to help you write any portion of your program, no matter how small.
- Using the Internet or Library to seek explicit solutions to programming projects.
- Knowingly allowing any of the above to take place.
The following is a description of allowed forms of seeking help with a programming assignment (this list is not inclusive):
- Discussing your project with your TA, professor, a CS tutor, or the email help-desk.
- Discussing the general ideas of solving the project, or relevant lecture and textbook materials, with a friend or fellow student.
- Using the Internet or Library to read about the general principles that apply in the project.
For some views on academic integrity at UCSB, please see:
Any act of cheating will result in an "F" for the course and a report to the associate dean of students. This includes any sharing of computer code.
Summary: Academic integrity is absolutely required - dishonesty (cheating, plagiarism, etc.) benefits no one and will not be tolerated! If you are not sure whether or not something is appropriate, ask the instructor or a TA beforehand. (Don't try the "I didn't know" route.)
[So] Oualline, S., "Practical C++ Programming," 2nd Edition, O'Reilly. (Required Text)
[LO] Loukides, M., and Oram, A., "Programming with GNU Software," O'Reilly. (Required Text)
[Si] Siever, E., Linux in a Nutshell," O'Reilly. (Required Text)
[KR] Kernigham, B. W. and D. Ritchie, "The C Programming Language," Second Edition, Prentice Hall, 1988. (Required Text)
[GA] Glass, G. and Ables, K., "UNIX For Programmers and Users," Second Edition, Prentice Hall, 1999.
[P] Prata, S. "C++ Premier Plus, Third Edition," The Waite Group, 1998.
[St] Stroustrup, B., "The C++ Programming Language, 2nd Edition," Addison-Wesley, Menlo Park, CA (1991). (QA76 / 73 / C15 S79)
[CD] Cohoon, J. P. and Davidson, J. W., "C++ Program Design," McGraw-Hill, 1999.