Syllabus on Data Structure and Algorithm | CSCE 221, Lecture notes of Computer Science

Material Type: ClassMaterial; Professor: Leyk; Class: DATA STRUC & ALGORITHM; Subject: Computer Sci. & Engr.; University: Texas A&M University;

Typology: Lecture notes

2011/2012

Uploaded on 03/08/2012

josejlm2
josejlm2 🇺🇸

4 documents

1 / 4

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSCE 221: “Data Structures and Algorithms”
Fall 2011
Instructor: Dr. Teresa Leyk
Office: 901E Richardson Bldg.
Phone: 845-4456
Office Hours: MWF 10:00 am 11:00 am, other times by appointment, 901E Richardson
Course web page: (all information about the course will be there):
http://courses.cs.tamu.edu/teresa/csce221/csce221-index.html
Class Time and Place for sections 501–504: MWF 3:00 am 3:50 pm, 124 HRBB
Class Time and Place for sections 504–506: MW 4:10 pm 5:25 pm, 113 HRBB
Lab Time: see the course web page
Course Description: Credit 4. Specification, analysis and implementation of abstract data types for lists, stacks,
queues, trees, hash tables, graphs, and their associated algorithms. Performance trade-offs of different implementa-
tions; asymptotic analysis of running time and memory usage. Includes the execution of students programs written in
C++; emphasis on adherence to good software engineering principles.
Prerequisites:
CSCE 222 "Discrete Structures" or
MATH 302 "Discrete Mathematics" (co-requisite)
CSCE 121 “Introduction to Program Design and Concepts” or
ENGR 112 “Foundations of Engineering” and CSCE 113 Intermediate Programming & Design”
Required Textbook: "Data Structures and Algorithms in C++" by M.T. Goodrich, R. Tamassia and D. Mount, 2011,
John Wiley & Sons, Inc., ISBN 13978-0-470-38327-8. Also, you may need a textbook on C++ language from the
previous semester, or any good C++ reference books.
Learning Objectives:
1. Provide students with knowledge of basic abstract data types and associated algorithms: stacks, queues, lists,
trees, graphs, hashing and sorting, selection and searching.
2. Provide students with practice by specifying and implementing these data structures and algorithms in C++.
3. Provide students with skills needed to understand and analyze performance trade-offs of different algorithms
implementations and asymptotic analysis of their running time and memory usage.
4. Provide students with exposure to the latest events in Computer Science and Engineering and their impact on
society or the economy.
Expected Learning Outcomes: At the end of this course students should be able to
1. Design and implement different data structures that allow easy access and manipulation of data using C++
programming language.
2. Apply the Big-O asymptotic notation to analyze and select efficient algorithms for solvin g a given problem with
respect to time and memory usage.
3. Identify the latest developments in the Computer Science area or be familiar with Turing awards winners.
1
pf3
pf4

Partial preview of the text

Download Syllabus on Data Structure and Algorithm | CSCE 221 and more Lecture notes Computer Science in PDF only on Docsity!

CSCE 221: “Data Structures and Algorithms”

Fall 2011

Instructor : Dr. Teresa Leyk

Office : 901E Richardson Bldg.

Phone : 845-

E-mail : [email protected]

Office Hours : MWF 10:00 am – 11:00 am, other times by appointment, 901E Richardson

Course web page : (all information about the course will be there):

http://courses.cs.tamu.edu/teresa/csce221/csce221-index.html

Class Time and Place for sections 501–504: MWF 3:00 am – 3:50 pm, 124 HRBB

Class Time and Place for sections 504–506: MW 4:10 pm – 5:25 pm, 113 HRBB

Lab Time : see the course web page

Course Description : Credit 4. Specification, analysis and implementation of abstract data types for lists, stacks,

queues, trees, hash tables, graphs, and their associated algorithms. Performance trade-offs of different implementa-

tions; asymptotic analysis of running time and memory usage. Includes the execution of students programs written in

