Skip To Content
Online Noncredit Certificates: Foundations of Programming, Foundations of Data Structures, Foundations of Algorithms

Foundations of Algorithms - Mar/April 2024

Ended Apr 24, 2024

Sorry! The enrollment period is currently closed. Please check back soon.

Full course description

The Certificates in the Foundations of Programming, Data Structures & Algorithms, offered by the University of Michigan-Flint, is an intensive online program designed for students and professionals that seek to add foundational knowledge of computing and programming to fill gaps in their current skillset. Prior experience or coursework in computing is not required. Courses are asynchronous online (so students can learn and practice on their own time) with Q&A sessions offered each week by a faculty instructor from CIT.

This program is suitable for individuals with non-technical backgrounds, who are looking to computing knowledge and skills to change their career path. This certificate program is also for current undergraduate students that do not have programming and algorithms as part of their degree coursework, but would benefit from the kinds of skills they can incorporate into their own program of study. Computing provides an immediate boost of high-demand job skills. This program may also count towards meeting prerequisite requirements for graduate study in fields related to computing offered by the College of Innovation and Technology at the University of Michigan-Flint. 

For these non-credit certificates, participants will undertake 24 hours of coursework (to be certified in all three areas, 72 hours of coursework is required). Each certificate covers a different topic: 1) programming, 2) data structures, and 3) algorithms. Courses will be offered asynchronous online, with synchronous instructor sessions via zoom periodically for Q&A or other assistance with coursework. Each of the courses conclude with a final exam. Successful completion includes testing on the certificate course content with 85% or better score. Certificates of completion will be issued to students who successfully complete the course, to be included with any CIT graduate program admissions materials. 

Foundations of Algorithms
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.

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

Wednesdays - weekly zoom sessions with instructors (7-9pm)