UCR CS 10: Introduction to Computer Science I
Summer Session II 2004
Basic Information  
Lecture Schedule  
Turnin  
Answer Sheet  
Previous CS10's  
Solution to Final  
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 units) 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 :
Dr. Brian Linard (blinard@cs.ucr.edu).
Office hours:
- Tuesday 2:00 - 6:00 pm (by appointment
Office:
Surge Bldg. 340.
Lecture:
MTWR 8:00 - 9:30 am
OLMH 1116
Final: Friday, August 28, 8:00 - 10:00 am
Teaching Assistant:
Song Lin (slin@cs.ucr.edu).
Office hours:
Office:
Surge Bldg. 282
Lab:
MW 10:00 am - 1:00pm
Surge Bldg. 283
Textbook:
Big C++,
by Cay Horstmann and Timothy Budd, John Wiley & Sons, Inc.
ISBN: 0-471-47063-5
For optional books, visit the
Additional Resources section below.
Course Email List:
CS 10 mailing list
(send mail now or
access the archive)
ALL course related information/announcements will be conveyed to you via
email. 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 links above to check
the subscription list).
All communications from the CS department will be to your cs (or other
ucr) email account, and all communications from you to the department
must also originate from the same account. Make sure you make this your
primary account, or at least have it forward all mail to your primary
account.
NOTE: Mail sent to this mailing list will be received by
all students in the class. It is considered cheating to give assignment
source code to another student, so do NOT post
assignment source code to this list.
Your grades will be posted to
www.ilearn.ucr.edu
Enrolling in this course gives you automatic access to the
UCR "ilearn" site: your login id is the name part of your ucr
student email address, and your initial password is your Student
ID (no dashes or spaces).
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 activities -- roughly 1 pt per week, may vary
(easy if you attend lectures and stay current with the readings)
- 5 pts: Homeworks -- must complete 5 of 7
satisfactorily, else course grade cannot exceed D+.
(one every Monday & Thursday)
- 10 pts: In-lab exercises
- Assessment items (80 points) -- Mainly to determine
whether you are learning, and to also help you learn by studying.
Graded as usual.
- 10 pts: Midterm
- 20 pts: Final
- 15 pts: Quizzes -- a quiz every Tue and Thur except midterm
and final weeks -- drop lowest 2
- 15 pts: At-home programs (one every Monday & Thursday)
- 20 pts: In-lab practical exams (4 total)
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 session progresses.
Submission due times
- Homework problem sets (hw): normally set on Mondays & Thursdays, due via e-turnin
by the following Thursday & Monday, respectively, at 11 pm
- Home programming assignments (assn): normally set on Mondays & Thursdays, due via e-turnin
by the following Thursday & Monday, respectively, at 11 pm
- Quizzes: Generally on Tuesdays & Thursdays (but pop-quizzes can be sprung at any
time of day or night <g>).
Make sure you have a few copies of your
personalized answer sheet
with you in all classes (only the first page is needed).
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 "Big C++"
by Cay Horstmann and Timothy Budd.
Note: A "unit" corresponds to a week in regular quarter - i.e. 2 lectures & 1 lab
- Unit 1 (7/26 - 27): Course intro, Intro to computers and C++
(Ch 1 slides)
(Ch 1 slideshow)
Homework 0 DUE: 11 pm Thursday, 7/29
In-lab 1
- Unit 2 (7/28 - 29): Fundamental Data Types
(Ch 2 slides)
(Ch 2 slideshow)
Homework 1 DUE: 11 pm Monday, 8/2
In-lab 2
Programming
Assignment 1 DUE: 11 pm Monday, 8/2
SOLUTION
Quiz 1 solution
- Unit 3 (8/2 - 3): Objects (Ch 3)
(Ch 3 slides)
(Ch 3 slideshow)
Homework 2 DUE: 11 pm Thursday, 8/5
Programming
Assignment 2 DUE: 11 pm Thursday, 8/5
SOLUTION
In-lab 3
Quiz 2 solution
- Unit 4 (8/4 - 5): Basic Control Flow (Ch 4)
(Ch 4 slides)
(Ch 4 slideshow)
Homework 3 DUE: 11 pm Monday, 8/9
Programming
Assignment 3 DUE: 11 pm Monday, 8/9
SOLUTION
In-lab 4
Quiz 3 solution
- Unit 5 (8/9 - 10): (Ch 4 cont); Functions
(Ch 5 slides)
(Ch 5 slideshow)
Homework 4 DUE: 11 pm Thursday, 8/12
Programming
Assignment 4 DUE: 11 pm Thursday, 8/12
SOLUTION
In-lab 5
SAMPLE MIDTERM EXAM
solution
- Unit 6 (8/11 - 12): Midterm
MIDTERM SOLUTION
Homework 5 DUE: 11 pm Monday, 8/16
Programming
Assignment 5 DUE: 11 pm Monday, 8/16
SOLUTION
In-lab 6
- Unit 7 (8/16 - 17): Advanced Control Flow (Ch 7)
(Ch 7 slides)
(Ch 7 slideshow)
Homework 6 DUE: 11 pm Thursday, 8/19
Programming
Assignment 6 DUE: 11 pm Thursday, 8/19
SOLUTION
In-lab 7
Quiz 4 solution
- Unit 8 (8/18 - 19): Vectors and Arrays (Ch 9)
(Ch 9 slides)
(Ch 9 slideshow)
Homework 7 DUE: 11 pm Monday, 8/23
Programming
Assignment 7 DUE: 11 pm Monday, 8/23
In-lab 8
Quiz 6 solution
- Unit 9 (8/23 - 24): (Ch 9 cont); Software design, testing and
debugging
Homework 8 DUE: 11 pm Thursday, 8/26
In-lab 9
- Unit 10 (8/25 - 26): Review (Thursday)
(Bring questions!!
)
In-lab 10
SAMPLE FINAL EXAM
solution
- 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 practicals -- Obviously
no collaboration
- In-lecture activities -- Dependent on instructor instructions for
particular activity.
- 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 strongly
ENCOURAGED. You will be working in teams, but programs must
represent YOUR OWN original work. Teams should work on the
algorithm together and help debug/test each others code. However,
copying code from ANY source (any book, current or past
students, past solutions, the web, etc.) is STRICTLY FORBIDDEN.
Code between teamates will be similar, but you are
not allowed to just copy a teamates solution.
- 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.
- 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 wri 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 6 hours/week in lecture, 6 hours/week in lab,
and 12 to 20 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.