CSCE 145: ALGORITHMIC DESIGN I
Catalog Course Description:
145—Algorithmic
Design I.
(4) (Prereq: Placement in MATH 141 or grade of C or better in MATH 115)
Problem-solving, algorithmic design, and programming. Three lectures and two laboratory hours per week. Open to all
majors.
Prerequisite(s) By Topic:
Precalculus mathematics
Textbook(s) and Other
Required Material:
Java: An Introduction to
Computer Science and Programming, Second Edition, Walter Savitch, Prentice
Hall, 2001.
Computing Platform: Windows 2000; JDK 1.3;
emacs+JDE
Course Objectives: {Assessment Methods Shown in
Braces}
1.
Solve problems using a computer. {tests}
2.
Read and design algorithms. {tests}
3.
Design data structures {tests}
4.
Use a software development environment to construct, execute,
test, and debug software. {laboratory projects}
5.
Program a computer in a high-level language. {programming
assignments, laboratory projects, tests}
Topics Covered:
1.
Introduction
to programming tools (1 hour)
2.
Primitive data types, including strings (4 hours)
3.
Flow
of control (5 hours)
4.
Classes,
methods, and encapsulation (7 hours)
5.
Method
overloading and constructors (4 hours)
6.
Arrays
(4 hours)
7.
Inheritance
and polymorphism (6 hours)
8.
Exceptions
and exception handling (6 hours)
9.
Input/output
using streams and files (6 hours)
10.
Vectors
and linked lists (4 hours)
11.
Graphical
user interfaces (4 hours)
12.
Reviews and Examinations (5 hours)
Syllabus Flexibility: Low. The Undergraduate Committee approves the choice of textbook and
syllabus.
Laboratory Projects:
Twelve programming projects,
covering the range of topics for the course, are developed during the weekly
laboratory sessions.
Other Course Work: At least two major tests and
a final examination.
Relationship of Course to
Program Outcomes:
The contribution of each course objective to meeting
the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor. Blank if not related.
|
|
Program Outcomes |
||||||||||
|
1. Logic & Math |
2. Computing Fundamentals |
3. Apply Computing Principles |
4. Work on teams |
5. Communicate Effectively |
6. Liberal arts & Soc. Sciences |
7. Basic Science and Lab Procedures |
8. Learn New Tools & Processes |
9. Employed upon Graduation |
10. Application Area |
11. Electronics and Digital Sys Design |
|
|
1. Solve problems using a computer |
|
3 |
2 |
|
|
|
|
|
1 |
|
|
|
2. Read and design algorithms |
1 |
3 |
2 |
|
|
|
|
|
1 |
|
|
|
3. Design data structures |
|
3 |
2 |
|
|
|
|
|
1 |
|
|
|
4. Use a software development environment to construct, execute,
test, and debug software |
|
1 |
1 |
|
|
|
|
3 |
2 |
1 |
|
|
5. Program a computer in a high-level language |
|
3 |
1 |
|
1 |
|
|
1 |
2 |
|
|
Estimated CSAB Category
Content:
Algorithms: 1 hr
Data Structures: 1 hr
Software Design: 0 hr
Concepts of
Programming Languages 2 hr
Organization and
Architecture 0 hr
Oral and Written
Communication:
Development of readable and well
documented programs.
Social and
Ethical Issues: none
Theoretical
Content: none
Analysis and
Design:
Programming and problem solving by
computer
Class/Laboratory Schedule:
Lecture: 3 periods of 50 minutes or 2 periods
of 75 minutes per week
Laboratory: 1 period of 2 hours per week
Course
Coordinator: Michael Huhns
Modification and
Approval History
Initial description, April 1999
Revised, November 2000