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.










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. 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