Study of data structures such as linked lists, stacks, queues, trees, and graphs. Algorithms for manipulating such structures will be introduced and analyzed. Static and dynamic memory allocation. Access methods for sorting/searching, such as hashing and tree searching. Formerly CSCI 215)
For information regarding prerequisites for this course, please refer to the Academic Course Catalog.
This course helps students learn to integrate their problem-solving and programming knowledge by emphasizing the thought processes and techniques that computer scientists use to deal with data structures. Learning how to systematically solve problems is more important than simply learning the mechanics of an algorithm. Data abstraction and recursion are used to design and refine solutions to problems throughout the course. Programming style, code robustness, documentation and debugging aids are also emphasized.
Measurable Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Describe the relevance of course material to a biblical worldview.
- Use C++ classes to implement Abstract Data Types.
- Use recursion as a problem solving technique.
- Apply common software data structures to applications.
- Use basic algorithms for searching, sorting, indexing, and table access.
- Demonstrate the use of graphs and solutions to common graph problems.
Textbook readings and lecture presentations/notes
Course Requirements Checklist
After reading the Syllabus and Student Expectations, the student will complete the related checklist found in Module/Week 1.
Discussion Board Forums (2)
The student is required to provide a thread in response to the provided prompt for each forum. Each thread must be 300-500 words and demonstrate course-related and Bible-related knowledge. In addition to the thread, the student is required to reply to at least 2 other classmates’ threads. Each reply must be 250-350 words. Current APA formatting is required for any citations. At least one citation must be included.
Homework Assignments (4)
The student is required to complete 4 assignments that will give him/her an opportunity to demonstrate mastery of the lessons learned during the associated modules/weeks.
Programming Assignments (4)
The student is required to complete 4 programming assignments that will give him/her an opportunity to demonstrate mastery of the lessons learned during the associated and preceding modules/weeks.
These are cumulative exams – Midterm covers material in modules 1 through 3 and the Final covers material in modules 4 through 8. The exams are open-book/open-notes and will consist of random essay questions worth a total of 150 points. Students will have 60 minutes to complete the midterm and 90 minutes to complete the final.