This is the home page for CSCI 202:
Class Time & Location:
2:30-4:20 T, TH 216 (lab)
Office Hours: Thursday, 8:30-9:30 PM, or by appointment. You may also stop in any time my door is open.
Description
Prerequisite:
CSCI 201 with a grade of “C” or higher;
prerequisite or corequisite: MATH 206.
A continuation of the material covered in CSCI 201. This course emphasizes object-oriented programming and a disciplined approach to program development. Topics include data abstraction, recursion, inheritance, polymorphism, linked data structures, stacks, and queues.
0bjectives
Many people have the idea that "anyone can pick up programming". To a degree this is true, just as anyone can "pick up" writing, or painting, or music. However, someone who "picks up" programming most often lacks the depth, breadth and refinement that comes with formal training, even if the person has lots of experience. Good programmers are craftsmen, not hackers. And like other craftsmen, good programmers have a variety of tools at their disposal, and know how to use them well. Craftsmen are distinguished by the quality of the work they produce. Good quality is most often the result of asking good questions and consistently applying key principles of thought and action, in this case, to the production of software.
In this course, we introduce:
- additional good documentation habits
- thinking of program design and implementation in terms of Object-0riented Abstract Data Types, Data Structures and code that uses them. The data structures covered in the course will be files, lists, stacks and queues
- event-driven GUI programming
- testing and debugging using a modern development environment
We also continue to develop notions of Abstraction, Inheritance, Interfaces, Recursion, and Exceptions as they relate to good program design and implementation.
Outcomes
The language of instruction is Java. A successful student, upon completing this course, can:- Solve problems of moderate complexity using top-down design and object-oriented programming in Java
- Write well-structured and well-documented Java programs
- Implement a recursive algorithm
- Trace the execution of a sorting algorithm for a given set of data
- Use Java constructs (such as the data structures discussed in class) in problem solutions
- Use Java Interfaces to define Abstract Data Types
- Provide differing implementations for ADTs that are discussed in the course
Text & Materials
The text is:Lecture slides and other student resources may be accessed from the publisher's companion website for the text.
The syllabus, assignments, and other materials for this course are available online at the following URL: http://macs.citadel.edu/rudolphg/csci202/075.