UCR CS 10: Introduction to Computer Science I
Spring 2004
THIS PAGE IS UNDER CONSTRUCTION.
Lecture Schedule  
Turnin  
Answer Sheet  
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.
Class web site:
www.ilearn.ucr.edu
Enrolling in this course gives you automatic access to the
UCR "ilearn" site: your login id is the name field of your ucr
student email address (name@student,ucr,edu), and your initial
password is your Student ID (no dashes or spaces).
All communication with the class will be via the ilearn site.
Some communications may be made only via the
ilearn site, so check it regularly.
Instructor(s) :
Kris Miller (kmiller@cs.ucr.edu).
Office hours:
- Tue: 2 - 3pm
- Wed: 1 - 2pm
- or by appt.
Office:
Surge Bldg. 341.
Lectures:
Section 001: MWF 9:10am - 10:00am
GEOL 1408
Final: Thursday, June 10, 11:30am - 2:30pm
Section 002: MWF 10:10am - 11:00am
GEOL 1408
Final: Monday, June 7, 11:30am - 2:30pm
Section 003: MWF 11:10am - 12:00pm
GEOL 1408
Final: Friday, June 11, 11:30am - 2:30pm
Teaching Assistants:
Office hours held in
Surge Bldg. 282.
Lab section 021: M 2:10 - 5:00pm
Surge Bldg. 170 - Luke Keppler
(lkeppler@cs.ucr.edu)
(Office Hours: Mon 12 - 2pm)
Lab section 022: T 8:10 - 11:00am
Surge Bldg. 170 - Abhishek Mitra
(amitra@cs.ucr.edu)
(Office Hours: Fri 2 - 3pm)
Lab section 023: T 11:10 - 2:00pm
Surge Bldg. 170 - Matt Fast
(mfast@cs.ucr.edu)
(Office Hours: Wed 3 - 4pm in Surge 353)
Lab section 024: T 2:10 - 5:00pm
Surge Bldg. 170 - Matt Fast
(mfast@cs.ucr.edu)
Lab section 025: T 8:10 - 11:00am
Surge Bldg. 171 - Xiaopeng Xi
(xxi@cs.ucr.edu)
(Office Hours: Tue 5 - 6pm)
Lab section 026: T 11:10 - 2:00pm
Surge Bldg. 171 - Anwar Adi
(aadi@cs.ucr.edu)
(Office Hours: Mon 3 - 4pm)
Textbook:
Problem solving with C++
- the object of programming,
by Walter Savitch, fourth edition, Addison Wesley
Be sure to buy the CodeMate enhanced version
ISBN: 0-321-19721-6
CodeMate:
You can access CodeMate directly from here (or buy it from here if you
have a used textbook).
You can download code samples & powerpoint presentations of the text from the web site.
For optional books, visit the
Additional Resources section below.
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, and evaluated essentially as
satisfactory or unsatisfactory.
- 5 pts: In-class exercises -- roughly 0.5 pts per week, may vary
(easy if you attend lectures and stay current with the readings)
- 5 pts: Homeworks -- 9 @ .55 pt -- must complete 7 of 9
satisfactorily, else course grade cannot exceed D+.
- 10 pts: In-lab exercises -- 10 @ 1 pt per week
- Assessment items (80 points) -- Mainly to determine
whether you are learning, and to also help you learn by studying.
Graded as usual.
- 25 pts: Midterm
- 25 pts: Final
- 10 pts: Quizzes -- 8 @ 1.4 pts, drop lowest
- 16 pts: At-home programs (8 @ 2 pts)
- 4 pts: In-lab practical exam (1 or 2)
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.
Subject to change as the quarter progresses.
Read the book before lecture! Reading ahead is one of the most effective
ways of doing better in class -- you'll be amazed how much more
useful the lectures will be. We'll follow the book closely.
The Chapter references are to the class text book "Problem Solving with C++"
by Walter Savitch.
Lecture slides for each chapter can be accessed by clicking the
appropriate reference.
- Material covered: You'll be responsible for learning
material covered in lecture, in the textbook, and in lab. We expect
you to read the textbook; lecture only emphasizes key material, but
does not cover all required material alone.
- Collaboration policy
(TA/instructor may override for particular assignment):
- Midterm, final, quizzes, lab practical -- Obviously
no collaboration
- In-lecture exercises -- Dependent on instructor instructions for
particular exercise.
- Homeworks --
Collaboration strongly ENCOURAGED. Study groups are great.
You should still do your own solution, and should not turn
in *identical* solutions as others, but similar solutions
are O.K. Remember though -- these are designed to help you
on the assesment items, so relying too heavily on others will
hurt you during assessment. Also, we may give homework problems
whose answers are in the book. That's so you get quick feedback;
you should submit your answers, not merely copies of the book's
answers.
- In-lab exercises -- Collaboration strongly ENCOURAGED. If you
complete an exercise, feel free to help others -- teaching
enhances your own learning.
- At-home programming assignments -- Collaboration is strictly
FORBIDDEN. Programs must represent YOUR OWN original work.
Sharing code or team-coding are not allowed. Copying code from
ANY source (any book, current or past students, past solutions,
the web, etc.) is not allowed.
Cooperation to the extent of helping to debug, or discussing the
general approach to solving the problem is encouraged, but should
never involve communicating code or even pseudo-code or explicit
algorithms. Your code must be unique -- if it is not, we will
find out, and will treat it as a case of flagrant academic
dishonesty.
- Academic dishonesty: cheating is strongly punished.
Report cheating (anonymously if you wish)
at:
https://www.cs.ucr.edu/cheating/. Note: we use a powerful
commercial 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
outsmart the tool, you are smart enough to write the program yourself.
We regularly catch several cases of copying in CS 10 EVERY QUARTER,
with severe penalties given.
PLEASE, don't risk it!!
A couple more notes.
Lying to an instructor in order to be able to make up a missed exam
or in other ways to obtain a better grade can be treated as academic
dishonesty. During exams, cell phones must be stored away in a
place not visible (e.g., inside a backpack).
- Regrade policy: regrade requests must be submitted in
writing and within one week of the distribution of the graded
material. Grade-database errors should also
be pointed out within one week of posting.
- Communicating with the instructors and TAs: when sending
electronic mail to the 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 student ID
number along with your lec and lab section numbers.
We prefer that you use your UCR email account so that you
get used to it (remember that UCR sends many official notices now only
by email). Please try to be polite and professional, and use
reasonable grammar and formatting.
- Homework and programming assignments: All turned-in
assignments will be turned in
electronically.
Assignments turned into the wrong folder may not be graded. If they
are graded, there will be a 20% penalty.
Each file should begin with our
report
template header. Source code should comply with professionally
accepted
coding
standards. 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!
- 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.
- Late/early policy for at-home programs:
- Late penalty for at-home programs due before the midterm:
5% for 1-day late, 10% for 2-days, 15% for 3-days, not accepted
after 3 days.
- Late penalty for at-home programs due after the midterm:
10% for 1-day late, 20% for 2-days, 30% for 3-days, not accepted
after 3 days.
- BONUS for any at-home program turned in EARLY:
2% for 1-day early, 4% for 2-days early, 6% for 3-days or more early.
- "Day early/late" is defined as 24 hours before/after the due time.
- 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,
homeworks, programming, lab preparation, etc) -- no exaggerating here!
Please don't underestimate the time you will need to spend on this
course. These are real time amounts spent by successful past
students. Computer Science and Engineering are challenging disciplines
requiring extensive time to master -- it's worth it in the end
(great jobs, great pay, respect, etc.), but those things don't come
for free. So practice, practice, practice! Work hard in school, then
reap the rewards of a great career.
- Final Exams are scheduled by the University, not by the
instructor, and are correlated to the course sections. This means
you take the final exam scheduled for the section you are enrolled in.
- Final grades: Per university policy, changes to your final
grade will 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.