Home
Mentoring
Calendar
Courses
Training
Certifications
Instructors
Articles
About Us
Contact Us
Sign In

Foundations of Algorithms Class Syllabus
Description:
This course is an introduction to basic algorithms and data structures. It is designed for those without a formal computer science background, but have development experience and are interested in core software development techniques.
This course will have many handson exercises and is not tailored to any specific computer language.
Topics include:
Bits and Bytes
Basic Types
Recursion
Big O Notation
Stacks
Queues
Searching and Sorting
Linked Lists
Binary Trees
Hash Tables
Parsing
Prerequisites:
Class Text Book:
Class Topics:
Class Project
Bits and Bytes  Lecture
Bits and Bytes  Lab
Bits and Bytes  Solutions
Assignment #1: Url Shorteners
Url Shorteners  Solution
Big O Notation  Lecture
Big O Notation  Lab
Big O Notation  Solutions
Strings  Lecture
Strings  Lab
Strings  Solutions
Homework #2 : Converting Number
Converting Number  Solution
PreAssignment  Recursion
Recursion  Lecture
Recursion  Lab
Recursion  Solutions
PreAssignment  Stacks
Stacks  Lecture
Stacks  Lab
Stacks  Solutions
Homework #3 : RPN Calculator
RPN Calculator  Solution
Project: Balanced Parenthesis
Project: Balanced Parenthesis Solution
Project: HTML Verifier
Project: HTML Verifier Solution
PreAssignment  Queues
Queues  Lecture
Queues  Lab
Queues  Solutions
Project: Maze Runner
Maze Runner  Solution
PreAssignment Searching
Array Searching  Lecture
Array Searching  Lab
Array Searching  Solutions
Homework #4 : Searching
Searching  Solution
Dynamic Arrays  Lecture
Dynamic Arrays  Lab
Dynamic Arrays  Solutions
PreAssignment  Linked Lists
Linked Lists  Lecture
Linked Lists  Lab
Linked Lists  Solutions
Homework #5 : Reverse a Linked List
Reverse a Linked List  Solution
PreAssignment  Sorting
Array Sorting  Lecture
Array Sorting  Lab
Array Sorting  Solutions
Bubble Sorting  Lecture
Bubble Sorting  Lab
Bubble Sorting  Solution
Insertion Sorting  Lecture
Insertion Sorting  Lab
Insertion Sorting  Solutions
Homework #6 : String comparison
String comparison  Solution
Quicksort  Lecture
Quicksort  Lab
Quicksort  Solutions
Project: Fastest Sort
Project: Fastest Sort Solution
Project: Merge Two Lists
Project: Merge Two Lists Solution
PreAssignment  Binary Trees
Binary Trees  Lecture
Binary Trees  Lab
Binary Trees  Solutions
Project: Binary Trees Cousins
Project: Binary Trees Cousins Solution
PreAssignment  Hash Tables
Hash Tables  Lecture
Hash Tables  Lab
Hash Tables  Solutions
Sets  Lecture
Sets  Lab
Sets  Solutions
Project: Sets
Project: Sets Solution
Parsing  Lecture
Parsing  Lab
Parsing  Solutions
Memory Layouts  Lecture
Memory Layouts  Lab
Memory Layouts  Solutions
Basic Types  Lecture
Basic Types  Lab
Basic Types  Solutions
String Handling  Lecture
String Handling  Lab
String Handling  Solutions
Graphs  Lecture
Heaps  Lecture
DoublyLinked Lists  Lecture
DoubleLinked Lists  Lab
DoublyLinked Lists  Solution
Valuebased vs Referencebased  Lecture
Valuebased vs Referencebased  Lab
Valuebased vs Referencebased  Solutions
