Section 1 - Tues/Thur 1:00 - 2:15pm in ITE 231

Section 3 - Tues/Thur 10:00 - 11:15am in ITE 231

Mr. Dennis Frey

Office: ITE 209

Office hours: Mon/Wed 2:30 - 3:30

Tues/Thur 11:30 - 12:30

by appointment

The course covers data structures and associated algorithms. Relationships among data structures, their utility in various situations, and factors affecting their performance in algorithms will be considered. You will learn to analyze the demands of algorithms, how to choose appropriate data structures, and how to integrate data structures into algorithms.

**Recommended**:

- Your favorite Java reference book -- here are some of mine
*Java in a Nutshell, 5th Edition*by David Flanagan, O'Reilly, 2005, ISBN 0-596-00773-6*Thinking in Java, edition*by Bruce Eckel, Prentice-Hall PTR, 2006, ISBN 0-131-87248-6. Available online at http://www.codeguru.com/java/tij/tij_c.shtml.*Head First Java, Second Edition*by Kathy Sierra and Bert Bates, O'Reilly, 2005, ISBN 0-596-00920-8

*Data structures and algorithms with object-oriented design patterns in Java*by Bruno Preiss, Wiley, 1999.*Data Structures and Algorithm Analysis*by Clifford Shaffer, Prentice-Hall, 1996. This book has good coverage of data structures and algorithm analysis in C++. It has excellent descriptions of a number of data structures.*Data Structures, Algorithms, and Applications in Java*by Sartaj Sahni, McGraw-Hill, 1998.*Data Structures and Algorithms*by Alfred Aho, John Hopcroft, and Jeffrey Ullman, Addison-Wesley, 1983. This is one of the all-time classics, written in Pascal.*Fundamentals of Data Structures in C++*by Ellis Horowitz, Sartaj Sahni, and Dinesh Mehta, 2006. Update of another classic.*Abstract Data Types*by Nell Dale and Henry Walker, D.C. Heath and Company, 1996. A high-level view of data structures and algorithms, with no programming language specified. A very worthwhile and modern text with an alternative viewpoint.

All homework shall be submitted in **hard copy** in class of the due date.

No project or homework will be accepted past the due date resulting in zero points for that assignment.

Your semester average will be calculated according to the following formula

Semester Average = 10 * (sum of your points on best 5 HW) / (total possible points of best 5 HW) + 40 * (sum of your points on all projects ) / (total possible points on all projects) + 50 * (sum of your points on all exams ) / (total possible points on all exams)

Your final letter grade is based on the standard formula:

0 <= F < 60, 60 <= D < 70, 70 <= C < 80, 80 <= B < 90, 90 <= A <= 100These levels may be adjusted slightly in your favor, but grades will not be ``curved'' in the conventional sense.

Your grade is given for timely work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances.

Note that the due dates for the projects and the
dates of the exams are already set (*q.v.*, the syllabus and project
policy page). Please plan your schedules accordingly.
Makeup exams will be given
only under the most dire circumstances (almost never).
Project regrade request must be submitted to the TA for your section within **1 week **of a returned grade. In some unusual circumstances you may receive a low project score because of a single, simple error that results in many incorrect outputs or results in a compiler/linker error. The definition of "simple error" is determined by your TA. In such cases, your TA may (at his discretion) allow you to fix the simple mistake and have your project regraded. A 10 point deduction will be assessed during the regrade process. There will be NO regrades for homeworks.

You must study to do well in this course. It will not be enough to
attend lectures and do the homework. As advanced undergraduates, you
will be responsible for learning material that is not necessarily
covered in lectures. A prime learning requirement is that you
contribute to class discussions and raise questions about the course
material.

- Do not email program code. If you want me or the TA to
help you debug your code submit the code in the usual way, and then
send email about the problem. We will look at the submitted code.
**Please, do NOT mail code to me or to the TA!** - Note that the Help Center does not offer help with code for this course.
- Please use your your UMBC account to send mail. This will remove any ambiguity about who you are.
- Include a meaningful subject line, something like "CMSC 341 Project 2 question."

Further details on honesty in doing projects for this course are on-line at the Project Policy link.

