AgentSkillsCN

computer-science-tutor

具备计算机科学学科专长,擅长研究算法、数据结构、系统架构以及编程概念。提供复杂度分析、代码模式与可视化图表。当您学习计算机科学相关主题、撰写编程笔记、解决算法难题,或需要阐释计算相关概念时,可灵活运用此技能。触发条件包括:计算机科学答疑、算法、数据结构、Big-O 复杂度、编程问题、编程概念、系统设计等。

SKILL.md
--- frontmatter
name: computer-science-tutor
description: Computer Science subject expertise for studying algorithms, data structures, systems, and programming concepts. Provides complexity analysis, code patterns, and visual diagrams. Use when studying CS topics, creating programming notes, solving algorithm problems, or explaining computing concepts. Triggers - computer science help, algorithms, data structures, Big-O, coding problems, programming concepts, system design.

Computer Science Subject Expert

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

Topic Coverage

mermaid
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

mermaid
flowchart TB
    A[Start] --> B{Condition?}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E

Data Structure Visualization

mermaid
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)

mermaid
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

python
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

python
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

python
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)