CSC241 - Abstract Data Types & Programming Methodology

Rameen Mohammadi

 

Office Hours: TU,TH (8:25-9:25), M,W (5:45-6:45 PM) and by appointment
Office: 145 Snygg
Phone: 315-341-2367 (office), 315-564-5911 (home)
Fax: 315-341-5424
Email: mohammad@oswego.edu
URL: http://www.cs.oswego.edu/~mohammad

Objectives:

Create an environment where students have ample opportunities to improve their problem solving skills.

Teach about program validation and verification, and analysis of algorithms as a significant part of software design.

Provide an in depth exposure to well known data structures.

Cover Object Oriented Programming by using the existing Java API class hierarchy and creating and extending classes and interfaces in Java.

Classroom/Time:

Section 800: 203 Snygg, MW (7:00-8:20 PM)
Section 810: 127 Snygg, T TH (9:35-10:55)

Text:

Mark Allen Weiss, Data Structures and Problem Solving Using Java, Addison Wesley 1998. ISBN 0-201-54991-3

Computer Facilities:

SUN server rocky. For the most part, you will use the workstations in Snygg, rooms 6, 8 and the javaStations in room 103.

Grading:

             Exams 1,2............................. 30%
             Final Exam............................ 15%
             Class Participation...................  5%
             Labs 1-5 ............................. 25%
             Programs 1-3.......................... 25%

 

Notes:

 

OUTLINE

  1. Software life cycle. Lecture Set #1
    Topics also include an intro to OOD and TDD, classes/objects in Java, Web pages, and Applets.
  2. Class development. Lecture Set #2
    Topics also include pre/post conditions, exception handling, and testing classes. A Tank class example is elaborated here.
  3. Encapsulation+Inheritance. Lecture Set #3
    more on Tank, a Tank Applet, and stacks and queues are introduced.
  4. Introduction to polymorphism through a class hierarchy for Queues Lecture Set #4 and Lecture Set #5
    Queue interface with a fixed and a dynamic implementation.
  5. Examples of Stack and Queue applications. Lecture Set #6
  6. Linked Lists. Lecture Set #7
  7. Packaging, Lists and Iterators. Lecture Set #8
  8. Recursion. Lecture Set #9
  9. Merge Sort. Lecture Set #10
  10. Algorithm analysis. Lecture Set #11
  11. Quick sort. Lecture Set #12
  12. Set Interface with a Tree and a hashTable Implementation. Lecture Set #13 and Lecture Set #14