UCR CS 10: Introduction to Computer Science I
Winter 2005
Basic Information  
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.
Instructor :
Sections 001 and 002:
Kris Miller (kmiller@cs.ucr.edu).
Office hours:
- MF 10:15am - 11:15am
- or by appt.
Office:
Surge Bldg. 341.
Lecture:
Section 001: MWF 2:10pm-3:00pm
SPR 1340
Section 002: MWF 3:10pm-4:00pm
SPR 1340
Teaching Assistants:
Office hours held in
Surge Bldg. 282.
Lab section 021: Mon 6:10 - 9:00pm
Surge Bldg. 170 - Yonghui Wu
(yonghui@cs.ucr.edu)(Office Hours:
Mon 1:00 - 2:00pm)
Lab section 022: Mon 6:10 - 9:00pm
Surge Bldg. 171 - Jorge Mena
(jmena@cs.ucr.edu)
(Office Hours: Mon 5:00 - 6:00pm)
Lab section 023: Tue 8:10 - 11:00am
Surge Bldg. 170 - Eric Cheung
(chuncheung@cs.ucr.edu)
(Office Hours: Thu 9:30 - 10:30am)
Lab section 024: Tue 11:10 - 2:00pm
Surge Bldg. 170 - Aggelos Vlavianos
(aggelos@cs.ucr.edu)
(Office Hours: Wed 12:00 - 1:00pm)
Lab section 025: Tue 2:10 - 5:00pm
Surge Bldg. 170 - Matt Fast
(mfast@cs.ucr.edu)
(Office Hours: Thu 4:00 - 5:00pm)
Lab section 026: Tue 2:10 - 5:00pm
Surge Bldg. 171 - Teddy Matinde
(tmatinde@cs.ucr.edu)
(Office Hours: Fri 12:00 - 1:00pm)
Textbook:
Big C++,
by Cay Horstmann and Timothy Budd, John Wiley & Sons, Inc.
ISBN: 0-471-47063-5
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.
Course grading:
The course consists of 100 points:
- Practice items (15 points) -- Designed to help you learn and to do
well on the assessment items, and evaluated essentially as
satisfactory or unsatisfactory.
- 0 pts: In-class exercises
(designed to help you understand and retain lecture and reading material)
- 5 pts: CodeLab Homework
(10 - 15 exercises per week worth approx. 0.5 pts per week)
- 10 pts: In-lab exercises (10 worth 1 pt each)
- Assessment items (85 points) -- Mainly to determine
whether you are learning, and to also help you learn by studying.
Graded as usual.
- 20 pts: Midterm
- 20 pts: Final
- 10 pts: Quizzes (best 5 scores worth 2 pts each)
- 15 pts: Programming assignments (8 worth approx. 2 pts each)
- 20 pts: In-lab practical exams (4 worth 5 pts each)
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 "Big C++"
by Cay Horstmann and Timothy Budd.
- Week 1: Jan. 3 - Jan. 7
Course intro, Intro to computers and C++
(Ch 1 slides)
(Ch 1 slideshow)
Fundamental Data Types
(Ch 2 slides)
(Ch 2 slideshow)
In-lab 1
Homework 1 DUE: Tue, Jan 11
by 7pm
Programming
Assignment 1 DUE: Fri, Jan. 14 before 7pm
- Week 2: Jan. 10 - Jan. 14
(Ch 2 cont.)
In-lab 2
Quiz 1(Wed, Jan. 12)
Homework 2 DUE: Tue, Jan 18
Programming
Assignment 2 DUE: Fri, Jan. 21
- Week 3: Jan. 17 - Jan. 21
Objects (Ch 3)
(Ch 3 slides)
(Ch 3 slideshow)
In-lab 3
Quiz 2(Wed, Jan. 19)
Homework 3 DUE: Tue, Jan 25
Programming
Assignment 3 DUE: Fri, Jan. 28
- Week 4: Jan. 24 - Jan. 28
Basic Control Flow (Ch 4)
(Ch 4 slides)
(Ch 4 slideshow)
In-lab 4
Quiz 3(Wed, Jan. 26)
Homework 4 DUE: Tue, Feb. 1
- Week 5: Jan. 31 - Feb. 4
(Ch 4 cont)
Review
In-lab 5
Homework 5 DUE: Tue, Feb. 8
Programming
Assignment 4 DUE: Fri, Feb. 11
Midterm(Fri, Feb. 4)
- Week 6: Feb. 7 - Feb. 11
(Ch 4 cont - loops)
Functions (Ch 5)
(Ch 5 slides)
(Ch 5 slideshow)
In-lab 6
Homework 6 DUE: Tue, Feb. 15
Programming
Assignment 5 DUE: Fri, Feb. 18
- Week 7: Feb. 14 - Feb. 18
(Ch 5 cont.)
In-lab 7
Valentine Program
Quiz 4(Wed, Feb. 16)
Homework 7 DUE: Tue, Feb. 22
Programming
Assignment 6 DUE: Sun, Feb. 27
- Week 8: Feb. 21 - Feb. 25
Advanced Control Flow (Ch 7)
(Ch 7 slides)
(Ch 7 slideshow)
In-lab 8
Quiz 5(Wed, Feb. 23)
Homework 8 DUE: Tue, Mar. 1
Programming
Assignment 7 DUE: Sun, Mar. 6
- Week 9: Feb. 28 - Mar. 4
(Ch 7 cont.)
Vectors (Ch 9)
(Ch 9 slides)
(Ch 9 slideshow)
In-lab 9
Quiz 6(Wed, Mar. 2)
Vector program
Homework 9 DUE: Tue, Mar. 8
Programming
Assignment 8 DUE: Fri, Mar. 11
- Week 10: Mar. 7 - Mar. 11
(Ch 9 cont)
Software design, testing and debugging
Review
In-lab 10
Quiz 7
Homework 10 DUE: Sun,
Mar. 13
Fall '04 Final
(solution DOC)
(solution HTML)
Midterm Solutions
- 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 exercises -- Dependent on instructor instructions for
particular exercise.
- Homework --
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 teamate's solution.
- Academic dishonesty: cheating is strongly punished.
Read the CS department's
policies and rules regarding academic dishonesty. Pay special
attention to "Programming Assignments" and "Active and Passive Cheating".
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 write it. 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 policy for at-home programs:
- Late penalty for at-home programs:
10% for 1-day late, not accepted
after 1 day late.
- "Day late" is defined as 24 hours 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.