UCR CS 10: Introduction to Computer Science I
Winter 2006
IMPORTANT NOTICE:
If for any reason your official enrollment in this course is delayed,
you are still expected to attend all lectures and labs, and submit all
assignments, from the beginning of class. Make-ups for missed labs, tests,
assignments etc. are generally not granted.
Basic Information  
Previous CS10's  
In CS 010, you'll become familiar with the basic concepts underlying
computer programming, and learn to apply those principles using a
powerful and widely used programming language, C++. You should learn
to solve basic problems by designing non-trivial programs. And you
will learn to work with others (the computing field is, contrary
to some beliefs, a very social discipline).
Catalog description :
CS 010. Introduction to Computer Science for Science, Mathematics, and Engineering I
(4) Lecture, 3 hours; laboratory, 3 hours.
Prerequisite(s): MATH 009A (may be taken concurrently).
Solving problems through structured programming of algorithms on computers,
using the C++ object-oriented language. Topics include variables, expressions,
input/output (I/O), branches, loops, functions, parameters, arrays, strings,
file I/O, and classes. Also covers software design, testing, and debugging.
Instructor :
Sections 001 and 002
Kris Miller (kmiller(@)cs(.)ucr(.)edu).
Office hours:
- W 1pm - 2pm
- F 3:10pm - 4pm
- or by appt.
Office:
Engineering II 312.
Lectures:
Section 001: MWF 2:10pm-3:00pm
SPRL 1340 (FINAL: Thr, 3/23/06 8:00am - 11:00am)
Section 002: MWF 4:10pm-5:00pm
SPRL 1340 (FINAL: Sat, 3/25/06 3pm - 6pm)
Labs/TAs:
TA office hours held in
Engineering II 110.
Lab section 021: Mon 6:10 - 9:00pm
ENGR2 127 - Mark Porterfield
(mporterfield(@)cs(.)ucr(.)edu)
(Office Hours: TBA)
Lab section 022: CANCELLED
Lab section 023: Tue 8:10 - 11:00am
ENGR2 127 - Jin-wien Shieh
(shiehj(@)cs(.)ucr(.)edu)
Lab section 024: Tue 11:10am - 2:00pm
ENGR2 127 - Jorge Mena
(jmena(@)cs(.)ucr(.)edu)
(Office Hours: TBA)
Lab section 025: Tue 2:10 - 5:00pm
ENGR2 127 - Jian Zhou
(jianz(@)cs(.)ucr(.)edu)
(Office Hours: TBA)
Lab section 026: Tue 6:10 - 9:00pm
ENGR2 127 - Mark Porterfield
(mporterfield(@)cs(.)ucr(.)edu)
(Office Hours: TBA)
Textbook:
Big C++,
by Cay Horstmann and Timothy Budd, John Wiley & Sons, Inc.
ISBN: 0-471-47063-5
Communications:
- moodle course management system
All class communications & schedules will be posted on the moodle course management
site. This will be updated regularly, so check it
frequently. Postings to moodle forums will generally also be emailed
to your cs email account unless you change the email address in your
profile.
Course grading:
The course consists of 100 points:
- Practice items (10 points) -- Designed to help you learn and to do
well on the assessment items.
- 0 pts: In-class exercises (collected randomly)
- 5 pts: CodeLab Homework
(10 - 15 exercises per week worth approx. 0.5 pts total per week)
- 5 pts: In-lab exercises (10 labs worth 0.5 pts each)
- Assessment items (90 points) -- Mainly to determine
whether you are learning, and to also help you learn by studying.
Graded as usual.
- 20 pts: In-lab tests (8 worth approx. 2.85 pts each - drop lowest)
- 10 pts: Quizzes (9 worth approx. 1.4 pt each - drop 2 lowest)
- 10 pts: Programming assignments
(8 worth approx. 1.25 pts each)
(6 must have a grade of 70% or better to pass the class)
- 20 pts: Lecture Midterm
- 10 pts: Lab Final
- 20 pts: Lecture Final
Grades will be assigned using a conventional grading scale:
100-90 A, 89-80 B, 79-70 C, 69-60 D, 59-0 F. +/- grades will be given.
Students are NOT competing against one another, but rather against the
scale -- all students can get good grades if all do well.
We may adjust ("curve") an individual assessment item if such
adjusting HELPS the class.
- Material covered: As mentioned above, the course consists of all material covered in lectures, labs, assigned reading, programming assignments, etc. While there is considerable overlap among these elements, they are to be considered separate and individually essential building blocks of your introduction to the art and science of computer programming.
- Assignment Submissions: All turned-in assignments will be turned in electronically. Each file should begin with our report template header. Source code should comply with professionally accepted coding standards. Also, you must include a section explaining the design, structure, etc. of your program and how it works. Comments in source code are important, but they are not a replacement for an explanatory section.
Please remember that successfully writing a computer program that compiles and runs correctly is not something anyone can do in just a few minutes, even when it looks easy. Debugging typically takes three times longer than figuring out how to write your program. So don't leave your programming assignments to the last minute!
- Late Policy:
- Programming assignments may be turned in up to 24 hours past the due date/time with a 10% penalty. No assignments will be accepted after 24 hours.
- CodeLab exercises may be completed for 50% credit anytime after their due date but before the last hw is due at the end of the quarter.
- No makeups will be allowed for quizzes, lab tests, or in-lecture exercises for any reason. Instead, the lowest score for each item will be dropped.
- All other items may not be madeup without proof of a family or medical emergency. You must contact the instructor in this case.
- Collaboration policy
In general, we have found that one of the best predictors of success in these courses is participation in a study group of some kind. We encourage you to work together and learn from each other in as many ways as possible, and we will provide any assistance we can to make this happen.
However, we also have to assess each student individually, so there are very explicit boundaries to collaboration:
- Midterm, final, quizzes, lab tests -- Obviously
no collaboration
- In-lecture exercises -- mostly done as teams requiring active participation.
- CodeLab Homeworks -- Collaboration is strongly ENCOURAGED, although of course, you should still submit your own solutions (cut & paste submissions will be treated as academic dishonesty - see below).
- In-lab exercises -- Collaboration is strongly ENCOURAGED. If you complete an exercise, feel free to help others -- teaching
enhances your own learning.
- Programming Assignments -- Collaboration is NOT
ALLOWED. Copying code from ANY outside
source (any book, current or past students, past solutions (even
if they are your own!), web sites, etc.) is STRICTLY
FORBIDDEN: we test every submission for copying, and when we find it we treat it as flagrant academic dishonesty (see below).
- Academic dishonesty: cheating of any sort is severely punished.
Report cheating (anonymously if you wish) at: https://www.cs.ucr.edu/cheating/.
We use a powerful tool that automatically compares all programs
(this quarter and from past quarters too), neglecting changes in
variable names, spacing,etc., and detects copied code. If you are
smart enough to outwit the tool, you are smart enough to write the
program yourself. We regularly catch several cases of copying in
the course EVERY QUARTER, with severe penalties given (including
an F in the course).
Other forms of cheating, such as lying to an instructor in order to be allowed to make up a test, or copying on a quiz, etc., are all treated with the same severity.
PLEASE, don't risk it!! We hate failing students!!
- Regrade policy: regrade requests must be submitted in writing and within one week of the posting of the relevant grades. Likewise, grade-database errors should be pointed out within one week of posting.
- Communicating with the instructors and TAs: when emailing your instructors or TAs, please remember that many students have the same name, and your instructor may be teaching other courses too. So please give your full name and list the course you are referring to, and preferably include your cs login id.
You should use your UCR email account (remember that UCR sends many official notices now only by email). Please try to be polite and professional, and use reasonable grammar and formatting.
- Quizzes and in-class activities: You will need the "personalized" multiple choice answer sheet available here.
You should print multiple copies of your personal answer sheet, and bring them with you to every class.
- Lab attendance : is required for the full 3-hour lab. If you finish early, help others (teaching increases your own learning), read ahead, work on your at-home program assignments, etc.
- Lab enrollment : To reduce disruptions and provide for the best educational environment, all persons in lab during scheduled lab time should be formally registered in that section. In general, no swapping sections and no unregistered people in the lab are allowed, even if there are extra computers.
- Switching/adding/dropping lab and lecture sections: all add, drop, and section changes of all lower division Computer Science courses, after the period when students can do so electronically is over, are done through the College of Engineering's Student Affairs office. Neither the instructors nor the CS department itself can sign any add/drop forms, nor can they arrange for section changes. Please go to Student Affairs, Bourns Hall A159, for any such changes.
- Time Requirements: This is a four-unit CS course. As such, you should expect to spend 3 hours/week in lecture, 3 hours/week in lab, and 6 to 10 hours/week doing individual study (readings, hws, programming, lab preparation, etc) -- no, we're not exaggerating!
Please don't underestimate the time you will need to spend on this course.
These are real time amounts spent by successful past students.
- Final Exams are scheduled by the University, not by the instructor, and are correlated to the course sections. This means you must take the final exam scheduled for the section you are enrolled in.
- Final grades: Per university policy, changes to your final grade can be made only in the event of a clerical error. Asking your instructor how far you were from a cutoff and what extra work you can do to improve the grade is not appropriate.
Electronic assignment turn-in
Anonymously report suspected cheating
Anonymously Provide Comments/Suggestions
- Grades will be posted to the moodle site on a regular basis.