COM 301 Algorithms and Data Structures
COM 301 Algorithms and Data Structures
Course Description:
Analysis and development of techniques for representing and processing information within a computer system, focusing on efficient use of storage space and processor time.
Prerequisite:
Textbooks:
Pearson.
ISBN-13: 9780132847377
Learning Outcomes:
1. Analyze algorithms with respect to time and space tradeoffs and use of recurrence relations, and big O, little o, omega, and theta notations.
2. Solve problems by developing algorithms using techniques including: brute force; Greedy algorithms; Divide-and-conquer; Decrease-and-conquer; Transform-and-conquer Backtracking; Branch-and-bound; Heuristics; and Numerical approximation algorithms;
3. Develop and apply pattern and string matching algorithms;
4. Compare, select, and use storage, searching and sorting techniques including: Sequential and binary search; O(N log N) sorting algorithms; Hash tables; Binary search trees;
5. Represent systems and relationship using graphs; process graphs using depth and breadth first traversals; Shortest-path algorithms such as Dijkstra’s and Floyd’s algorithms; Transitive closure using Floyd’s algorithm; Minimum spanning tree algorithms such as Prim’s and Kruskal’s algorithms; and topological sort;
6. VALUES OUTCOMES: In this class we will study how to make most efficient use of computer resources, practicing Saint Leo University’s core value of Responsible Stewardship.
Core Value:
Assignment |
Weight |
Discussions (8) |
10% |
Exercises (8) |
25% |
Labs (3) |
25% |
Quizzes (5) |
10% |
Exams (2) |
30% |
Total |
100 |
Discussions
Exercises
Labs
Quizzes
Exams
There are a total of 2 exams in this course, a Midterm and Final, occurring in Modules 4 and 8. The exams consist of multiple-choice questions. You will have the full week to complete each exam. Download each exam from the module content. Submit each exam to the Assignment folder no later than Sunday 11:59 PM EST/EDT in which it is due.
Grading Scale:
Grade |
Score (%) |
A |
94-100 |
A- |
90-93 |
B+ |
87-89 |
B |
84-86 |
B- |
80-83 |
C+ |
77-79 |
C |
74-76 |
C- |
70-73 |
D+ |
67-69 |
D |
60-66 |
F |
0-59 |
Assessment of the Learning Outcomes:
Learning Outcome |
Assessment Method(s) |
1 |
Quiz;Exercise;TestQuestion |
2 |
Exercise; Quiz; Lab |
3 |
Quiz; Lab |
4 |
Lab |
5 |
Exercise; Quiz |
6 |
Discussion Question3 |
Course Schedule:
Module 1
Objectives
- Discuss the mathematical foundations of algorithm analysis.
- Explain the basics of recursion and describe C++ important features.
- Explain how to estimate and manage the execution time of a program.
Items to be Completed: |
Due No Later Than: |
Post an introduction to the class |
Thursday 11:59 PM EST/EDT |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 1 |
Sunday 11:59 PM EST/EDT |
Complete Quiz 1 |
Sunday 11:59 PM EST/EDT |
Module 2
Objectives
- Explain the concept of ADT.
- Explain and compare the list, stack, and queue ADTs.
- Develop and solve problems using ADTs.
- Summarize the applicability of ADTs.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 2 |
Sunday 11:59 PM EST/EDT |
Submit Lab 1 |
Sunday 11:59 PM EST/EDT |
Complete Quiz 2 |
Sunday 11:59 PM EST/EDT4 |
Module 3
Objectives
- Explain the basics of a tree.
- Explain binary trees.
- Apply the binary search tree data structures.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials | |
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 3 |
Sunday 11:59 PM EST/EDT |
Submit Lab 2 |
Sunday 11:59 PM EST/EDT |
Module 4
Objectives
- Explain and compare several ways to implement hash tables and priority queues.
- Compare the various implementations of hash tables and hash tables with binary search trees.
- Analyze the various applications of hash tables and priority queues.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 4 |
Sunday 11:59 PM EST/EDT |
Complete Quiz 3 |
Sunday 11:59 PM EST/EDT |
Submit the Midterm Exam |
Sunday 11:59 PM EST/EDT |
Module 5
Objectives
- Analyze the various sorting algorithms – O(N2 ), O(N Log N), (N log N).
- Analyze the execution time complexity of the sorting algorithms.
- Show the applications of sorting algorithms.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 5 |
Sunday 11:59 PM EST/EDT |
Submit Lab 3 |
Sunday 11:59 PM EST/EDT |
Complete Quiz 4 |
Sunday 11:59 PM EST/EDT5 |
Module 6
Objectives
- Explain the equivalence relation concept.
- Explain the data structure to solve the relation concept problem.
- Explain an application of the disjoint sets class.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 6 |
Sunday 11:59 PM EST/EDT |
Module 7
Objectives
- Analyze the common graph problems.
- Explain and analyze the algorithms to solve several common graph problems.
- Analyze the depth-first search algorithm as it relates to graphproblems.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 7 |
Sunday 11:59 PM EST/EDT |
Complete Quiz 5 |
Sunday 11:59 PM EST/EDT |
Module 8
Objectives
- Explain the general approaches to algorithm designs (greedy, divide and conquer, dynamic programming, randomized algorithms, and backtracking algorithms).
- Explain several specific examples of the design techniques.
- Analyze the algorithms with respect to time and space.
Items to be Completed: |
Due No Later Than: |
Read the assigned materials |
|
Post an initial response to the discussion question |
Thursday 11:59 PM EST/EDT |
Post responses to at least two classmates |
Sunday 11:59 PM EST/EDT |
Submit Exercise 8 |
Sunday 11:59 PM EST/EDT |
Complete the Final Exam |
Sunday 11:59 PM EST/EDT |
2023-10-12