Elective Strategy — Getting the Most Out of Your Free Choices¶
Your electives are the most underutilized part of your CS degree. Most students pick whatever fits their schedule or sounds easy. That's fine, but with a little strategy, you can use your electives to build skills that genuinely differentiate you in the job market — or at least protect your GPA during brutal semesters.
This guide is for students who want to be intentional about their choices.
First: Understanding What You're Actually Choosing¶
Required Electives vs Free Electives¶
In the UofA CS specialization, not all electives are equal. You'll have:
- CMPUT electives: Upper-year CMPUT courses beyond your required courses. These count toward your CS credit requirements and let you go deeper in specific areas.
- Science electives: Non-CMPUT courses from science disciplines (MATH, STAT, PHYS, CHEM, BIOL, etc.). CS has specific requirements here — check the current calendar.
- Non-science / Humanities electives: Courses from Arts, Business, Fine Arts, etc. You'll have a minimum number of these required for your degree.
- Free electives: Whatever fills remaining credit hours after satisfying all other requirements.
The exact counts change slightly with calendar updates, so always verify in the current UofA Academic Calendar and confirm on BearTracks before registering.
How to Check What Counts in BearTracks¶
- Log in to BearTracks and go to your Academic Advisement Report (AAR).
- The AAR maps every course you've taken or plan to take against your degree requirements.
- When you add a course to your "what-if" or planned courses, it will show you which requirement bucket it fills.
- If you're unsure whether a specific course counts as a science elective or free elective, add it to your planner and check the AAR — or email your departmental advisor. Don't guess.
This takes ten minutes and will save you from the nightmare of realizing in your final semester that a course didn't count where you thought it did.
GPA-Boosting Electives — Honest Talk¶
Let's be real: sometimes you're taking a brutal semester (say, 204 + 379 + 272) and you need an elective that won't destroy you. There's nothing wrong with this. Sustainable GPA management is part of getting through the degree.
The truth, though, is that "easy" is deeply personal:
- PHIL courses (especially intro logic courses like PHIL 120/125) are commonly considered lighter by CS students. The content — formal logic — also overlaps with what you do in CS, so it doesn't feel entirely foreign.
- ENGL courses (intro literature, writing courses) are often mentioned as less demanding for quantitatively-oriented students, but if you hate writing essays, these will feel hard regardless.
- Some AREC, ANTHR, SOC intro courses have reputations for lighter workloads, but this varies enormously by instructor and year.
- PEDS courses (physical education) count as electives and are often low-stress — useful if you want credit hours without academic burden.
Ask upper-year students in your circle what worked for them. RateMyProfessors is imperfect but has signal. The UofA subreddit and CS Discord servers have threads on this.
Warning: Don't load up on "easy" electives at the expense of actually useful ones. You have limited elective slots. Spend them wisely.
Actually Useful Electives for CS Careers¶
These are courses outside CMPUT that will meaningfully improve your career prospects or technical depth. Sorted by career relevance.
Statistics and Data¶
STAT 265 — Probability Theory (or STAT 252) The most directly useful stats course for CS students. Probability theory is the mathematical foundation for ML, data science, A/B testing, randomized algorithms, and systems reliability work. If you're going anywhere near data, take this. STAT 265 is more rigorous than STAT 151 (intro stats) and actually covers the material you'll need. It counts as a science elective.
STAT 252 — Introduction to Statistics More approachable than 265, still useful. If 265 feels like too much, 252 gives you the fundamentals of statistical inference, hypothesis testing, and regression. Essential vocabulary for anyone working with data or running experiments.
Why it matters in industry: A/B testing is everywhere in product companies. Being able to say "this result is statistically significant at the 95% confidence level and here's why" is not a skill most engineers have. It's immediately useful and differentiating.
Mathematics¶
MATH 214 / 216 — Calculus / Differential Equations Useful for physics simulations, game engines, signal processing, and ML (gradient descent is calculus). If you haven't taken calculus and plan to go into ML or simulation work, get this on your transcript.
MATH 225 — Linear Algebra (if not already covered) Often partially covered in CS programs but worth a full treatment. ML is linear algebra. Graphics is linear algebra. Any serious ML/AI work requires this.
MATH 381 — Discrete Mathematics Overlaps significantly with CMPUT 272 and portions of 204. Good for reinforcing combinatorics, graph theory, and number theory. Some students find this easier than the CMPUT versions because the framing is different. Counts as a science elective.
MATH 328 — Number Theory Relevant for cryptography, competitive programming, and some areas of algorithms. Not widely taken by CS students, which makes it interesting to list on a resume for security or crypto-adjacent roles.
Linguistics¶
LING 101 / 201 — Introduction to Linguistics If you have any interest in NLP (natural language processing), computational linguistics, or working on language models, this is valuable background. Morphology, syntax, phonology — these concepts come up directly in NLP pipelines. Also: genuinely interesting courses that change how you think about language.
Industry relevance for NLP/ML: High. Understanding linguistic structure makes you better at NLP tasks and helps you communicate with linguists on research teams.
Psychology¶
PSYCH 104 — Introduction to Psychology Useful if you're interested in HCI (human-computer interaction), UX research, product design, or anything user-facing. Understanding cognitive load, attention, memory limitations, and decision-making biases makes you a better product engineer. Many UX researchers have psychology backgrounds — knowing the vocabulary helps you collaborate with them.
Philosophy¶
PHIL 120 / 125 — Critical Thinking / Introductory Logic Formal logic for non-CS students. Easy for CS students (you basically already know this from 272), counts as a humanities elective, and reinforces useful thinking skills. Also: quick reads, low exam anxiety. Good for a heavy semester.
PHIL 325 — Formal Logic Goes deeper. Relevant if you're interested in programming language theory, formal verification, or type systems. Less commonly taken but respected by people who know what it is.
Business¶
SMO / BUS courses — Project Management, Organizational Behavior, Intro Business Underrated by CS students who want to write code forever. Reality: within a few years of graduation, you'll be navigating organizations, advocating for projects, and working with non-technical stakeholders. Some business vocabulary goes a long way. A business minor is achievable and opens doors to consulting, product management, and startup roles that pure CS students sometimes miss out on.
Minor Strategies¶
Minors are optional but can add real value. Here are the most useful ones for CS students:
Statistics Minor¶
Excellent for ML, data science, and any role touching data. Requires roughly 5 STAT courses beyond intro level. If you're planning an ML career, this is one of the best signals you can put on a resume — it shows mathematical rigor, not just "I did a Kaggle competition."
Typical path: STAT 151 or 265 → STAT 252 or 266 → 300-level STAT courses. Check the UofA calendar for the current minor requirements.
Mathematics Minor¶
Good for ML, theoretical CS, and research paths. Also looks strong to employers who care about analytical rigor. Takes commitment but the math is useful.
Business Minor (through the Alberta School of Business)¶
Opens doors to PM roles, consulting, and startup work. Business minors have to navigate cross-registration between faculties, so check requirements early — some Business courses are restricted to Business students. Talk to an advisor in your first or second year if you're considering this.
Linguistics Minor¶
Genuinely useful for NLP careers. Not commonly taken by CS students, which makes it stand out. Works well if you're also doing ML courses.
Timing Strategy: When to Take What¶
This is the part most guides skip. Elective timing matters.
Heavy CS semesters (typically when you're taking 204, 379, 291, or multiple upper-year CMPUT courses): Take easier electives. This is your "protect your GPA and sanity" semester. A light humanities course or an intro STAT course is fine here.
Lighter CS semesters (first semester of a year, or when you've knocked out the major requirements): Take substantive electives — a full STAT course, a MATH course, something that adds real depth.
Final year: Be careful. Many students underestimate their capstone or final project load. Don't stack challenging electives in the same semester as CMPUT 401.
Rule of thumb: One "challenging and useful" elective per semester is sustainable. Two is pushing it. Don't take three upper-level non-CS courses while also taking upper-level CMPUT courses.
A Note for International Students¶
If English is not your first language, you may have ENGL course requirements as part of your admission conditions or program requirements. Check with your academic advisor. These aren't optional in your case — they're mandated, and trying to waive them is usually more work than just taking them. The good news: many international students find that improving their written English directly improves their technical communication skills, which matters in interviews and on the job.
The Honest Summary¶
- Verify everything on BearTracks — don't assume a course counts where you think it does.
- STAT 265 is probably the highest-ROI science elective for most CS career paths.
- Use easy electives strategically during heavy semesters, not as a default approach.
- If you have a career direction (ML, security, product), pick electives that reinforce it.
- Minors are worth considering if you start planning early (first or second year).
- Ask upper-year students and recent grads what they wished they'd taken. They'll give you better advice than any official guide will.