CSCE 146: ALGORITHMIC DESIGN II
Catalog Description:
146—Algorithmic
Design II.
(4) (Prereq: Grade of C or better in CSCE 145 and grade of C or better in MATH
141 or 174; coreq: MATH 174) Continuation of CSCE 145. Rigorous development of algorithms and computer
programs; elementary data structures.
Three lecture hours and two laboratory hours per week. Open to all majors.
Prerequisite(s) By Topic:
Algorithmic design
Discrete mathematics or first-semester calculus
Knowledge of an imperative object-oriented language
(e.g., Java or C++)
Textbook(s) and Other
Required Material:
Data
Structures and Other Objects Using Java, Michael Main, Addison Wesley, 1999.
Computing Platform: Windows 2000
Course Objectives: {Assessment Methods Shown in
Braces}
1.
Develop structured, modular algorithms. {projects, closed lab
exercises}
2.
Implement correct programs in an object-oriented language.
{projects, closed lab exercises}
3.
Use and implement as classes data structures, such as sets, bags,
sequences, stacks, queues, and binary trees. {projects, closed lab exercises,
tests}
4.
Analyze the time and space complexity of simple algorithms.
{tests}
5.
Implement moderately complex programs written in an
object-oriented language. {closed lab exercises, tests}
Topics Covered:
1.
The
phases of software development (4 hours)
2.
Abstract
data types and Java classes (4 hours)
3.
Collection
classes (4 hours)
4.
Linked
Lists (8 hours)
5.
Object
Types (6 hours)
6.
Stacks
(8 hours)
7.
Queues
(6 hours)
8.
Recursion
(6 hours)
9.
Binary
Search and Analysis of Algorithms (4 hours)
10.
Trees
(6 hours)
Laboratory Projects
Thirteen closed lab sessions include laboratory
projects related to the topics listed above.
There are also six programming assignments.
Syllabus Flexibility: Low. The Undergraduate Committee approves the choice of textbook and
syllabus.
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. Develop structured, modular algorithms |
1 |
|
3 |
|
|
|
|
|
|
|
|
|
2. Implement correct programs in an object-oriented language |
|
|
3 |
|
1 |
|
|
2 |
2 |
|
|
|
3. Use and implement as classes, data structures, such as sets,
bags, sequences, stacks, queues, and binary trees |
|
|
3 |
|
|
|
|
2 |
|
|
|
|
4. Analyze the time and space complexity of simple algorithms |
2 |
2 |
3 |
|
|
|
|
1 |
|
|
|
|
5. Implement moderately complex programs written in an object-oriented
language |
|
|
|
|
|
|
|
|
2 |
|
|
Estimated CSAB Category
Content:
Algorithms: 1 hr
Data Structures: 2 hr
Software Design: 1 hr
Concepts of
Programming Languages 0
Organization and
Architecture 0
Oral
and Written Communication:
Development of readable and well
documented programs.
Social
and Ethical Issues: none
Theoretical
Content:
Some basic combinatorics
Analysis
and Design:
Abstract data types, design of
object-oriented programs
Class/Laboratory
Schedule:
Lecture: 3 periods of 50 minutes or 2
periods of 75 minutes per week
Laboratory: 2 periods per week
Course
Coordinator: Marco Valtorta
Modification
and Approval History:
Description of CSCI 146, September 1998
Revised by Instructor, May 2001