CSC241 - Abstract Data Types & Programming Methodology
Rameen Mohammadi
Office Hours: M(2-3),W(3-4), T(9-11) 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:
127 Snygg, T TH (11:10-12:30)
Optional Texts:
Date Structures in Java by Standish, Addison-Wesley 1998.
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 ............................. 20%
Programs 1-4.......................... 30%
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.
- READ THE COMPUTER SCIENCE POLICY ON CHEATING.
OUTLINE
- Software life cycle. Lecture Set #1
OOD and TDD.
classes/objects/packages in Java.
Web page development.
Applets.
- Class development. Lecture Set #2
pre/post conditions.
Exception handling.
Test programs.
- Stack and Queue. Lecture Set #3 and
Lecture Set #4
An integer stack and an integer queue.
Abstract versions.
Concrete implementations using arrays and linked lists.
Generic versions.
- Recursion. Lecture Set #5
- Lists. Lecture Set #6
- Algorithm analysis. Lecture Set #8
- Quick sort and Merge Sort. Lecture Set #7
and Lecture Set #9
- Keyed Collections. Lecture Set #10
and Lecture Set #11
Binary search tree implementation.
Hash table implementation.