UCR CS 10: Introduction to Computer Science I
Spring Quarter 2003
Lecture Schedule  
Lab Schedule  
Exam 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++. By the end
of the quarter, you should be able to write well-crafted, non-trivial
programs in this language.
Catalog description :
Lecture, three hours; laboratory, three hours.
Prerequisite: 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 you are expected to check it regularly.
Instructor :
Brian Linard (blinard@cs.ucr.edu)
Office hours: Wednesday 10:00 am to noon, 1:30 to 3:00 pm, or by appointment
Office:
Surge Bldg. 340.
Teaching Assistants and office hours:
Anwar Adi (aadi@cs.ucr.edu)
Lan Ye (lye@cs.ucr.edu)
Song Lin (slin@cs.ucr.edu)
Ya-Lee Tsai (ytsai@cs.ucr.edu)
Office hours held in
Surge Bldg. 282.
Lectures:
Section 1: TR 9:10 to 10:30 am in
University Village Theatre. 8
Section 2: TR 10:40 am to 12:00 noon in
University Village Theatre. 10
Labs:
Lab attendance is mandatory. Plan to stay in the lab for the entire
lab session, working on material related to this course.
Lab schedule
- section 021: Monday 8:10 to 11:00 am S172
- section 022: Monday 11:10 to 2:00 pm S172
- section 023: Thursday 8:10 to 11:00 am S172
- section 024: CANCELLED
- section 025: Wednesday 8:10 to 11:00 am S172
- section 026: Thursday 2:10 to 5:00 pm S172
- section 027: Friday 8:10 to 11:00 am S172
- section 028: Friday 11:10 to 2:00 pm S172
- section 029: Friday 6:10 to 9:00 am S172
- section 030: Monday 11:10 to 2:00 pm S170
Text Book:
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 assigned very approximately 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
likely 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: Theory component:
15: In-class Quizzes
20: Midterm
30: Final
35: Practical component:
10: labs: attendance & participation, in-lab programming exercises,
and adherence to
coding standards
8: In-lab practical tests
10: Take-home programming assignments.
7: Final home programming project.
To ensure minimum competency in successive courses requiring a
C- or better in this course, the following grading scheme will be used:
a C- minimum in both components is necessary to achieve a C-
minimum for the 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 instead
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.
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
comprehensible and useful the lectures will be.
The Chapter references are to the class text book "Problem Solving with C++" by Walter Savitch
- Week 1: Introduction to computers and C++ (Ch1)
- Week 2: C++ basics: variables and assignments, I/O (Ch2)
Quiz 1
- Week 3: Data types and expressions (Ch2)
Quiz 2
- Week 4: Simple flow of control, program style (Ch 2)
Quiz 3
- Week 5: Review & Midterm
- Week 6: Functions and procedures, local variables (Ch3)
Quiz 4
- Week 7: More on functions (Ch4)
I/O streams (Ch5)
Quiz 5
- Week 8: Classes (Ch6)
More flow of control (Ch7)
Quiz 6
- Week 9: Arrays (Ch10)
Quiz 7
- Week 10: Miscellaneous / Review
Subject to change as the quarter progresses.
- Week 1: In-lab: Basic systems intro; Hello World program; Turnin
- Week 2: In-lab: Solving C++ syntax errors
- Week 3: In-lab: Variables; Keyboard input
- Week 4: In-lab: Using the debugger
More input/output; Strings; Arithmetic operators
- Week 5: In-lab: Nested loops
- Week 6: In-lab: Mid-quarter evaluations; Study habits
Programming assignment 1: Math tutor
- Week 7: In-lab: Practical 1 (flow of control)
Scope and functions
Programming assignment 2: Credit card debt
- Week 8: In-lab: Output formatting, parameter passing
Programming assignment 3: 13 stone game
- Week 9: In-lab: Practical 2 (functions)
Arrays
Programming assignment 4: Adventure game
- Week 10: In-lab: Miscellaneous / work on final project
Subject to change
- Mid-term exam: In class, Thursday May 1st
- Final exam:
- section 001: Tuesday June 10th, 8 to 11 a.m. (UV THE 8)
- section 002: Tuesday June 10th, 3 to 6 p.m. (UV THE 10)
- Material covered: You are expected to achieve a good grasp of
all material covered in lectures (which will correspond very closely to
the cited sections of the text), and all material covered in the labs,
much of which will not be covered in lectures.
- Academic dishonesty: cheating will be 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 together 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.