UCSCBaskin School of Engineering  
General Information Events, News & Organizations Degrees & Departments Research Classes Admissions & Advising People & Jobs Administration
CMPS 101 - Fall03-02

Abstract Data Types

Fall  2003



  • Announcements: (12/05/03) 12:00AM




  • Handouts


  • Genral Information

Description:  Studies basic algorithms and their relationships to common abstract data types.  Covers the notions of abstract data types and the distinction between an abstract data type and an implementation of that data type.  The complexity analysis of common algorithms using asymptotic (big "0") notation is emphasized.  Topics include sorting and searching techniques, basic graph algorithms, and algorithm design techniques.  Abstract data types covered include priority queues, dictionaries, disjoint sets, heaps, balanced trees, and hashing.  Familiarity with C, Java, and Unix is assumed.

 

Prerequisites:  CMPS 012B and CMPE 016; and either MATH 019B or MATH 011B or ECON 011B; and either MATH 021 or MATH 022 or MATH 023A.


Time and Place:  MWF  11:00 – 12:10    J Baskin Engineer 152  

Class Webpage: http://www.soe.ucsc.edu/classes/cmps101/Fall03-02/

Class News Group: ucsc.class.cmps101



Instructor:   Slim Ouni   (http://mambo.ucsc.edu/psl/slim)

Office:   Social Sciences II – 429G

Office Hours:  MWF  2:00pm – 4:00pm,  and by appointment.

Email:   slim@fuzzy.ucsc.edu   (You must add [CMPS101] in the subject of your email)

Phone:   831-459-2655


Teaching Assistants:

MSI Sessions:

  • Learning Assistant: Nikhil Bobb (nbobb@ucsc.edu)

  • Schedule
    Monday         5:00-6:10pm         ARCenter Room 203
    Tuesday         4:00-5:15pm         Baskin White Boards
    Wednesday     12:30-1:40pm         Baskin White Boards

Lab-Discussion Sections: Will be used by the teaching assistants to clarify some points in the course, providing some examples, discuss programming projects, homework problems, and to prepare for exams.  Attendance is highly recommended.  (See with the teaching assistants for any changes in the schedule)


Schedule:


01A      LBS                 F          2:30PM           4:00PM            J Baskin Engineer 105

01B      LBS                 W        02:00PM          03:30PM          J Baskin Engineer 105

01C     LBS                 F          04:00PM          05:30PM          J Baskin Engineer 105

01D     LBS                 M         07:00PM          08:30PM          J Baskin Engineer 105

01E      LBS                 R          03:30PM          05:00PM          J Baskin Engineer 105

01F      LBS                 R         11:30            01:00PM          J Baskin Engineer 105

 

Required Text:

Computer algorithms: introduction to design and analysis  by Sara Baase & Allen Van Gelder, Addison-Wesley, 2000.

Optional Text:

Introduction to Algorithms, second edition, by Cormen, Leiserson, Rivest, & Stein.  McGraw-Hill, 2001. 


The following reading schedule is a rough guide to what we will discuss and when. It is subject to change. We may add more sections or remove some sections. Although the required textbook will be used, what we will discuss in class is the basis of all evaluations.

Week               Sections                                               Topics

1                                                    1.3,1.4                      Math Background-Analyzing algorithms

2                                                    1.5                            Asymptotic growth rates of functions

3                                                    2.1-2.5                      ADT –list, trees, stacks and queues

4                                                    3.1-3.4,3.6,3.7          Recursive proc, Induction proofs

5                                                    4.2-4.4                      Insertion, divide and conquer, Quicksort

6                                                    4.5-4.8                      MergeSort, Heapsort

7                                                    6.4-6.5                      Red-black trees, Hashing

8                                                    7.1-7.6                      Graph algorithms, DFS, Strongly Connected Comp

9                                                    8.1-8.3                      Prim’s min span., Single source shortest paths

10                                                9.4                            All-pairs shortest paths in graphs

Programming Language

For all the programming assignments, we will use C language (for one or two programs, we may introduce C++). However, as the required textbook uses Java-Based pseudo-code conventions, I assume that you are familiar with Java; in other words, you are able to read a Java program (or Java-Base pseudo-code)

Coursework and Evaluation:

Homework consists of written assignments related to some sections presented and discussed in class or related to a reading section. These written assignments are mandatory. Each homework will be followed by a quiz in class. We will have Programming Assignments almost each two weeks. We will have one Midterm and one Final Exam. This class will not be considered complete if you do not attend the midterm exam AND the final exam. In extraordinary circumstances (justified illness with a medical note), you will be required to complete an alternative assignment. Any negligence in doing the homework will be recorded and mentioned in the evaluations.

Coursework will be weighted as follows:

Personal Work                                     20 %

Programming Assignments                    30%

Midterm Exam                                      20%

Final Exam                                           30%

By “personal work”, we mean homework, quizzes and other evaluations. We (the instructor and the TAs) will evaluate for each student how much work does he/she actually have done. We may ask you more specific questions to better evaluate your work. This will be the case for programming assignments, too.


Mid-term Exam : Monday, November 3rd

Final Exam date : Monday, December 8 12:00–3:00 P.M.


Academic Honesty:

In recent years, there has been an increased number of cheating incidents in many UC campuses, and unfortunately, UCSC is no exception.  The Baskin School of Engineering has a zero tolerance policy towards any incident of academic dishonesty.   If cheating occurs, consequences within the context of the course may range from getting zero on a particular assignment, to failing the course.   In addition to these sanctions, every case of academic dishonesty is referred to the students’ college Provost, who sets in motion an official disciplinary process.  Cheating in any part of the course may lead to failing the course and suspension or dismissal from the university.

Academic Integrity

http://www.ucsc.edu/academics/academic_integrity/undergraduate_students/index.html




General info · News · Events · Degree Programs · Research · Classes · Admissions · Advising · People · Jobs · Administration
SOE Webmail · SOE SSH · Search · Sitemap · Contact us · Driving directions · Turn off menus · Privacy · UCSC
© Baskin School of Engineering, University of California, Santa Cruz
1156 High St., Santa Cruz, CA 95064 · (831) 459-2158 · webmaster@soe.ucsc.edu