EC101: Programming as Thinking

Python, Logic, and Human Reasoning

Variables as memory, functions as abstraction, code as formalized thought

πŸ“‹ Overview

You've learned how humans think. Now learn how to formalize that thinking into code.

Programming isn't about memorizing syntaxβ€”it's about taking the cognitive patterns you already use and expressing them in a language computers understand.

What You'll Learn:

🎯 Key Outcomes

By the end of this course, you will:

πŸ“š Prerequisites

πŸ—ΊοΈ Course Structure

Module 1: Variables & Memory

Focus: Storing and manipulating information

Lessons:

Project: Build a personal information tracker


Module 2: Functions & Abstraction

Focus: Chunking procedures

Lessons:

Project: Create a library of reusable utility functions


Module 3: Control Flow

Focus: Modeling decisions and repetition

Lessons:

Project: Build a text-based decision tree game


Module 4: Data Structures Intro

Focus: Organizing information

Lessons:

Project: Create a contact management system


Module 5: Problem Decomposition

Focus: Breaking problems into solvable pieces

Lessons:

Project: Build a complete application from scratch


πŸ”— Connections

Builds On

Leads To

Used In Hackathon Lab


πŸ’‘ Key Concepts

Concept 1: Variables = Named Thoughts

Just like you hold thoughts in working memory, variables hold values in computer memory. Naming them well makes code readable.

In Practice: user_age is better than x


Concept 2: Functions = Chunking

Experts don't think in individual stepsβ€”they think in chunks. Functions let you do the same in code.

In Practice: calculate_discount(price, percentage) chunks pricing logic


Concept 3: Loops = Mental Cycles

You naturally iterate ("try again until it works"). Loops formalize this.

In Practice: while not solved: try_solution()


πŸ› οΈ Practical Applications

  1. Automate repetitive tasks in your daily life
  2. Think more clearly about problem-solving
  3. Build tools that serve real needs
  4. Prototype ideas quickly

πŸ“– Resources


πŸš€ Getting Started

Enroll in EC101 Continue to EC102 β†’ View All Courses

Difficulty: β­β­β˜†β˜†β˜† Beginner
Time Commitment: ~12 hours
Prerequisites: EC000
Next Course: EC102