UCR CS 10: Introduction to Computer Science I
Fall 2003
Lecture Schedule  
Lab Schedule  
Turnin  
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.
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 (announcements, assignments,
handouts, etc.) will be via the ilearn site (not this course
outline page). Some communications may be made only via the
ilearn site, so check it regularly.
Instructor(s) :
Sections 002 and 003: Kris Miller (kmiller@cs.ucr.edu).
Office hours: MW 2:00pm-3:00pm or by appt.
Office:
Surge Bldg. 341.
Section 001: Brian Linard (blinard@cs.ucr.edu).
Office hours: TBA.
Office:
Surge Bldg. 340.
Lectures:
Section 001: TR 12:40pm-2:00pm
HMNSS 1501
Section 002: TR 2:10pm-3:30pm
WAT 1000
Section 003: TR 6:40pm-8:00pm
OLMH 421
Teaching Assistants:
Office hours held in
Surge Bldg. 282.
Matt Fast (mfast@cs.ucr.edu):
Tue 12:30pm - 2:00pm.
Luke Keppler (lkeppler@cs.ucr.edu
): Mon 1:00pm - 3:00pm.
Honomount(Monty) Rawat (
hrawat@cs.ucr.edu): Wed 2:00pm - 3:00pm.
Shaohui(Steve) Chen (schen@cs.ucr.edu
)
Lan Liu (lliu@cs.ucr.edu):
Fri 1:10pm - 2:10pm.
Bhrigu Celly (bcelly@cs.ucr.edu)
Xiaopeng Xi (xxi@cs.ucr.edu)
Textbook:
Problem solving with C++
- the object of programming,
by Walter Savitch, fourth edition, Addison Wesley
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:
Letter grades are roughly assigned according to the usual
90/80/70/60 scale out of 100 total course points, with 90 and
above corresponding to an A, 80 and above to a B, 70 and above to a
C, 60 and above to a D, and less than 60 to an F. +/- grades will
be given. A+'s will be given to students in the high 90's who
also have turned in all required material and many of the challenge
in-lab excercises. The course is divided into two grading components,
combined as a weighted sum to total 100 points:
65%: Lecture component:
5: Homeworks
10: In-class Quizzes
20: Midterm
30: Final
35%: Lab component:
10: Scheduled lab section attendance, participation, excercises
17: At-home programming assignments, including adherence to
good
coding standards
8: In-lab practical exams
To ensure minimum competency in successive courses requiring a
C- or better in this course, the following grading scheme is used:
a C- minimum in both components is necessary for at least a C-
final course grade, regardless of the components' weighted sum;
otherwise, the final course grade will be no greater than a D+.
For example, a B in the lab component and a D in the lecture
component might yield a weighted sum of a C, but would result in
a final course grade of D+. A C- in either component corresponds
to roughly 70% of the total points for that component.
Approximate Time Requirements:
This is a four-unit CS course. As such, you should expect to spend
the following approximate amount of time:
3 hours/week in lecture
3 hours/week in lab
6 to 10 hours/week doing individual study (readings,
homeworks, programming, lab preparation, etc).
Please don't underestimate the time you will need to spend on this
course. These are real time amounts spent by average successful past
students. Computer Science and Engineering are challenging disciplines
requiring extensive time to master. Practice, practice, practice!
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.
- Week 0: Course intro, Intro to computers and C++
(Ch1 slides - ppt)
(Ch1 slides - pdf)
- Week 1: (Ch1 cont);
C++ basics: variables and assignments, I/O
(Ch2 slides - ppt)
(Ch2 slides - pdf)
Homework 1: Due Oct. 7
Quiz 1 (001, 002)
Quiz 1 (003)
- Week 2: Data types and expressions, simple flow of control,
program style
(Ch2 slides - ppt)
(Ch2 slides - pdf)
Homework 2: Due Oct. 14
Quiz 2
- Week 3: (Ch2 cont);
Functions and procedures, local variables
(Ch3 slides - ppt)
(Ch3 slides - pdf)
Homework 3: Due Oct. 21
- Week 4: (Ch3 cont);
Review & Midterm(Thu)
- Week 5: More on functions
(Ch4 slides - ppt)
(Ch4 slides - pdf);
I/O streams
(Ch5 slides - ppt)
(Ch5 slides - pdf)
Homework 4
Quiz 3 (001, 002)
Quiz 3 (003)
- Week 6: Structures (Ch 6.1 only)
(Ch6 slides - ppt);
(Ch6 slides - pdf);
More flow of control
(Ch7 slides - ppt)
(Ch7 slides - pdf);
Homework 5
(#9 & #10 solution)
Quiz 4 (001, 002)
Quiz 4 (003)
- Week 7: Arrays
(Ch10 slides - ppt)
(Ch10 slides - pdf);
Homework 6
(#9 & #10 solution)
Quiz 5
- Week 8: Strings
(Ch11 slides - ppt)
(Ch11 slides - pdf);
Homework 7
- Week 9: Software design, testing and debugging
Quiz 6
- Week 10 : Miscellaneous, Review
Final Review Document
Homework 8 (for final exam review only)
Subject to change as the quarter progresses.
- Material covered: You'll be responsible for learning
material covered in lecture, in the textbook, and in lab. Lecture
does not cover all required material alone.
- Academic dishonesty: cheating is strongly punished
(typically with an F in the course). You can report cheating anonymously
at:
https://www.cs.ucr.edu/cheating/. Assignment submissions must
represent your own original work. Copying from any sources (web, other
books, past or current students, etc.) is strictly prohibited --
learning to program requires you to learn to solve programming problems
by yourself; using existing code and other resources becomes important
later on in your studies. While discussing assignments
is encouraged, team coding (even of pseudo-code) or letting others
see your code are specifically not allowed. Be aware that
programs are automatically compared to the current and prior quarter's
programs for plagiarism, using a sophisticated code-comparison tool
that ignores insignificant differences (like whitespace and variable
names). If you're smart enough to fool the instructors, TAs, and
code-comparison tools, you're more than smart enough to do the programs
on your own!
A couple more notes. Be aware that a subset of exams may be photocopied,
for comparison with exams submitted for regrades. Also, be aware that
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).
- Final Exams are scheduled by the University, not by the
instructor, and are correlated to the course sections. What that means is
that you must take the final exam scheduled for the section you are
enrolled in.
- Regrade policy: regrade requests must be submitted in
writing and within one week of the distribution of the graded
material. The entire exam/assignment may be regraded, not just the
problem in question, so the grade may go up or down. Thus, think your
regrade requests through carefully. Grade-database errors should also
be pointed out within one week of posting.
- 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.
- 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.
- Communicating with the instructors and TAs: when sending
electronic mail to the instructors or TAs, please include your
full name, course & section details, student ID number,
and UCR email address, so that we may properly identify you (remember, many
students have similar names, and instructors may be teaching several courses).
Also, please try to be polite and use reasonable grammar and formatting.
- Cell phones: During lectures and lab sessions, please
turn off your cell phone.
- Homework and lab reports: All turned-in assignments
will be turned in electronically.
Each file should begin with our
report
template header. Source code must 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!
- Reading: Read the current book sections before coming
to lecture, and attend all lectures in their entirety. To encourage these
important college study habits, we may give a few simple pop quizzes
during the quarter, at any time during lecture.
- Students are required to stay the full three hours of lab session
every week. You'll have in-lab exercises, discussions, and
practical exams. Work ahead or on extra course-related material if you
finish early.
- During lab discussion time, students should not use the computers.
Ideally, students would move their chairs to the whiteboard area.
- Prepare for lab before arriving.
- 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.