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.










Course Objectives

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