Data Structures - MCS Resource Portal

3 downloads 48 Views 109KB Size Report
Oct 7, 2006 ... Required Text: Lewis, J. & J. Chase. Java Software Structures: Designing and. Using Data Structures 2 nd ed., Pearson-Addison Wesley, 2005.
Data Structures CSCI 261 Fall 2008 Contact Information Instructor: Office: Phones: Email: Web Page: Office Hours:

Class Time: Final Exam: Required Text:

Scott Sigman 107 Pearson Hall 873-6831(O), (417) 253-2620 (H) [email protected] http://mcs.drury.edu/ssigman 10:00-11:00 MWF, 1:00-3:00TR. Students are free to drop by the office any time I am in and the door is open. Appointments are best scheduled by email. 2:00 – 2:50 MWF in Pearson 117. Tuesday, December 16, 2008 @ 1:00 – 3:00 Lewis, J. & J. Chase. Java Software Structures: Designing and Using Data Structures 2nd ed., Pearson-Addison Wesley, 2005.

Course Description This course provide an in-depth study of data structures, including arrays, records, stacks, queues, lists, trees, heaps and hash tables; The study includes the definition, specification and implementation of these structures, as well as examples of their uses. Also included is an introduction to the internal representation of information. Prerequisite: C or better in CSCI 241, 251, and MATH 231 Course Objectives The fundamental goal of this course is to broaden a student’s view of computer science by introducing fundamental data structures, algorithms and techniques of analysis. A secondary goal of the course is to allow students the opportunity to further develop their programming design and implementation skills. At the completion of this course the student should be able to: • • • • • • • • • •

Analyze the time and space complexity of simple programs. Discuss the concepts of encapsulation, information hiding, and Abstract Data Types (ADTs). Create and implement in Java an object-oriented design utilizing interfaces, inheritance, polymorphism, generic types, exceptions, and design patterns. Design and implement programs in Java that implement an/or use lists, stacks, queues, or trees. Describe fundamental (0(n2) and 0(n log n)) algorithms for searching and sorting. Describe and utilize sound design and implementation techniques. Design and implement recursive algorithms. Use dynamic programming to solve problems. Manipulate low level data using the logical operations of Java.

Data Structures – Fall 2008

2

Course Pedagogy This course will use a problem based approach. Design, data structure, and programming concepts will be introduced in the process of finding a solution to a given problem. Such an approach provides a holistic approach to learning. The student is not learning unrelated facts and techniques in a vacuum with a view to later use. Rather, the student will find motivation for the course material through the development of a solution to a problem. A typical classroom scenario will proceed as follows. A problem will be defined and explored. In the process of exploring the problem, a high-level solution will be defined and requisite computer science concept and techniques will be identified. The identified concepts and techniques will be explored and developed. A detailed solution will be defined. The solution will be analyzed and evaluated. Based upon the analysis the process will be repeated to refine solution. Students and the instructor will work together to develop solutions. It should be noted that this approach is not textbook centered, rather the textbook becomes one of many resources that are brought to bear in defining a solution. Student should use it as such. Problems will be selected from a variety of domains including biochemistry, image processing, music, and robotics. The tentative schedule below identifies several problems for which student will develop full solution. Course Policies Attendance: Students are expected to attend all class meetings. In the event that a student must miss class, the instructor should be contacted prior to the absence. The student is responsible for all material covered and assignments made while they are absent. Make-up Work: Make-up of work will only be allowed in the case of an absence due to extenuating circumstances in which the instructor was notified prior to the absence. Examples of extenuating circumstances include family emergencies, personal sickness, and University related activities. The instructor will determine whether make-up work is allowed in all cases, and he may require that documentation be provided before make-up work is allowed. Academic Integrity: Programming exercises in this course are designed to allow students to explore the design and implementation of various data structures. The assignments are fundamentally an individual activity. Therefore, it is the instructor’s expectation that all students will complete all programming assignments by themselves. In particular, students should not work as a group to design and implement a program and then submit the program individually. In such cases the program will be graded and the score will be divided evenly among those submitting the duplicate programs. Any exceptions to this rule will be explicitly stated in the program assignment. Students are encouraged to help each other by asking questions and comparing algorithms. Such exchanges are invaluable. They will form a regular part of a student’s professional life after they graduate. However, there is a fine line between helping and

Data Structures – Fall 2008

3

copying. Helping each other does not mean that the structures of individual programs merge. When the programs that individuals are working on begin to look alike structurally, the line between helping and copying has been crossed. Questions about what’s helping and what’s copying can be directed to the instructor at anytime. If in doubt, ask! Work Submission: All work should be submitted as requested in the assignment. Written work should be submitted under a coversheet and must be stapled. Lab assignments will be due by 4:00 pm on the due date. Late work will not be accepted. Special Assistance: Students in need of special classroom assistance should notify the instructor of their need within the first week of class. Inclement Weather: In the case of a heavy snow fall or an ice storm that obstructs normal travel on city streets and highways in the surrounding counties check your email before coming to class. If the instructor cannot get to campus, he will email everyone prior to class time. Evaluation Tests: There will be two tests administered during the semester. Each test will be worth 100 points. Programs/Projects: Five programming projects will be assigned. Each assignment must be written in Java and must be submitted as a project that can be directly installed under the Eclipse IDE. All programs must adhere to the departmental documentation standards attached to this syllabus. Each program must be submitted a package that contains: source code, the design presented as a UML class diagram, and a suite of unit tests. Programs must compile without syntax errors and must produce some output to be graded. In addition, several small “between class assignments” will be made that further explore problem solutions discussed in class. The total sum of possible points on all programming assignments will be scaled to 500 points for the calculation of the final grade. Final: The final will be comprehensive and will be worth 150 points. Grade Calculation: In summary of the above, points in this course will be distributed as follows: Assignment Programs/projects Tests 2@100 Final Total

Points 500 200 150 850

Letter grades will be assigned using a 90-80-70-60 scale.

Data Structures – Fall 2008

4

Tentative Schedule The following schedule is subject to modification by announcement in class. Week 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Week Date Aug 27 Sept 01 Sept 08 Sept 15 Sept 22 Sept 29 Oct 06 Oct 13 Oct 20 Oct 27 Nov 03 Nov 10 Nov 17 Nov 24 Dec 01 Dec 08 Dec 10

Topic Introduction/Review/GUI projects/Using Eclipse Object-Oriented Design Labor Day Image Processing/Steganography Sets and Bags-Java Collections (ADT) A Music Score -Linked Structures Test I Robot, Find Your Way Home/Stacks Classical Problem: Towers of Hanoi /Recursion Fast Ordering/Sorting Bioinformatics / Dynamic Programming / Fall Break Searching Text Compression: Preliminaries: Queues/Heaps Huffman Coding: Binary Trees Crawling Through the Web: Binary Search Test II Trees Graphs Graphs Thanksgiving Break Alternative to Searching - Hashing Catch up/overflow week! Tuesday, December 16, 2007 @ 1:00 – 3:00

Reading Assignment Ch 1 & 2 Ch 2 Ch 3 Ch 4 Ch 6 Ch 10 Ch 11

Ch 6 & 15 Ch 12 Ch 13 & 19 Ch 18 Ch 18 Ch 17