COSC 215 - Data Structures with Java

Spring 2014

Dr. Donald Simon
Office / Phone: 416 College Hall / 396-6472
Office Hours: MWF 10:00 AM - 11:00 AM
E-mail: simon@mathcs.duq.edu
Home page: http://www.mathcs.duq.edu/profs/simon.html

Texts: Data Structures and Algorithms in Java, 3rd Edition
by Adam Drozdek. Here's a link to the web page for the code in the book: http://www.mathcs.duq.edu/drozdek/DSinJava/index.html

Course Objectives: So, you want to learn how to write real programs? Good. Coming into this course you should know how to program in Java using procedural top-down design. Here, we're going to learn an entirely different paradigm for programming - object-oriented design using Java. We'll learn about objects, classes, methods, and messages and how difficult tasks can be solved by choosing the proper set of objects and defining how those objects interact. We'll discuss the elementary data structures that we will need to do real work: arrays, strings, linked lists and trees, and learn the differences between these data structures and abstract data types like stacks, queues, and static and dynamic dictionaries. We'll delve into more advanced topics in programming such as efficient sorting and searching, hashing, and recursion. Throughout all of our discussions we will use techniques of algorithm analysis to compare algorithms and basic methods of program verification to check that our programs are correct. At the end of the semester, you will have significantly strengthened your programming skills, have a good working knowledge of algorithm analysis, have developed a toolkit of abstract data types, and have begun to develop a systematic way of dealing with program bugs.


Grading: 6 Programs 50%
Mid-term 20%
Final 30%

The student must successfully complete the first five programs in order to pass the course. Programs are not weighted equally. The last two programs may be worth more points than the first four. Programs will lose 5 points for each day late they are turned in. Weekends count as one day. Programs are due at the start of class on the due date. Programs may be returned for further correction. All programs must be turned in by Tuesday, April 29th, at midnight.

The grading scale is:

100-90 = A, 89-80 = B, 79-70 = C, 69-60 = D, below 60 = F.

Plus/minus grading will not be used.

Honor Policy: Students in this class fall under the mandate of the College of Liberal Arts policy on Academic Integrity. Any student guilty of plagiarism will receive a grade of ``F'' for the course and will be reported to the College Academic Integrity Committee. Work done in this course is to be by the individual, not a group. You may not share (copy, give, show) your homework with other students in the course. Any code not your own that is included in your programs must be properly cited. This includes code from the book and that given by the professor. Submitted programs may include the code that was not written by you, from the book, nor given out by the professor only with specific permission by the professor for that assignment. Code may not be downloaded from the Web (other than from the book's website) unless the assignment permits doing so.

Please see Dr. Jackson's note for more information. There are departmental tutors available for help with programming assignments and please feel free to e-mail me or stop by my office if you have questions.


Tentative Schedule:

Topic(s)

Reading


1/8 Introduction, Java Chap. 1, Getting Started, OO Concepts,
Language Basics, Scanner class
1/13 More Java Chap 1.2-1.7
1/20 MLK Day - no class
1/22 Object-Oriented Design Classes, Inheritance
1/27 Still More Java Numbers and Strings Generics Packages
2/3 Complexity Chap. 2, Exceptions
2/10 Linked Lists Chap. 3
2/17 Stacks and Queues Chap. 4
2/24 Midterm (2/26), Recursion Chap. 5.1-5.6
3/3Spring Break
3/10More on Recursion Chap. 5.7-5.11
3/17Binary Trees, Dictionaries Chap. 6.1-6.8
3/24Heaps, Priority Queues Chap. 6.9-6.11
3/31 Sorting I Chap. 9.1-9.3
4/7Sorting II Chap. 9.3-9.6
4/14Hashing Chap. 10
4/17Easter Break
4/21String Processing Chap. 13
4/28Review
5/1 Final 8:30 AM - 10:30 AM



Useful links:


Last modified: Jan. 8, 2014
Dr. Donald L. Simon, simon@mathcs.duq.edu