UCR CS 141: Intermediate Data Structures and Algorithms

Spring Quarter 2003


Lecture Schedule   Lab Schedule  Email list   Turnin   Grades  Previous offerings 

Overview

CS 141 introduces what many say is the core of Computer Science: data structures like graphs, and problem solving techniques. This material is essential in almost all of our upper-division courses. This is really the "science" in Computer Science!

CS 141. Intermediate Data Structures and Algorithms. (4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 014 with a grade of "C-" or better; MATH 009C or MATH 09HC; MATH 112; proficiency in C++. Explores basic algorithm analysis using asymptotic notations, summation and recurrence relations, and algorithms and data structures for discrete structures including trees, strings, and graphs. Also covers general algorithm design techniques including "divide-and-conquer," the greedy method, and dynamic programming. Homework and programming assignments integrate knowledge of data structures, algorithms, and programming.
UCR course schedule   UCR course catalog 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 : Sitanshu Kumar (sitanshu@cs.ucr.edu)
Office hours: Mon/Wed 1:00-2:00 Office: Surge Bldg. 359.
Teaching Assistants and office hours: Rui Jiang (rjiang@cs.ucr.edu), Office hours: F 10-11
Ilker Basaran (ibasaran@cs.ucr.edu), Office hours: M 10-11
Yu Luo (yuluo@cs.ucr.edu), Office hours: T 10-11
Office hours are held in Surge Bldg. 282.
Lectures: MWF 2:10-3:00, STAT B650. Labs: Sec 21, M, 6:10-9:00, SURGE 171
Sec 23, T, 11:10-2:00, SURGE 171
Sec 24, T, 2:10-5:00, SURGE 171
Sec 26, F, 11:10-2:00, SURGE 171
Books: Algorithm Design (Foundations, Analysis, and Internet Examples) by Michael T. Goodrich and Roberto Tamassia, Wiley.
Lecture Slides: All lecture slides are available here
Course grading: The course is divided into two grading components, combined as a weighted sum: 65% Lecture component: 15%: Quizzes/Homeworks
20%: Midterm
30%: Final
35% Lab component: 15%: In-lab programming exercises, attendance, participation, and adherence to coding standards
15%: Take-home programming assignments.
5%: In-lab practical exams
Letter grades are roughly assigned according to the usual 90/80/70/60 scale: 90% and above corresponds 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 likely be given. A+ may be given to students in the high 90's who also have turned in all required material. On occassion scores may be curved, but always to the benefit of the students, never the other way :-).

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+.

Approximate Time Requirements: This is a four-unit CS course. As such, you should expect to spend the following approximate amount of time: 3 hours/week in lecture
3 hours/week in lab
6 to 10 hours/week doing individual study (readings, homeworks, programming, lab preparation, etc).
Please don't 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

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 comprehensible and useful the lectures will be. AD below refers to the Algorithm Design textbook. Schedule is subject to change as the quarter progresses.

Topics to focus for Final

Lab Schedule

          In-lab exercises           In-lab exercises

Subject to change as the quarter progresses.

General course features and policies (please read these carefully)

Lab guidelines (please read these carefully)

Electronic assignment turn-in

Anonymously report suspected cheating

Grades

Quiz1 , Answers for Quiz1

Quiz2 , Answers for Quiz2

Quiz3 , Answers for Quiz3

Midterm Qustions , Answers for Midterm

Solutions for Take-Home Assignment 1

Solutions for Take-Home Assignment 3

View All Grades

Course email list

Course mailing list (send mail now or access the archive): Be sure to sign up to receive important announcements, which will be madeonlythrough the course email list. 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).

Previous course offerings' web pages

Additional Resources