Students are welcome and encouraged to study together for exams, but examinations are to be your own work -- not your neighbor's and not your notes. All exams are closed-book, closed-notes. Only pencils (or pens) and erasers are permitted in the exam room unless otherwise indicated. Scratch paper is provided to you, as needed. Having any other materials in your possession during an exam will be taken as evidence of cheating and dealt with accordingly.

Class |
Date |
Topic |
Reading |
Assignment |

1 | Thur Jan 27 | Introduction to CVS and Ant | MAW 1, CVS & Ant notes | Project 0 out |

2 | Tues Feb 1 | Java refresh | MAW 1 | |

3 | Thur Feb 3 | Asymptotic Analysis | MAW 2 | |

4 | Tues Feb 8 | Asymptotic Analysis | MAW 2 | Project 0 due, Project 1 out |

5 | Thur Feb 10 | List ADT and Implementations | MAW 3.1 & 3.2 | Homework 1 out |

6 | Tues Feb 15 | Stacks and Queues | MAW 3.2; 3.3 | |

7 | Thur Feb 17 | Introduction to Trees | MAW 4.1 & 4.2 | Homework 1 due, Homework 2 out |

8 | Tues Feb 22 | Binary Search Trees | MAW 4.3 | |

Wed Feb 23 | Project 1 due, Project 2 out | |||

9 | Thur Feb 24 | Binary Search Trees | MAW 4.3 | Homework 2 due |

10 | Tues Mar 1 | Classes 1 - 9 | ||

11 | Thur Mar 3 | Splay Trees | MAW 4.5-6, 11.5 | |

12 | Tues Mar 8 | K-D Trees | MAW 12.6 | |

13 | Thur Mar 10 | Red-Black Trees | MAW 12.2 + notes | Homework 3 out |

14 | Tues Mar 15 | Red-Black Trees | MAW 12.2 + notes | |

15 | Thur Mar 17 | B-Trees | MAW 4.7 | Homework 3 due, Homework 4 out |

Tues Mar 22 | ||||

Thur Mar 24 | ||||

16 | Tues Mar 29 | B-Trees | MAW 4.7 | |

17 | Thur Mar 31 | Priority Queues and Heaps | MAW 6 | |

Sun Apr 3 | Project 2 Due; Project 3 out | |||

18 | Tues Apr 5 | Priority Queues and Heaps | MAW 6 | Homework 4 due |

19 | Thur Apr 7 | Classes 11 - 18 | ||

20 | Tues Apr 12 | Hashing | MAW 5 | |

21 | Thur Apr 14 | Hashing | MAW 5 | Homework 5 out |

22 | Tues Apr 19 | Skip Lists | MAW 10.4.2 + notes | |

Wed Apr 20 | ||||

23 | Thur Apr 21 | Skip Lists, Disjoint Sets | MAW 10.4.2 & 8 | Homework 5 due |

Sun Apr 24 | Project 3 due, Project 4 out | |||

24 | Tues Apr 26 | Disjoint Sets | MAW 8 | |

25 | Thur Apr 28 | Graphs | MAW 9.1 - 9.3 + notes | |

26 | Tues May 3 | Graphs | MAW 9.1 - 9.3 + notes | Homework 6 out |

27 | Thur May 5 | Graphs | MAW 9.1 - 9.3 + notes | |

28 | Tues May 10 | Special Topics | Homework 6 due | |

Wed May 11 | Project 4 due | |||

29 | Thur May 12 | Review | ||

Section 1 (1:00pm)
Tues, May 17, 1:00pm Section 3 (10:00am) Tues, May 17, 10:30am |
Final Exam |
Classes 20 - 28 |

- Dates and topics are subject to change as required by class progress
**MAW**= Weiss text "Data Structures & Algorithm Analysis in Java"

www.cs.umbc.edu/courses/undergraduate/341/spring11/index.shtmlPlease check the web page frequently. Any changes to the page will be mentioned in the "Latest News" link.

Last modified on Thursday Jan 20, 2011 by Dennis Frey

email: frey AT cs DOT umbc DOT edu

Back up to Spring 2011 CMSC-341 Homepage