Skip to content

Self-Paced/Observer coursework from Codepath's Advanced Software Engineering Summer Session (Data Structures & Algorithms / Technical Interviews / Leetcode)

Notifications You must be signed in to change notification settings

aucoeur/codepath

Repository files navigation

Codepath - Advanced Software Engineering (SE103)

Self-Paced/Observer Coursework from Codepath's Technical Interviewing Course

Current Progress

Unit Topics
1 Linked Lists
2 Hash tables / stacks & queues
3 Big O Notation + Review
4 Binary Trees
5 Graphs
6 Strings / Arrays
7 Review and Project Week
8 Greedy Algorithms
9 Dynamic Programming
10 Dynamic Programming: Backtracking
11 Review and Project Week
12 System Design

Note on Importing Utilities

  • create/activate virtual env:
    $ python3 -m venv env
    $ source env/bin/activate

  • install local package:
    $ python -m pip install -e .

  • import:

    from utilities import ListNode

Summer Technical Interview Prep Course Overview (Advanced)

Purpose

This 12-week virtual course will help you ace technical interviews preparing you to solve challenging algorithm problems in real whiteboard interviews at top companies.

  • Lectures and algorithm labs
  • Interview practice
  • Tools and techniques for problem solving
  • Mentorship from industry professionals
  • Info sessions from experienced engineers
  • Resume feedback & internship search support

Prerequisites

  • Must have taken at least one basic programming course and an algorithms and data structures course.
  • Mandatory attendance for the weekly virtual sessions with 3 excused absences.
  • Can dedicate 10+ hours a week to the course and assignment work for 12 weeks

Program Structure

  • Meets twice a week for 2 hour sessions in virtual classroom
  • Weekly exercises to complete before and after the sessions
  • Sessions begin in June and end in August

Topics covered

Topics introduced are focused on technical interviewing and practical fundamentals of software development including:

  • Behavioral and general interviewing tips
  • Practical data structures
  • Implementing efficient algorithms

Over the 12-weeks, the following topics will be highlighted:

  • Core data structures: Hash Tables, Arrays, Linked Lists
  • Complex data structures: Binary Trees, Heaps
  • Object Oriented Design/Systems Design
  • Searches: Binary Search, Breadth First Search/Depth First Search
  • Sorting: Merge Sort and Quick Sort
  • Recursion and Combinations
  • Dynamic Programming
  • Greedy Algorithms

The course will also include a preview of real-world software engineering roles and challenges including:

  • Fireside Q&A chats and info sessions with professional engineers
  • Industry mentors helping with mock interviews
  • Learn what it's like in the day-to-day of different software engineering roles
  • What are the common challenges faced in your first full-time software role

Week by Week Unit Plan

Week Topics Also Featured
1 Linked Lists Importance of mastering algorithm interviews
2 Hash tables / stacks + queues Edge cases
3 Big O Notation + Review Problem identification
4 Binary Trees Pseudocode
5 Graphs Complexity analysis
6 Strings / Arrays Verification
7 Review and Project Week Salary Negotiation
8 Greedy Algorithms Coming up with Test cases
9 Dynamic Programming Induction
10 Dynamic Programming w/ Backtracking
11 Review and Project Week Matching the problems
12 System Design Industry landscape

About

Self-Paced/Observer coursework from Codepath's Advanced Software Engineering Summer Session (Data Structures & Algorithms / Technical Interviews / Leetcode)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages