Foundations of Algorithms - Oct/Nov 2023
Ended Nov 8, 2023
Sorry! The enrollment period is currently closed. Please check back soon.
Full course description
Introduction to problem-solving and programming principles appropriate for scientific and technical applications. Development of step-wise refinement and program decomposition methods. Programming language concepts including iteration, selection, input-output protocols, arrays, structures, and subprograms. The programming language used is Java. In addition, this course will introduce the students to the principles of computer analysis of problems, design of algorithms, programming, and testing using the Java programming language. Topics include problem analysis basics of programming, inheritance, complexity, data structures, linked lists, stacks, queues, trees recursion, and the mechanics of running, testing, and debugging.
Topic Details
Week 1 - Algorithmic Analysis
- Design algorithms using pseudo-code
- Use object-oriented programming methods to create computer validity programs that solve a variety of problems
- Model multiple algorithmic solutions to computing problems and compare them
- Assess different algorithmic approaches to optimization, performance, and accuracy
Week 2 - Object-oriented Design
- Classes and objects
- Inheritance and polymorphism
Week 3: Data structures
- Primitive data structures such as integers, floating-point numbers, characters and booleans
- Non-primitive data structures such as arrays, linked lists, stacks, queues, trees, graphs and hash tables
Week 4: Complexity Analysis
- Sorting algorithms
- Recursion
- Complexity of Sorting Algorithms
Final exam
SCHEDULE
Wednesdays - weekly Zoom sessions with instructors (7-9 pm)
Wed October 11, 2023 - Wed November 8, 2023