Skip to content

Code, Sweat, Repeat - Building CS muscle memory, one line of code at a time

Notifications You must be signed in to change notification settings

ntrappe/Copilot-Coding-Gym

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copilot-Coding-Gym

Welcome to Copilot Coding Gym! Just like a gym, but for your coding muscles! 💪 Here, we use the power of AI to generate a variety of workouts in the form of coding challenges, conceptual tests, and knowledge checks. Our aim is to help you flex and strengthen your core computer science skills in C++. Happy Coding!

Data Structure Workouts

  • Array Aerobics: Practice with contiguous memory allocation and constant-time access.
  • Linked List Lunges: Get dynamic with size and constant time insertion/deletion.
  • Stack Squats: Feel the burn with LIFO behavior and function calls.
  • Queue Crunches: Work on your FIFO behavior and breadth-first search.
  • Tree Pull-ups: Climb the hierarchical structure used in file systems.
  • BST Hurdles: Race through sorted data and logarithmic time operations.
  • Heap Deadlifts: Lift with priority queues and heap sort.
  • Hash Table Hammer Curls: Constant time operations will keep you on your toes.

Algorithm Workouts

  • Sorting Sprints: Quick Sort, Merge Sort, Heap Sort, and more.
  • Searching Shuttle Runs: Binary Search, Depth-First Search, Breadth-First Search, and more.
  • Graph Climbing: Dijkstra’s Algorithm, Bellman-Ford Algorithm, Floyd-Warshall Algorithm, and more.
  • Dynamic Programming Push-ups: Overlapping subproblems and optimal substructure properties.

Conceptual Workouts

  • Big O Notation Jumping Jacks: Analyze time and space complexity.
  • Recursion Relay Race: Function calls itself as a subroutine.
  • Memory Management Marathon: Understanding of stack and heap, garbage collection, etc.
  • Concurrency Crossfit: Processes, threads, synchronization, deadlock, etc.
  • Networking Ninja Warrior: TCP/IP, UDP, HTTP protocols, etc.

Programming Workouts

  • Pass by Value vs Reference Planks: A copy of the value or the memory address?
  • Inheritance Inclined Press: Inheritance allows us to define a class in terms of another class, which makes creating and maintaining an application much easier. Practice creating a base class and inheriting features in a derived class.
  • Polymorphism Planks: Polymorphism allows routines to use variables of different types at different times. Get comfortable with function overloading and virtual functions.
  • Encapsulation Extensions: Encapsulation binds together the data and functions that manipulate the data. Work on defining classes and creating objects.
  • Abstraction Abs Workout: Abstraction hides the complex reality while showing the essential features. Practice creating abstract classes and pure virtual functions.
  • STL (Standard Template Library) Squats: STL is a powerful library in C++ consisting of template classes. Flex your coding muscles with containers, algorithms, and iterators.

Software Design & Architecture Workouts

  • Design Patterns Dumbbell Curls: Get familiar with common design patterns like Singleton, Factory, Observer, and Decorator. These are typical solutions to common problems in software design.
  • MVC Treadmill: Run through the Model-View-Controller pattern, commonly used for designing software that divides the related program logic into three interconnected elements.
  • Microservices Mountain Climbers: Climb through the design of software applications as suites of independently deployable services.
  • RESTful Rows: Pull up on the principles of Representational State Transfer (REST) used in web service development.
  • OOP Overhead Press: Press on the principles of Object-Oriented Programming (OOP) - Encapsulation, Inheritance, Polymorphism, and Abstraction.
  • Functional Programming Sit-ups: Sit up and take notice of the principles of Functional Programming - Immutable data, first-class functions, and function composition and purity.

Remember, just like in a gym, consistency is key. Keep practicing these exercises regularly and you’ll become a C++ heavyweight in no time!

About

Code, Sweat, Repeat - Building CS muscle memory, one line of code at a time

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published