SEI's computer science curriculum
Clone or download
Pull request Compare This branch is even with DC-WDI:master.

General Assembly Logo

Computer Science

The Computer Science portion of the Software Engineering Immersive curriculum equips students with foundational CS knowledge to make them more well-rounded engineers and prepare them for questions that often arise in job interviews.

Learning Objectives

At the end of this unit, developers will be able to:

  • Solving algorithmic challenges that are commonly presented in technical interviews.
  • Analyzing the computational complexity of algorithms and data structures using Big O notation.
  • Implementing common data structures encountered in technical interview questions.


  1. Fork and clone this repository.
  2. Change into the new directory.
  3. Fulfill the listed requirements.

Each subdirectory in this repository contains an exercise for each topic covered in the Computer Science curriculum. Complete each exercise, committing as you go. When you finish, make a pull request on this repository.

Unless otherwise specified on the calendar or by an instructor, homework is due the next morning by 9:00am.

Lesson Format

The Computer Science lessons utilizes a blended learning approach.

Blended learning is just a fancy way of describing a course that combines live, face-to-face instruction with asynchronous online lessons. Together, the face-to-face and online portions make up one cohesive lesson on a given topic.

  • The lesson portion of each topic will be first presented on myGA (Where you did your prework!)
  • The in-class portion of each topic will include a brief review of the topic, lead by an instructor, and an exercise that you will complete on your own.

Curriculum Details

Introduction to Computer Science

  • Total myGA time: 0.5 hours
  • Total in-class time: 0 hours
Lesson Name myGA Time (hours) In-Class Time (hours)
Introduction to Computer Science 0.5 0

Topic: Algorithms

  • Total myGA time: 4 hours
  • Total in-class time: 9 hours
Lesson Name myGA Time (hours) In-Class Time (hours)
Introduction to Algorithms 0.5 0
Big O Notation 0.5 1
Recursion 0.5 1
Introduction to Sorting 0.5 1
Basic Sorting Algorithms 0.5 2
Divide-and-Conquer Sorting Algorithms 0.5 2
Distribution Sorting Algorithms 0.5 1
Search Algorithms 0.5 1

Topic: Data Structures

  • Total myGA time: 4.5 hours
  • Total in-class time: 7 hours
Lesson Name myGA Time (hours) In-Class Time (hours)
Introduction to Data Structures 0.5 0
Linked Lists 0.5 1
Stacks and Queues 0.5 1
Hash Tables 1 1
Sets 0.5 1
Binary Trees and Tries 1 2
Graphs 0.5 1

Topic: Design Patterns

  • Total myGA time: 0.5 hours
  • Total in-class time: 1 hour
Lesson Name myGA Time (hours) In-Class Time (hours)
Design Patterns 0.5 1


Take a moment to refamiliarize yourself with the Plagiarism policy. Plagiarized work will not be accepted.


  1. All content is licensed under a CC­BY­NC­SA 4.0 license.
  2. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact