ECS: Interactive Learning Hub
Hands-on tutorials for web dev, programming, databases, and hardware
🌐 HTML - HyperText Markup Language
HTML is the backbone of every website. It defines the structure and content of web pages using tags.
📝 HTML Basics
Essential Tags:
<!DOCTYPE html>
<html>
<head>
<title>My First Page</title>
</head>
<body>
<h1>Welcome to My Website</h1>
<p>This is a paragraph.</p>
<a href="page2.html">Click here</a>
</body>
</html>
💡 Key Concepts:
- Tags: Most tags come in pairs: opening <tag> and closing </tag>
- Attributes: Extra info in tags like href="url" or class="name"
- Nesting: Tags inside tags must close in reverse order
- Semantic HTML: Use <header>, <nav>, <main>, <footer> for better structure
🏗️ Common HTML Elements
<div>
Container for grouping content
<img>
Display images: <img src="pic.jpg" alt="description">
<ul> <li>
Unordered (bullet) lists
<ol> <li>
Ordered (numbered) lists
<table>
Data tables with rows and columns
<form>
User input forms with inputs and buttons
🎨 CSS - Cascading Style Sheets
CSS makes websites beautiful by controlling colors, layouts, fonts, and animations.
🖌️ CSS Basics
Three Ways to Add CSS:
/* 1. External CSS file (best practice) */
<link rel="stylesheet" href="style.css">
/* 2. Internal CSS in <head> */
<style>
h1 { color: blue; }
</style>
/* 3. Inline CSS (avoid when possible) */
<h1 style="color: blue;">Hello</h1>
CSS Syntax:
selector {
property: value;
another-property: value;
}
/* Example */
h1 {
color: #b19977;
font-size: 32px;
text-align: center;
}
💡 Key Concepts:
- Selectors: Target elements by tag (h1), class (.my-class), or id (#my-id)
- Colors: Use names (red), hex (#ff0000), or rgb(255, 0, 0)
- Box Model: margin (outside) → border → padding (inside) → content
- Cascading: Later rules override earlier ones, more specific rules win
📐 Layout & Positioning
Flexbox (Easy Layouts!):
.container {
display: flex;
justify-content: center; /* horizontal */
align-items: center; /* vertical */
gap: 20px; /* space between items */
}
/* Common flexbox values */
justify-content: flex-start | center | flex-end | space-between;
flex-direction: row | column;
Grid (Advanced Layouts):
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* 3 equal columns */
gap: 20px;
}
/* Responsive grid */
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
✨ Animations & Effects
Transitions (Smooth Changes):
.button {
background: #b19977;
transition: all 0.3s ease;
}
.button:hover {
background: #86745c;
transform: scale(1.1);
}
Animations:
@keyframes slide-in {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.element {
animation: slide-in 0.5s ease-out;
}
⚡ JavaScript - Making Websites Interactive
JavaScript adds behavior to websites - responding to clicks, updating content, and creating dynamic experiences.
🎯 JavaScript Basics
Variables & Data Types:
// Variables (use let or const, not var)
let name = "Alex"; // String
let age = 16; // Number
let isStudent = true; // Boolean
let grades = [85, 92, 78]; // Array
const PI = 3.14159; // Constant (can't change)
// Output to console
console.log("Hello, " + name);
Functions:
// Function declaration
function greet(name) {
return "Hello, " + name + "!";
}
// Arrow function (modern syntax)
const add = (a, b) => a + b;
// Using functions
let message = greet("Jordan");
let sum = add(5, 3);
💡 Common Mistakes to Avoid:
- ❌ Forgetting semicolons at end of statements
- ❌ Using = (assignment) instead of == or === (comparison)
- ❌ Not checking if variables exist before using them
- ❌ Forgetting to return a value from functions
🎨 DOM Manipulation
Selecting Elements:
// Get element by ID
let header = document.getElementById('main-header');
// Get elements by class (returns array)
let buttons = document.getElementsByClassName('btn');
// Modern way (CSS selectors)
let element = document.querySelector('.my-class');
let elements = document.querySelectorAll('div');
Changing Content & Style:
// Change text
element.textContent = "New text";
element.innerHTML = "<strong>Bold text</strong>";
// Change styles
element.style.color = "blue";
element.style.fontSize = "20px";
// Add/remove classes
element.classList.add('active');
element.classList.remove('hidden');
element.classList.toggle('highlighted');
Event Handling:
// Click event
button.addEventListener('click', function() {
alert('Button clicked!');
});
// Modern arrow function syntax
button.addEventListener('click', () => {
console.log('Clicked!');
});
🚀 Project Ideas
- To-Do List: Add, remove, and mark tasks as complete
- Calculator: Basic arithmetic operations with buttons
- Color Picker: Change background color with sliders
- Quiz Game: Multiple choice questions with score tracking
- Image Gallery: Click thumbnails to show larger version
🐍 Python - Easy & Powerful Programming
Python is perfect for beginners - clear syntax, powerful capabilities, used everywhere from web dev to AI.
🎯 Python Fundamentals
Variables & Data Types:
# Python doesn't need type declarations!
name = "Alex"
age = 16
height = 5.9
is_student = True
# Lists (like arrays)
grades = [85, 92, 78, 95]
names = ["Alice", "Bob", "Charlie"]
# Dictionaries (key-value pairs)
student = {
"name": "Alex",
"age": 16,
"grade": "Junior"
}
# Print to console
print("Hello, " + name)
print(f"Age: {age}") # f-string (modern way)
Control Flow:
# If statements (notice the indentation!)
if age >= 16:
print("Can drive!")
elif age >= 13:
print("Teenager")
else:
print("Kid")
# For loops
for grade in grades:
print(grade)
for i in range(5): # 0, 1, 2, 3, 4
print(i)
# While loops
count = 0
while count < 5:
print(count)
count += 1
Functions:
def greet(name):
return f"Hello, {name}!"
def add(a, b):
return a + b
# Using functions
message = greet("Jordan")
sum = add(5, 3)
🎮 Python Project Ideas
Use random.randint(1, 6) to simulate dice rolls
Computer picks random number, you guess (with hints)
Calculate tip and split bill among friends
Ask for words, plug them into a story template
Create a choose-your-own-adventure story
☕ Java - Professional Programming
Java is used by millions of developers worldwide. It's powerful, object-oriented, and runs everywhere.
🎯 Java Fundamentals
Basic Structure:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Variables & Data Types:
// Primitive types
int age = 16;
double height = 5.9;
boolean isStudent = true;
char grade = 'A';
String name = "Alex"; // String is a class, not primitive
// Arrays
int[] grades = {85, 92, 78, 95};
String[] names = new String[5];
💡 Java vs Python:
- Type Declaration: Java needs int x = 5; Python just x = 5
- Semicolons: Java requires ; at end of statements
- Braces: Java uses { } for blocks, Python uses indentation
- Classes: Everything in Java must be in a class
🏗️ Object-Oriented Programming
Creating Classes:
public class Student {
// Instance variables
private String name;
private int age;
private double gpa;
// Constructor
public Student(String name, int age) {
this.name = name;
this.age = age;
this.gpa = 0.0;
}
// Methods
public void setGPA(double gpa) {
this.gpa = gpa;
}
public String getName() {
return name;
}
}
// Using the class
Student student = new Student("Alex", 16);
student.setGPA(3.8);
System.out.println(student.getName());
🗄️ SQL - Database Management
SQL (Structured Query Language) lets you store, retrieve, and manage data in databases.
📊 SQL Fundamentals
Basic Commands:
-- SELECT: Get data from database
SELECT name, age FROM students;
SELECT * FROM students WHERE age >= 16;
-- INSERT: Add new data
INSERT INTO students (name, age, grade)
VALUES ('Alex', 16, 'Junior');
-- UPDATE: Change existing data
UPDATE students
SET grade = 'Senior'
WHERE name = 'Alex';
-- DELETE: Remove data
DELETE FROM students WHERE age < 14;
Creating Tables:
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
grade TEXT,
gpa REAL
);
💡 SQL Tips:
- Keywords: SQL keywords (SELECT, WHERE) are usually written in CAPS
- Semicolons: End each query with ;
- WHERE: Filter results with conditions
- ORDER BY: Sort results (ASC or DESC)
🖥️ Building a PC & Installing Linux Mint
Learn to assemble a computer from components and install an operating system.
🔧 PC Components
The "brain" - handles calculations. Intel or AMD.
Connects everything. Must match CPU socket type.
Temporary storage while PC is on. 8GB minimum, 16GB recommended.
Permanent storage. SSD much faster than HDD.
Optional for basic use, required for gaming.
Provides electricity. Calculate wattage needed.
Holds everything. Ensure motherboard size fits.
Keeps CPU from overheating. Some CPUs include one.
🔨 Build Steps
- Clear workspace, anti-static wrist strap
- Organize all components and tools
- Read motherboard manual!
- Install CPU on motherboard (outside case)
- Apply thermal paste, attach cooler
- Install RAM in correct slots (check manual)
- Install I/O shield in case first
- Screw standoffs into case
- Carefully place motherboard, screw it down
- Install SSD in M.2 slot or drive bay
- If using GPU, install in top PCIe slot
- Screw GPU bracket to case
- 24-pin motherboard power
- 8-pin CPU power
- GPU power (if needed)
- SATA cables for storage
- Front panel connectors (power button, USB, audio)
- Route cables behind motherboard tray
- Use cable ties to keep organized
- Improves airflow and looks professional
- Double-check all connections
- Plug in power cable, turn on PSU switch
- Press power button - fans should spin!
- Enter BIOS (usually Delete or F2 key)
🐧 Installing Linux Mint
Preparation:
- Download Linux Mint ISO from linuxmint.com
- Create bootable USB with Rufus (Windows) or Etcher (Mac/Linux)
- Insert USB into new PC
Installation Steps:
- Boot from USB: Enter BIOS, set USB as first boot device
- Try Linux Mint: Test it out without installing (optional)
- Start Installation: Double-click "Install Linux Mint" icon
- Choose Language: Select your preferred language
- Keyboard Layout: Select your keyboard layout
- Multimedia Codecs: Check "Install multimedia codecs"
- Installation Type: "Erase disk and install" (if new PC)
- Time Zone: Select your location
- User Account: Create username and password
- Wait: Installation takes 10-20 minutes
- Restart: Remove USB when prompted, restart computer
Post-Installation:
- Update system: sudo apt update && sudo apt upgrade
- Install additional software from Software Manager
- Customize desktop appearance
- Set up backups with Timeshift
📚 Additional Resources
🌐 Web Development
- JuiceMind - Interactive coding platform
- W3Schools - HTML/CSS/JS tutorials
- MDN Web Docs - Complete reference
🐍 Python
- JuiceMind - Interactive Python lessons
- Python.org - Official documentation
- CodeHS - Python courses and practice
☕ Java
- JuiceMind - Java programming practice
- CodeHS - Java tutorials and exercises
- Oracle Tutorials - Official Java guides
🗄️ SQL
- CodeHS - SQL lessons and practice
- SQLite Online - Practice SQL
- SQL Tutorial - Learn SQL basics