Orientation and Setup
Get set up with tools, workflows, and habits for creative coding with JavaScript and p5.js.
Content
Course overview and expectations
Versions:
Watch & Learn
CS30 — Orientation and Setup: Course overview and expectations
Welcome to CS30: where recursion meets caffeine and your brain learns to think like a machine (but funnier).
Hook: Why you should care (other than grades)
Have you ever wanted to build something that doesn’t immediately crash? Or explain to a friend what an algorithm actually does without using interpretive dance? Good. This course is the bridge between 'I kind of get programming' and 'I can design, analyze, and defend code like a slightly dramatic lawyer.'
This page tells you what CS30 is, what we expect from you, and — most importantly — how to get set up so you can stop wasting time on environment issues and start writing code that (mostly) works.
What is CS30? (Short, sweet, not terrifying)
CS30 is an intermediate-level computer science course focused on:
- Problem solving and algorithms (reasonably efficient stuff, not mythical optimization)
- Software design and testing (how to not ship bugs like it’s 1999)
- Version control and collaboration (Git: your new best frenemie)
- Project work that simulates real-world development (yes, teamwork included)
Prerequisites: CS10/CS20 or equivalent programming experience. If you can write functions, loop without crying, and reason about arrays/structures, you’re in.
Learning objectives (what you'll actually be able to do)
By the end of CS30, you should be able to:
- Design algorithms for common problems and reason about their complexity.
- Implement and test robust code using modular design.
- Use Git for version control and collaboration.
- Communicate technical ideas clearly in writing and orally.
Ask yourself: Which objective makes you nervous? That's your target for the first month.
Course structure & assessment (aka how the grading cookie crumbles)
| Item | Weight | Notes |
|---|---|---|
| Homework (weekly) | 40% | Individual, autograders + manual review |
| Midterm project | 15% | Small team project, design doc required |
| Final project | 25% | Bigger team project; demo + report |
| Quizzes / Participation | 10% | Short, low-stakes; helps your attendance record |
| Labs / Git checkpoints | 10% | Setup verification and small tasks |
Questions: Are projects collaborative? Yes. Is plagiarism tolerated? No. Is there mercy? Only if you ask early and have a good reason.
Policies you should read but didn't until now (read them now)
- Late policy: Small grace period for one assignment per semester; otherwise 10% per day unless you have documented extenuating circumstances.
- Collaboration: Discuss concepts freely. Share algorithms in pseudocode only. Code sharing is allowed for pair programming sessions only and must be disclosed. Copying = 0 on both assignments and a visit to Academic Integrity Office.
- Academic integrity: We use similarity tools and manual inspection. Be original. Cite help and collaborators.
- Accommodations: Reach out early to the instructor and disability services.
Pro tip: Treat the syllabus like a contract. Break it, and the contract bites back.
Communication channels (where to yell into the void)
- Course LMS (announcements & grades) — check daily. Yes, daily.
- Discussion forum / Slack — questions, peer help, memes (use channels appropriately).
- Office hours — listed on the syllabus; come with a specific question or to show your debug timeline.
- Email — for private, urgent issues (expect 48-hour response max on weekdays).
Why multiple channels? Fast questions go to Slack; grade disputes go to email; existential crises go to office hours.
Tech setup checklist (do this before the first lab)
Follow these in order. Do not skip. Skipping is how bugs multiply like rabbits.
- Install your IDE (recommended: VS Code) and extensions: language support, linter, git plugin.
- Install Git (latest stable) and set your identity:
git config --global user.name 'Your Name'
git config --global user.email 'yourid@university.edu'
- Create your school Git account / link to GitHub or GitLab as instructed.
- Clone the starter repository for Week 1 (link on LMS) and run the test suite.
git clone https://gitlab.university.edu/cs30-starters/week1.git
cd week1
./run_tests.sh # or python -m pytest
- Confirm your submission workflow: push to your repo, open a merge request / submit via LMS.
- Join the course Slack / discussion forum and post a friendly hello + your setup status.
Common failure modes: wrong repo URL, forgetting to run the test script, using the wrong Python/Java version. If you hit a wall, screenshot terminal + error and bring it to office hours.
Weekly rhythm (what your life will look like)
- Monday: Lecture and release of homework
- Wednesday: Recitation or lab session (hands-on)\
- Friday: Short quiz or checkpoint
- Sunday night: Homework due (usually 11:59pm)
Think of it as a TV series: lectures are trailers, labs are episodes, homeworks are the plot twists.
How to succeed (or at least not fail spectacularly)
- Start assignments early. Bugs love last-minute code.
- Write tests. Even two simple ones save hours of pain.
- Use Git branches for features. Commit early, commit often.
- Pair up for pair programming days; explain your code out loud.
- Read feedback and iterate — grades are less important than learning.
Engaging question: What’s one thing you can do this week to move from confused to confident? Make a plan and execute it.
Closing: TL;DR and first actions
Bold promises you should remember:
- Do the setup checklist before Week 1 lab. Without it, you're just an angry terminal error.
- Read the syllabus. Know the rules; they will know you.
- Use office hours early. Instructors love early adopters (and coffee).
Final inspirational (and slightly dramatic) thought:
Learning to program is learning to speak with a machine. It’s awkward at first, but the machine is patient — it just gives you cryptic errors and waits. Be patient back.
First actions right now:
- Install VS Code + Git
- Clone the starter repo and run tests
- Post in the course Slack: your name, pronouns (optional), and 'I set up my environment'
See you in lab. Bring curiosity, snacks, and a screenshot if something explodes.
Comments (0)
Please sign in to leave a comment.
No comments yet. Be the first to comment!