mcpField
C
computer-science-tutor

computer-science-tutor

github.com/szeyuDevelopment3088 installsUpdated 2d ago
Repository

About computer-science-tutor

computer-science-tutor is a subject skill for computer science study, problem solving, and note creation, aimed at learners and tutoring agents. It brings together algorithm workflows, common patterns, code templates, and complexity references.

Key features

  1. 01Covers algorithms and data structures
  2. 02Provides an algorithm-solving workflow
  3. 03Organizes common problem-solving patterns
  4. 04Includes BFS, DFS, and other code templates
  5. 05References data-structure operation complexity

Use cases

  1. 01Practice algorithm problems and refine solutions
  2. 02Review common algorithm patterns
  3. 03Consult templates when implementing graph algorithms
  4. 04Compare operation complexity across data structures

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/szeyu/vibe-study-skills --skill computer-science-tutor

After installing, type/computer-science-tutorin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
algorithms.md
big-o.md
data-structures.md

Details

From the project README

Computer Science Subject Expert

Specialized knowledge for computer science studying, problem-solving, and note creation.

Topic Coverage

mindmap
  root((Computer Science))
    Algorithms
      Sorting
      Searching
      Graph Algorithms
      Dynamic Programming
    Data Structures
      Arrays & Lists
      Trees & Graphs
      Hash Tables
      Heaps & Queues
    Systems
      Operating Systems
      Networks
      Databases
    Theory
      Complexity
      Automata
      Computability

Quick Reference Links


Diagram Patterns

Algorithm Flowchart
flowchart TB
    A[Start] --> B{Condition?}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E
Data Structure Visualization
graph TB
    subgraph "Binary Search Tree"
        A((8)) --> B((3))
        A --> C((10))
        B --> D((1))
        B --> E((6))
        C --> F((14))
    end
Sequence Diagram (API/Process)
sequenceDiagram
    Client->>Server: Request
    Server->>Database: Query
    Database-->>Server: Results
    Server-->>Client: Response

Problem-Solving Framework

Algorithm Design Steps
  1. Understand - Clarify inputs, outputs, constraints
  2. Examples - Work through 2-3 examples by hand
  3. Brute Force - Start with the obvious O(n²) or O(n!) solution
  4. Optimize - Apply patterns (two pointers, sliding window, etc.)
  5. Implement - Write clean, modular code
  6. Test - Edge cases (empty, single element, duplicates)
Common Patterns
PatternUse WhenExample
Two PointersSorted array, find pairsTwo Sum (sorted)
Sliding WindowContiguous subarrayMax sum subarray
Hash MapO(1) lookups neededTwo Sum (unsorted)
BFSShortest path (unweighted)Maze solving
DFSExplore all pathsPermutations
Binary SearchSorted data, find elementSearch rotated array
Dynamic ProgrammingOverlapping subproblemsFibonacci, Knapsack

Code Template Patterns

Binary Search
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1  # Not found
BFS Template
from collections import deque

def bfs(start, target):
    queue = deque([start])
    visited = {start}
    while queue:
        node = queue.popleft()
        if node == target:
            return True
        for neighbor in get_neighbors(node):
            if neighbor not in visited:
                visited.add(neighbor)
                queue.append(neighbor)
    return False
DFS Template
def dfs(node, visited):
    if node in visited:
        return
    visited.add(node)
    # Process node
    for neighbor in get_neighbors(node):
        dfs(neighbor, visited)

Complexity Quick Reference

OperationArrayLinked ListHash TableBST (avg)
AccessO(1)O(n)O(1)O(log n)
SearchO(n)O(n)O(1)O(log n)
InsertO(n)O(1)O(1)O(log n)
DeleteO(n)O(1)O(1)O(log n)

Comments

Markdown supported