C++; emphasis on adherence to good software engineering principles.

Prerequisites :

  • CSCE 222 "Discrete Structures" or

MATH 302 "Discrete Mathematics" (co-requisite)

  • CSCE 121 “Introduction to Program Design and Concepts” or

ENGR 112 “Foundations of Engineering” and CSCE 113 “Intermediate Programming & Design”

Required Textbook : " Data Structures and Algorithms in C++ " by M.T. Goodrich, R. Tamassia and D. Mount, 2011,

John Wiley & Sons, Inc., ISBN 13978-0-470-38327-8. Also, you may need a textbook on C++ language from the

previous semester, or any good C++ reference books.

Learning Objectives :

1. Provide students with knowledge of basic abstract data types and associated algorithms: stacks, queues, lists,

trees, graphs, hashing and sorting, selection and searching.

2. Provide students with practice by specifying and implementing these data structures and algorithms in C++.

3. Provide students with skills needed to understand and analyze performance trade-offs of different algorithms

implementations and asymptotic analysis of their running time and memory usage.

4. Provide students with exposure to the latest events in Computer Science and Engineering and their impact on

society or the economy.

Expected Learning Outcomes : At the end of this course students should be able to

1. Design and implement different data structures that allow easy access and manipulation of data using C++

programming language.

2. Apply the Big-O asymptotic notation to analyze and select efficient algorithms for solving a given problem with

respect to time and memory usage.

3. Identify the latest developments in the Computer Science area or be familiar with Turing awards winners.

Course Content (the topics and related chapters from the textbook):

Introduction

Array, Linked Lists and Recursion Chap. 1 & 3

Introduction to Analysis of Algorithms Chap. 4

Stacks and Queues Chap. 5

Vectors, Lists and Sequences Chap. 6

Trees and Search Trees Chap. 7 & 10

Priority Queues. Heaps. Chap. 8

Dictionaries. Hashing. Chap. 9

Sorting, Sets and Selection Chap. 11

Text Compression Chap. 12.

Graphs Chap. 13

Grading Criteria Grading Scale

Homeworks & Programming Assignments 30% 90–100 A

Culture Assignments 5% 80–89 B

Quizzes 10% 70–79 C

Exam I 15% 60–69 D

Exam II 15% 0–59 F

Exam III 15%

Final Exam (replaced by a project) 10%

Notes about Grading

  • Your final grade will be determined based on homework assignments, quizzes, exams and the final project.
  • All homework assignments (paper-pencil and programming) will be announced in class and posted on the course

web page. All programs must be written in C++, compiled and run on a CS departmental computer (Unix

machine), and transferred to a course directory for grading using the CSNet turnin program. Each homework

assignment will be graded focusing on: algorithm design, usage of data structures and/or new user-defined

types and their implementation, its correctness, tests, a typed report describing implemented algorithms and

data structures, and results of computational experiments. All assignments (their electronic submission and a

hard copy of the report and source code) are due at the beginning of class on the due day. A late homework

assignment will be accepted up to 4 working days with a 5% penalty for each late day.

  • Culture assignments allow you to explore the latest developments in Computer Science and Engineering or learn

about the famous computer scientists like Turing Award winners.

  • Quizzes are over material covered during lectures and reading material from the textbook.
  • 2 points will be added to your final score if you have perfect lab attendance, or 1 point if you have only one

absence.

Additional Information

  • Learning process: From the syllabus you may have noticed that this course focuses on obtaining a computer

science background and developing programming skills. Programming is not something you can learn overnight

by reading a textbook or lecture notes, it requires a lot of practice. The class TAs, PTs and I are willing to help

you to learn and understand the course material and master your programming skills so please see us during our

office hours. A few hints that will help you to succeed in this course:

- attend class and lab meetings regularly - read lecture notes and related material in the textbook, and feel free to ask questions - study for quizzes and tests - retype and implement in C++ examples from the lecture notes and textbook

