Data Structures and Algorithms
This course introduces students to new types of data structures such as trees (including binary and multiway trees), heaps, stacks and queues. Students will also learn how to design new algorithms for each new data structure studied, create and perform simple operations on graph data structures, describe and implement common algorithms for working with advanced data structures and recognize which data structure is the best to use to solve a particular problem.
Upon successful completion of this course, students will be able to:
- Work with procedural and object-oriented aspects of the Java language.
- Develop sound techniques on designing, developing, and documenting well-structured programs using proper software engineering principles.
- Continue to apply problem solving skills and provide a foundation for advanced programming courses using an OOP (object-oriented programming) methodology.
- Describe and implement common data structures––lists, stacks, queues, graphs, and trees––for solving complex programming problems.
- Use mathematical techniques to analyse the efficiency of the various algorithms presented, as well as the common operations on the data structures discussed.
The chapter titles in the textbook are a good indicator of the topics covered in this course:
- Module 1: Analysis of Algorithms(Chapter 11) & Searching and Sorting (Chapter 18)
- Module 2: Stacks (Chapters 12& 13) & Queues (Chapter 14)
- Module 3: Lists (Chapter 15) & Iterators (Chapter 16)
- Module 4: Trees (Chapter 19) & Binary Search Trees (Chapter 20)
- Module 5: Heaps and Priority Queues (Chapter 21), Graphs (Chapter 24) & Hashing (Appendix I)
Required Text and Materials
Chase, J., Lewis, J., and DePasquale, P. (2017). Java foundations: Introduction to program
design & data structures. (4th ed.) Toronto, ON, Pearson: Addison-Wesley.
Type: Textbook: ISBN: 9780134285436
This textbook is also used for the TRU-OL courses COMP 1131 and 1231. Therefore, if you took one of these courses, the textbook would have been provided to you previously.
If you did not take these courses and do not already own the textbook, you will need to purchase it. To do so, you may send an email to firstname.lastname@example.org or by phone at 1.800.663.9711 (toll free in Canada) or 250-852-7000 (local & international).
Java Development Environment: Since this is a programming course, you will also require a development environment to compile and run your programs. Module 1 contains instructions for installing either JCreator LE or Eclipse for the Windows environment, or BlueJ for the Apple Mac environment. All of these are suitable for a learning programmer. The environment you may have used for COMP 1131 and 1231 is sufficient for this course as well. .
Open Learning Faculty Member
An Open Learning Faculty Member is available to assist students. Primary communication is through Learning Environment’s “Mail” tool or by phone. Students will receive the necessary contact information at the start of the course.
To successfully complete this course, students must achieve a passing grade of 50% or higher on the overall course, and 50% or higher on the final mandatory examination.
|Assignment 1: Analysis of Algorithms||8%|
|Quiz 1: Analysis of Algorithms & Searching and Sorting||2%|
|Assignment 2 : Stacks and Queues||8%|
|Quiz 2: Stacks & Queues||2%|
|Assignment 3: Lists and Iterators||8%|
|Quiz 3: Lists and Iterators||2%|
|Assignment 4: Trees and Binary Search Trees||8%|
|Quiz 4: Trees & Binary Search Trees||2%|
|Assignment 5: Heaps, Priority Queues, Graphs and Hashing||8%|
|Quiz 5: Heaps and Priority Queues, Graphs, & Hashing||2%|
|Final Examination *||50%|