UCR CS 14: Introduction to Data Structures And Algorithms

Fall Quarter 2003: September 22, 2003 - December 13, 2003


Lecture Schedule
Lab Schedule

Current Grades
Exam Schedule

Coding Style Guide
Electronic Turn-in
Course Email List

Anonymously Report Suspected Cheating
Anonymously Provide Comments/Suggestions

FAQ page
Previous CS14 Offerings

Overview

In CS 14, you'll you'll learn how to utilize and design reusable abstractions to lift software development to a higher level. You'll also learn about fundamental data structures and algorithms that are widely applicable. Hopefully you'll have fun too!

Catalog description: CS 14. Introduction to Data Structures and Algorithms. (4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 12 with a grade of "C-" or better; MATH 009A or MATH 09HA; proficiency in C++. Topics include basic data structures such as arrays, lists, stacks, and queues; dictionaries including binary search trees and hashing; priority queues (heaps); introductory analysis of algorithms; sorting algorithms; and object-oriented programming including abstract data types, inheritance, and polymorphism. Also covers solving complex problems through structured software development.

Note: students receiving less than a C- in the CS 12 prerequisite will be dropped automatically a few weeks into the quarter.

Basic information

Instructor: Wagner Truppel (wagner@cs.ucr.edu, Surge 340)

Office hours:
by appointment only, requested by email, and not guaranteed unless you receive a confirmation reply.
Teaching Assistants: Titus Winters (titus@cs.ucr.edu)

Office hours:
Wed 4-5pm, Thu 10-11am Surge 281 (hidden behind the pillar). Also by appointment.

Nelson Perez (nperez@cs.ucr.edu)

Office hours:
Mon 12-1pm Surge 282.
Lectures: Mon, Wed, Fri 9:10am-10:00am Bourns Hall A-125 Labs: Section 021: Mon 11:10am-2:00pm Surge 171
Section 023: Thu 11:10am-2:00pm Surge 170
Section 025: Tue 6:10pm-9:00pm Surge 170

Lab attendance is required. Attendance will be taken at the beginning and end of every lab section, and points awarded accordingly. During lab sections, you are expected to be working on material related to this course.
Textbook: Data Abstraction And Problem Solving With C++: Walls and Mirrors, Frank M. Carrano and Janet J. Prichard, 3rd ed., 2002 Addison-Wesley.

Please consult the errata pages for the book because there are always errors and typos in every book.

For optional books, visit the Additional Resources section below.

Extra (Optional) Readings:
In addition to the required readings, I've made available photocopies of certain book chapters which I believe have clear presentations of some of the material to be covered in the course. This is not mandatory reading. This extra material is accessible from the UCR Printing and Reprographics Office on campus, next to the UCR Bookstore's entrance. Just ask for the CS 14 Readings.
Course Email List: CS 14 mailing List (send mail now or access the archive): Be sure to sign up to receive important announcements and other information. You must use your CS or EE account, or else some other UCR account, so be sure to learn how to read those accounts or at least automatically forward messages to your personal email address (just create in your home directory a file named ".forward" containing your personal email address). Assessment Schedule: Home Programming Assignments: turned in electronically by 8 pm on Sundays, unless otherwise noted by the instructor.

Homework Assignments: almost every week, due at the beginning of the Monday lecture.

Quizzes: almost every Monday, at the beginning of the lecture. There may also be pop quizzes at any time.

Midterm: Friday, October 31, during that day's lecture.

Final: (to be held in the same classroom where the lectures take place)
Friday, December 12, 8:00am - 11:00am
Course Grading: Letter grades will be assigned roughly according to the standard 90/80/70/60 scale out of 100 percentage points overall, with a 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 out as appropriate. 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 exercises. The course is divided into two grading components, combined as a weighted sum to total 100 points: To ensure minimum competency in successive courses requiring a C- or better in this course, 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 (double these estimates for summer session offerings):

3 hours/week attending the lectures.
3 hours/week attending the lab sessions.
6 to 10 hours/week doing individual study (readings, homeworks, programming, lab preparation, etc).

Please do not 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.

Lecture schedule

Subject to change as the quarter progresses.

Do not put off reading the assignments or you will risk falling behind. 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.

Lab schedule

Subject to change as the quarter progresses.

General course features and policies (please read these carefully)

Lab Guidelines (please read these carefully)


Additional Resources


© 2003 UC Riverside Department of Computer Science & Engineering. All rights reserved.