UCR CS 14: Introduction to Data Structures And Algorithms

Winter Quarter 2004: January 2, 2004 - March 20, 2004


Course Schedule

Exam Schedule

Coding Style Guide
Electronic Turn-in
Course Email List

Tutorials

Anonymously Report Suspected Cheating
Anonymously Provide Comments/Suggestions

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 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: Ann Gordon-Ross (ann@cs.ucr.edu) Surge 348
Office hours: Monday 12:00 to 1:00 and 2:00 to 4:00
Many questions can be answered via email so if you can't make my office hours, please email me. I am also available by appointment.
Teaching Assistants: Titus Winters (titus@cs.ucr.edu)
Office hours: Monday 2:00 to 3:00 and Thursday 3:00 to 4:00
Surge 281 (hidden behind the pillar). Also by appointment.

Xiao Zhang (xzhang@cs.ucr.edu)
Office hours: Friday, 11:00 to 12:00
TBA Surge 282.

Keri Nishimoto (knishimo@cs.ucr.edu)
Office hours: Wednesday, 3:00 to 4:00
Surge 282.
Lectures: Mon, Wed, Fri 1:10am-2:00am Watkins 1000 Labs: Section 021: Fri 8:10am-11:00am - Keri Nishimoto - Surge 171
Section 022: Wed 2:10pm-5:00pm - Titus Winters - Surge 170
Section 023: Wed 6:10pm-9:00pm - Titus Winters - Surge 171
Section 024: Fri 8:10am-11:00am - Xiao Zhang - Surge 172

Textbook: Data Abstraction And Problem Solving With C++: Walls and Mirrors, Frank M. Carrano and Janet J. Prichard, 3rd ed., 2002 Addison-Wesley.
For optional textbooks, visit the Additional Resources section below.

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 -- some information will only be given via the mailing list, and you'll be responsible for knowing that information. Some questions asked of TAs and the instructor will be answered to the whole mailing list so that everyone can benefit from the question and answer. You need to use your CS or EE account, or else some other UCR account, to access the list, 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).
Course Grading: The course is divided into two grading components, combined as a weighted sum to total 100%: 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 also be given. Students are not competing against one another, but rather against the scale -- all students can get good grades if all do well. I may scale ("curve") an individual item if it HELPS the class.

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.

Course 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. You are expected to do the reading before each lecture. Be prepared for pop-quizzes throughout the quarter on the assigned reading.

To better help you manage all important dates, I have created calendars for you. January, February, and March,


General course features and policies (please read these carefully)

Lab and At-Home Programming Assignment Guidelines (please read these carefully)


Additional Resources


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