ST. JOSEPH'S COLLEGE

Data Structures, Com 210

Course Information

DEPARTMENT: Mathematics/Computer Science INSTRUCTOR: Salim Arfaoui

E-MAIL ADDRESS:

Website: http://www.salimarfaoui.com/COM210.html

Textbook: McAllister, William. Data Structures and Algorithms Using Java. Jones and Bartlett, Sudbury Mass., 2009. ISBN 978-0-7637-5756-4

Supplies: A flash drive

Course Content: Introduction to the methods used to store and access data efficiently, and their influence on program performance; methods introduced are linear lists, linked list, restricted lists, trees, hashing schemes, and graphs. Included are the related topics of recursion and sorting algorithms and their influence on algorithm efficiency.

Topic/Lecture Schedule and Students with Disabilities Statement: See attachments

Learning Outcomes: Upon completion of the course, the students will:

1-  Understand data abstraction, encapsulation and the classic data storage techniques of linear, linked and restricted lists, trees, hashing schemes, and graphs.

2-  Be able to select and/or design a data structure for a give application.

3-  Be able to determine algorithm performance.

4-  Understand recursion and be able to implement algorithms recursively including backtracking.

5-  Understand the classic sorting algorithms and their relative merits.

6-  Have gained sufficient knowledge to study data structures at the graduate level.

Course Requirements:

Attendance: Students are expected to attend all classes and will be held responsible for all lecture material. A student missing a lecture should obtain a copy of the lecture notes/assignments and must still conform to all assignment due dates. Classroom participation is encouraged. All cell phones must be turned off during the lectures (NO TEXT MESSAGING). Please be prompt, and log onto the Java NetBeans environment before class begins. Bring your text to every lecture.

Submittals and Plagiarism: Students are expected to take all exams and to submit all programming assignments (functional source code) before the class begins on the due date. Although studying together is encouraged, you must work alone on all assignments. Your submittals must not be a modification of another student's work (see attached list of Dos-and-Don'ts).

Grading and Grade Distribution:

Final examination: 30%

Programming Projects: 40% (Note: Late programming projects will not be accepted)

2 Exams: 30%

Schedule: See attached Topic/Lecture Schedule; Common hour Java review: 1/28 and 2/2


Plagiarism and Academic Dishonesty

DO-and-DON’TS

FOR PROGRAMMING ASSIGNMENT SUBMITTALS

Joe and/or Mary made the following statements. As a result, both Joe and Mary received a grade of 0% for the programming project. After their second offense both received an F in the course.

I copied Mary’s program.

Joe did all the work, I copied from him.

Joe and I worked together.

I asked Mary for a copy of her program, and she gave it to me.

Mary said I could look at her program.

Joe, tell me what to type.

I read over Mary’s program.

I lost my disk and I guess Joe found it.

I thought I noticed Joe reading my program over my shoulder.

The following statements are acceptable because they are consistent with the concept of a study group:

Joe, could you help me with this syntax error?

Mary, could I have a copy of your class notes?

Joe, could you explain your class notes to me?

Mary, I’m stuck on this programming assignment, could you explain the data structure Stack to me?

Joe, do you want to study for the next exam with me?

Mary, I didn’t understand the last lecture, could answer a few questions for me?

Students with Disabilities Statement


St. Joseph's College, in accordance with the Americans with Disabilities Act, provides assistance and resources for students with disabilities. If you have a documented disability: physical, psychological, medical or learning, which may impact your academic learning, contact Student Accessibility Services, located in O'Connor Hall, Room E301 phone number: (631) 687-1248. This office will assist you in getting all necessary accommodations at the College and in the classroom. All information will be kept confidential and private. Students should also work with their instructortomake arrangements if they require accommodations for test taking, carrying out assignments, or other academic needs.


Data Structures

Bibliography

1.  Bronson, Gary J. A First Book Of Java. Pacific Grove Ca. Wadsworth Group Brooks/Cole, 2002.

2.  Gaddis, Tony. Starting Out With Java, Boston Ma. Pearson Addison Wesley Publishing, 2007.

3.  Koffman, Elliot B. Problem Solving With Java, 2nd edition. Boston Ma. Addison Wesley Publishing, 2002.

4.  Chew, Fredrick F. The Java/C++ Cross Reference Handbook. Upper Saddle River NJ. Prentice Hall, 1998.

5.  Budd, Timothy. C++ for Java Programmers. Reading Ma. Addison-Wesley, 1999.

6.  Van Der Linden, Peter. Just Java. Palo Alto, Ca. Sun Microsystems Press and Prentice Hall. 2002.

7.  Flanagan, David. Java in a Nut Shell. Sabastopol Ca: O’Reilly, 1999.

8.  Lewis, T.G. Applying Data Structures. Dallas TX. Houghton Mifflin, 1982.

9.  Gilberg, Richard F. Data Structures A Pseudocode Approach with C++. Pacific Grove CA. Brooks/Cole, 2001.

10.  Carrano, Frank M. Data Abstraction and Problem Solving with Java. NY. Addison Wesley, 2001.

11.  Budd, Timothy. Classic Data Structures in Java. NY. Addison Wesley, 2001.

12.  Knuth, Donald E[1]. Fundamental Algorithms, Volume 1, The Art of Computer Programming. Third Edition. Reading, Massachusetts: Addison-Wesley, 1997. ISBN 0-201-89683-4.

13.  Knuth, Donald E1. Fundamental Algorithms, Volume 2, Seminumerical Algorithms. Third Edition. Reading, Massachusetts: Addison-Wesley, 1997. ISBN 0-201-89684-2.

14.  Knuth, Donald E1. Fundamental Algorithms Volume 3, Sorting and Searching. Second Edition, Reading, Massachusetts: Addison-Wesley, 1998, ISBN 0-201-89685-0.

15.  Knuth, Donald E1. Fundamental Algorithms, Volume 4. Combinatorial Algorithms. Reading, Massachusetts: Addison-Wesley. ISBN 0-201-85393-0, ISBN 0-201-85394-9, ISBN 0-321-33570-8.

16.  Knuth, Donald E1. Fundamental Algorithms, Volume 5, Syntactic Algorithms. Reading, Massachusetts: Addison-Wesley.


Installation of the Integrated Development Environment (IDE) NetBeans on Your Computer

  1. Go to http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. At the top right, click the NetBeans download button, to download the current versions of NetBeans (8.0) and the JDK (8u11)
  3. Click the radio button to accept the licensing agreements.
  4. Click the link in the right column of the table, below the licensing agreement radio button, that corresponds to your computer's platform shown in the left column of the table..
  5. Follow the directions to run the download and install software. I recommend you accept all of the default directory paths

TOPICS TO BE COVERED:
Overview and Java Review
Array-Based Structures
Restricted Structures
Linked Lists and Iterators
Hashed Data Structures
Recursion
Trees
Sorting
Graphs

[1] At the end of 1999, the 5 books listed by this author were named among the best twelve physical-science monographs of the century by American Scientist, along with: Dirac on quantum mechanics, Einstein on relativity, Mandelbrot on fractals, Pauling on the chemical bond, Russell and Whitehead on foundations of mathematics, von Neumann and Morgenstern on game theory, Wiener on cybernetics, Woodward and Hoffmann on orbital symmetry, Feynman on quantum electrodynamics, Smith on the search for structure, and Einstein's collected papers. WOW!