CSC241 - Abstract Data Types & Programming Methodology

Section 810: 117 Swetman, MWF (9:10-10:05)

http://www.cs.oswego.edu/~mohammad/241

Rameen Mohammadi

 

Office Hours: M, W (11:20-12:00), M (2:00:-4:00), Th (11:00-12:00) and by appointment.

Office: 145 Snygg

Voice: 315-312-2367 (office), 315-564-5911 (home)

Fax: 315-312-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.

Text:

F.Carrano and J. Prichard, Data Abstraction and Problem Solving with Java: Walls and Mirrors, Addison Wesley, 2001, ISBN 0-201-70220-7.

 

Computer Facilities:

For the most part, you will use the SUN workstations in Snygg, rooms 6, 8, 103, and 104.

Grading:

     Exams 1,2............................. 30%
     Final Exam............................ 20%
     Class Participation...................  5%
     Labs 1-5 ............................. 20%
     Programs 1-4.......................... 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. Read Chapter 1 and 2.
  2. Class development. Lecture Set #2
    Topics also include pre/post conditions, exception handling, and testing classes. A Tank class example is elaborated here. Read Chapter 3.
  3. Encapsulation+Inheritance. Lecture Set #3
    more on Tank, a Tank Applet, and stacks and queues are introduced. Read Chapter 6.
  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. Read Chapter 7.
  5. Examples of Stack and Queue applications. Lecture Set #6
  6. Linked Lists. Lecture Set #7. Read Chapter 4.
  7. Packaging, Lists and Iterators. Lecture Set #8. Read Chapter 8.
  8. Recursion. Lecture Set #9. Read Chapter 5.
  9. Merge Sort. Lecture Set #10. Read Chapter 9.
  10. Algorithm analysis. Lecture Set #11. Read Chapter 9 continued.
  11. Quick sort. Lecture Set #12. Read Chapter 9 continued.
  12. Set Interface with a Tree and a hashTable Implementation. Lecture Set #13 and Lecture Set #14. Read Chapter 10 and 12.