CSC241 - Abstract Data Types &
Programming Methodology
Rameen Mohammadi
Office Hours: MWF(8:30-9:00, 11:30-12:00), Thur(10-12)
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 810: 101 Snygg, MWF (9:10-10:05)
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:
SUN server rocky. For the most part, you will
use the workstations in Snygg, rooms 6, 8 and 103.
Grading:
Exams 1,2............................. 30%
Final Exam............................ 15%
Class Participation................... 5%
Labs 1-5 ............................. 25%
Programs 1-3.......................... 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. I will announce certain hours that I will be down in the ICC
lab or room 103, so I can help you with them.
- 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.