CSC241 - Abstract Data Types &
Programming Methodology
Section 810: 107 Mahar, MWF
(10:20-11:15)
Rameen Mohammadi
Office Hours: M,W (2:00:-4:00), Th (10:00-11: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
TA: Alla Gul (gul@oswego.edu)
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............................ 15%
Class Participation................... 5%
Labs 1-5 ............................. 25%
Programs 1-4.......................... 25%
Notes:
- For the most part, this
course will be paperless. Assignments, labs, lecture notes, etc.
will be available off of the web page for this course--reload
frequently!
- You will turn in your
assignments through the web and by email, the detail of this process will
be discussed soon.
- Labs are similar in intent
to the ones presented in CSC212, however, I have not scheduled any formal
lab times.
- Assignments and labs are
due by mid-night on the date due. Work turned in by mid-night of next
class after the due date will be penalized five percent, after that, you
will lose ten percent for each week late. Don't fall behind in this
course!
- Programs dated two days
early will be given a five percent extra credit.
- You must work on your labs
and assignments individually. Using another person's program in writing
your own is illegal. Giving your programs to another person is also
illegal. You will receive an E for the course in either case. Pay
attention to the protections set on your .java files, take responsibility
in protecting your work that must remain confidential.
- READ
THE COMPUTER SCIENCE POLICY ON CHEATING.
OUTLINE
- 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.
- 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.
- Encapsulation+Inheritance.
Lecture Set #3
more on Tank, a Tank Applet, and stacks and queues are introduced. Read
Chapter 6.
- 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.
- Examples of Stack and
Queue applications. Lecture Set #6
- Linked Lists. Lecture Set #7. Read Chapter 4.
- Packaging, Lists and
Iterators. Lecture Set #8. Read Chapter 8.
- Recursion. Lecture Set #9. Read Chapter 5.
- Merge Sort. Lecture Set #10. Read Chapter 9.
- Algorithm analysis. Lecture Set #11. Read Chapter 9 continued.
- Quick sort. Lecture Set #12. Read Chapter 9 continued.
- Set Interface with a Tree
and a hashTable Implementation. Lecture Set
#13 and Lecture Set #14. Read Chapter
10 and 12.