What designing 54 computer science cards taught me about graphic design
Lessons in Graphic Design via 54 Computer Science Cards
Graphic design is the act of solving a communication hurdle, whereas software engineering is the act of solving an information hurdle.
For many people, computer science feels like a "black box"—an abstract, dense realm hidden behind a monitor. However, I view it as a space of creative problem-solving and elegant architecture. To bridge this gap, I created Algodeck: a physical set of 54 cards featuring minimalist illustrations and concise explanations. My goal was to condense mathematics and CS into a tangible format, making mental models and core skills more approachable.
What is Algodeck?
Algodeck is a curated assembly of my favorite data structures, algorithms, and cognitive frameworks gathered from my university days and my professional career as a software engineer.
The project goals included:
- Distill complex theory into short forms.
- Encourage serendipitous discovery.
- Move away from
linear, dense textbooks. - Prompt users to research further if a card feels cryptic.
"Instead of thinking about what to do, consider what to avoid doing. Oh, and taking a walk is quite good, too!" — Example card advice
The Intersection of Code and Art
Although I am a software engineer by trade, I used this project to master graphic design fundamentals. Rather than using a GUI like Adobe Illustrator, I chose to generate all 54 illustrations using code.
This approach felt more intuitive to me. By using code, I could globally update stroke_width or color_palette across the entire deck instantly, allowing for rapid iteration.
Comparing the Two Disciplines
| Discipline | Core Objective | Primary Toolset |
|---|---|---|
| Graphic Design | Solving Communication Problems | Visual Systems & Grids |
| Software Engineering | Solving Information Problems | Logic & Data Structures |
Both fields rely on systems thinking. Designers often use math without realizing it—whether they are calculating a type scale or utilizing the Golden Ratio:
The Evolution of the System
I drew inspiration from Gerstner’s Designing Programmes (1964), a manifesto for system-oriented design, and Martin Lorenz’s Flexible Visual Systems, which advocates for reusable design components.
In the first version, the scaling was haphazard. For the second, I established a strict design system where a single cell_size variable dictated every other dimension, including the thickness of the lines.
The benefits of encoding a design system:
- Constraints: Defining rules makes decision-making easier.
- Efficiency: You no longer face the "blank page" problem; you simply assemble existing shapes and colors.
Technical Implementation Example
# Conceptual logic for the design system
def calculate_element_size(cell_size, ratio):
return cell_size * ratio
# Global variables for consistency
BASE_CELL = 100
STROKE_WEIGHT = calculate_element_size(BASE_CELL, 0.05)
COLOR_PRIMARY = "Red"
COLOR_SECONDARY = "Blue"
Visual Language and Philosophy
I opted for a simple red-and-blue duotone palette. This choice serves three purposes:
- It mirrors the binary nature of computing.
- It pays tribute to the Bauhaus movement.
- It evokes the feel of vintage French primary school textbooks.
Fun Fact: Drawbot was developed by Just van Rossum (brother of Python creator Guido van Rossum). While such tools exist now, I wrote and designed my own system for this project, utilizing only Grammarly for text polishing.
Beyond the Screen
In an era of AI, you could simply ask an LLM: "List 54 essential CS and math concepts in 100 words each." The AI would produce a linguistically correct list, but it lacks the tactile experience.
Algodeck is more than a list; it is a problem-solving kit. It encourages users to step away from the screen, flip through physical cards, and fundamentally shift how they approach complex challenges.
📚 Further Reading
- Extra Extra Extra You probably won't read those books: A reflection on the mountain of unread literature we all possess.
- Climate Communication Why we need specific emojis to discuss the environment and global warming.
- On Maps Exploring how mapping serves as a vital tool for problem-solving and design.