UCR CS 10: Introduction to Computer Science I
Summer 2005, session II
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 :
Kris Miller
(kmiller(@)cs(.)ucr(.)edu).
Office hours:
- TR 11:15am - 12:15pm
- or by appt.
Office:
Surge Bldg. 341.
Lectures:
MTWR 8:00 am to 9:30 am
Olmstead Hall 1127
Labs:
MW 10:00 am to 1:00 pm,
Surge 283
Teaching Assistant
Jorge Mena
(jmena(@)cs(.)ucr(.)edu).
Office hours:
Office:
Surge Bldg. 282.
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.
- Your cs login & email account:
ALL course and CS Department related emails will be addressed to your cs.ucr.edu account, which is also the the address with which you will be subscribed to the course mailing list.
You are expected to use this account for all your outgoing cs-related correspondence.
- CS 10 mailing List
Most students will be automatically subscribed to this mailing list when enrolled in the course. However, it is up to you to ensure that you are in fact subscribed - you can go to the following links to check the subscription list.
send mail now or
access the archive
Course grading:
The course consists of 100 points:
- Practice items (20 points) -- Designed to help you learn and to do
well on the assessment items.
- 5 pts: In-class exercises
(Turned in each day and evaluated as
satisfactory or unsatisfactory - worth approx. 0.3 pts each)
- 5 pts: CodeLab Homework
(10 - 15 exercises per week worth approx. 0.5 pts per week)
- 5 pts: In-lab exercises (8 worth 0.6 pts each)
- 5 pts: Programming assignments (8 worth approx. 0.6 pts each)
- Assessment items (80 points) -- Mainly to determine
whether you are learning, and to also help you learn by studying.
Graded as usual.
- 10 pts: In-lab tests (8 worth 1.25 pts each)
- 5 pts: Quizzes (5 worth 1 pt each)
- 10 pts: Lab Midterm
- 15 pts: Lecture Midterm
- 20 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.
- Pair Programming
For courses in which the Pair Programming methodolgy is adopted for home programming assignments, you will need to read & follow carefully the guidelines, and use this template for the personal log that must accompany every assignment submission.
- 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!
- 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.
- 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.
- Home programming assignments -- Under the pair programming paradigm, you are expected to produce a single program created by two people working together.
However, copying code from ANY outside source (any book, current or past students, past solutions (even if they are your own!), web sites, etc.) is still 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.
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 6 hours/week in lecture, 6 hours/week in lab, and 12 to 20 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 mailed to you on a regular basis throughout the quarter.