Coppin State University



DEPARTMENT OF MATHEMATICS AND

COMPUTER SCIENCE

Coppin State University

Baltimore, Maryland 21216

COURSE SYLLABUS

( REVISED JANUARY 2007)

COSC 221 COMPUTER SCIENCE II 4 CREDITS

General Information

1. Semester : SPRING 2007

2. Course number : COSC221001

3. Course name : COMPUTER SCIENCE II

4. Credits : 4 credits

5. Meeting Time : MTWR 01:00-01:50PM and F 02:00-02:50PM

6. Room : GJ MC26

7. Instructor : Prof. E. Sommerfeldt

8. Office : GJ 607

9. Office Telephone : 410-951-3479

10. Office Hours : MTWR 11:00AM - 12:45PM

F 11:00AM - 11:50AM

01:00PM - 01:45PM

OTHER HOURS BY APPOINTMENT

11. FINAL EXAMINATION: Date: Friday, May 18, 2007

Time: 12:00PM – 01:50PM

Place: Classroom GJ MC26

Course Description: This course uses the C++ language as a vehicle to teach Data Structures. Topics include: creating structured and enumerated types using the enum, typedef, and struct specifiers, higher dimensional arrays, records, pointers, text files, searching and sorting techniques (binary search, bubble sort, shell sort, mergesort, quicksort), external procedures and functions written in C++ and other languages, classes, inheritance, composition; using and linking libraries with C++ programs, stacks, queues, linked lists, recursion, and binary trees.

Prerequisite: Successful completion (C or Better) of COSC 220 or COSC 201.

Required Texts

Dale, N., and Teague D. C++ Plus Data Structures, 3rd. ed. Mass: Jones and Bartlett Publishers, Inc., 2003

Dale, N., Weems, C., and Headington, M. Programming and Problem Solving with C++,, 4th. ed. Mass: Jones and Bartlett Publishers, Inc., 2005

Supplemental Texts: In accordance with the WRITING STANDARDS DOCUMENT approved by the Coppin State College Curriculum Committee, supplemental texts for this course include the English Handbook and Webster's Ninth New Collegiate Dictionary.

COURSE OBJECTIVES: Upon completing this course, the student will be able to:

1. write C++functions that have simple and/or array arguments, and functions that return results.

2. create a personal function library.

3. determine the scope of an identifier in a program and use the static statement to restrict an identifier's scope.

4. identify real life application problems which can be solved using arrays.

5. write the C++code to access the individual components of a linear array or a multi-dimensional array, and avoid the dangers of exceeding array bounds.

6 write the C++code to collect values in an array, search for values in an array, and sort values in an array.

7. apply C++facilities (struct and typedef) to build structures, define new data types, and declare arrays of structures.

8. manipulate pointers in C++, and write functions that modify their parameters.

9. explain the principle of recursion, trace recursive algorithms to determine the correct output, design correct recursive algorithms, and program recursive algorithms in C.

10. decide when recursion is a suitable solution tool, determine the base case and the general case for the recursive algorithm, design a recursive function to solve a given problem, and be able to explain how recursion works internally by showing the contents of the run-time stack.

11. write a top-down design for a command driven system in pseudocode, and implement command processing in C++

12. describe and apply top-down and bottom-up testing strategies and indicate when each would be appropriate.

13. explain what is meant by abstract data type.

14. define a data structure and describe it from three perspectives: application, abstraction, and implementation.

15. implement a package of stack operations given the specifications and operations.

16. determine when a stack is an appropriate data structure for a specific problem and use a stack to design and implement a solution for that problem.

17. implement a package of queue operations given the specifications and operations.

18. determine when a queue is an appropriate data structure for a specific problem and use a stack to design and implement a solution for that problem.

19. describe a list at the logical level and explain the difference between static and dynamic allocation of the nodes of a list.

20. implement the following binary search tree algorithms in C++: creating an empty tree, inserting an element, deleting an element, searching for an element, and traversing a tree using preorder, inorder, and postorder traversals.

21. show how an arithmetic expression may be stored in a binary tree and build and evaluate a binary expression tree.

22. determine whether a stack, a queue, a linked list, or a binary tree is the appropriate data structure for a specific problem and implement that data structure in the C++ language.

23. sort or several keys as well as encode and determine the order or magnitude of a straight selection sort, a bubble sort, a merge sort and a quick sort.

24. encode and hand-simulate a sequential search, an ordered sequential search, and a binary search.

25. implement a hashing algorithm.

26. define a full binary tree, a complete binary tree, and a heap.

27. implement a heap in nonlinked representation in an array and implement a priority queue as a heap.

COURSE OUTLINE

I. Preliminary Topics: REVIEW

(Students must review and study if..else and switch statements)

A. Input and Output Files

1. The Necessary Header File: # include

2. File Input: Declare a variable to hold name of file: string infname;

a. Declare a file variable: ifstream infile;

b. Prompt for name of file: cout > infname;

d. Open the file for input: infile.open (infname.c_str( ));

e. Read data for the file: infile >> variablenames;

f. Close the file infile.close();

3. File Output: Declare a variable to hold name of file: string outfname;

a. Declare a file variable: ofstream outfile;

b. Prompt for name of file: cout > outfname;

d. Open the file for output: outfile.open (outfname.c_str( ));

e. Write data to the file: outfile ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download