Listing of course topics with major assignments dates ( tentative ).

All changes in the schedule will be announced in class

  • 1 Aug. 29 Mon Introduction to Data Structures 1 HW No. Date Day Topic Chap. Hand-in Quiz Wk
  • 2 Aug. 31 Wed Vectors and Arrays in C++ 1, 6 CA
  • 3 Sept. 02 Fri Vectors and Arrays and Basic Operations 1, 6 PA
  • 4 Sept. 05 Mon Introduction to Analysis of Algorithms
  • 5 Sept. 07 Wed Run-Time for Sorting Algorithms
  • 6 Sept. 09 Fri The Best, Worst, Average Cases for Sorting and Search
  • 7 Sept. 12 Mon Linear Time Sorting Algorithms 11.3 HW
  • 8 Sept. 14 Wed Stack ADT and Implementations 5 PA
  • 9 Sept. 16 Fri Big-O Asymptotic Notation vs Amortized Analysis
  • 10 Sept. 19 Mon Queue ADT and Implementations
  • 11 Sept. 21 Wed List ADT 3.2-3.4, 6 10.1
  • 12 Sept. 23 Fri List Implementations in C++ 3.2-3.4, 6 10.3, 10.4
  • 13 Sept. 26 Mon Sequences - Implementation in C++
  • 14 Sept. 28 Wed Exam 1 4, 10.6
  • 15 Sept. 30 Fri Recursive Algorithms. 4, 5 CA
  • 16 Oct. 03 Mon Run-time for Recursive Algorithms 4, 5 PA
  • 17 Oct. 05 Wed Merge and Quick Algorithms 11.1, 11.2 HW
  • 18 Oct. 07 Fri Stack and Queue Applications. 4,
  • 19 Oct. 10 Mon Tree ADT
  • 20 Oct. 12 Wed Tree Traversal Operations. Expressions Trees
  • 21 Oct. 14 Fri Binary Search Trees 10 PA - Mid-term HW
  • 22 Oct. 17 Mon Algorithms for Binary Search Trees
  • 23 Oct. 19 Wed Balanced Binary Trees - AVL, Red-Black, 2-4
  • 24 Oct. 21 Fri Algorithms for Balanced Binary Trees. Skip Lists 10, 9.4
  • 25 Oct. 24 Mon Priority Queue ADT 8.1 CA
  • 26 Oct. 26 Wed Exam
  • 27 Oct. 28 Fri Priority Queues Based on a Heap Data Structure. 8.2 PA
  • 28 Oct. 31 Mon Heap Sort Comparison of Sorting Algorithms 8.3 HW
  • 29 Nov. 2 Wed Priority Queue Applications. Text Compression 11.4
  • 30 Nov. 4 Fri Maps. Hash Tables 9.1, 9.2
  • 31 Nov. 7 Mon Hashing and Collision-Handling methods 9.2 (Q-drop)
  • 32 Nov. 9 Wed Graph ADT 13.1
  • 33 Nov. 11 Fri Graph Terminology and Representations 13.2
  • 34 Nov. 14 Mon Graph Traversals 13.3
  • 35 Nov. 16 Wed Directed Graphs 13.3 HW
  • 36 Nov. 18 Fri Directed Graphs 13.3 PA
  • 37 Nov. 21 Mon Shortest Path Algorithms 13.5
  • 38 Nov. 23 Wed Shortest Path Algorithms 13.5 - Nov. 25 Fri No Classes
  • 39 Nov. 28 Mon Minimum Spanning Tree Algorithms 13.6
  • 40 Nov. 30 Wed Exam 3 (in class)
  • 41 Dec. 2 Fri P and NP problems.
  • 42 Dec. 5 Mon Review. Project Presentation (Friday schedule) - Dec. 14 Wed. Final Exams (8-10am and 3:30-5:30 waived by the final project)