UCR CS 14: Introduction to Data Structures And Algorithms

Fall Quarter 2005


Course 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 011/MATH 011; 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)
Office Location: ENGR II 407
Office hours: Mon 1-3

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:
Adam Meadows (ameadows@cs.ucr.edu)
Office Location: ENGR2 110
Office Hours: T 5pm-6pm

AEW Specialist: Jimmy Xu (jxu@cs.ucr.edu)
Academic Excellence Workshops are held TR 8-10pm in Engr II 202.
Lectures: Mon, Wed, Fri 3:10 pm to 4 pm SPR 2355 Labs: Section 021: Thursday 11:10am to 2:00pm ENGR2 129
Section 022: Thursday 8:10am to 11:00am ENGR2 127

Textbook: Data Structures and Algorithms in C++, Michael T. Goodrich, Roberto Tamassia, David Mount
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.

Lectures are designed to assist you in understand basic concepts for the textbook and to clarify difficult areas in the textbook. Lectures DO NOT replace reading the textbook and are instead a supplement to the textbook readings. You will be tested on material from the textbook that is not covered in lecture. Do not put off reading the assigned chapters 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.




General course features and policies (please read these carefully)

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


Additional Resources

Below are a list of books that I find very useful. I only recommend books that I personally use.

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