Frequently Asked Questions: UofA Computer Science¶
The same questions come up every year in CS advising, Discord servers, and Reddit threads. Here are honest answers to the ones that actually matter.
Program and Degree Questions¶
"Is Computer Science at UofA worth it?"¶
Short answer: Yes, if you're serious about working in tech.
Longer answer: UofA CS is a solid program with strong fundamentals, decent industry connections, and significantly lower cost than comparable programs at UofT or UBC. The AI/ML research is world-class (Amii, RLAI). The Edmonton tech scene is growing. You'll graduate with the same foundational knowledge as students from "prestigious" schools.
What matters more than school prestige is what you do while you're here: internships, projects, grades, networking. UofA gives you the platform. You have to build on it.
"Should I do General, Specialization, or Honors?"¶
For industry careers: - Specialization is the sweet spot. More focused than General, less research-heavy than Honors. - General is fine if you want more electives or aren't sure about CS yet. - Honors only if you're seriously considering graduate school or want the intellectual challenge.
Reality check: Most tech companies don't care about the distinction. Your projects, internships, and interview performance matter infinitely more than whether your degree says "Specialization" or "General."
"Can I finish CS in 3 years?"¶
Technically: Yes, with good planning and summer courses.
Practically: Challenging but doable. You'll need to: - Plan carefully to avoid prerequisite bottlenecks - Take summer courses - Handle heavy course loads (15-18 credits per semester) - Be prepared for less flexibility in course selection
Trade-offs: Less time for internships, projects, or part-time work. More academic stress. Harder to maintain high GPA.
Bottom line: Possible, but only worth it if you have a compelling reason (cost savings, job offer contingent on graduation date, etc.). Most students benefit more from a 4-year timeline with summer internships.
"Should I transfer to Waterloo?"¶
If you're asking this in first year: Probably not worth it. Transfer credits are messy, you'll lose time, and the cost difference is significant.
If you're asking this in second year or later: Definitely not. You're halfway done. Finish strong here and focus on landing good internships.
Reality: Waterloo has better co-op placement and stronger industry connections, but UofA CS students regularly get jobs at FAANG, major tech companies, and top startups. Your individual effort matters more than your school's brand.
Course and Academic Questions¶
"Which courses are actually important for getting a job?"¶
Essential for all paths: - CMPUT 204 (Algorithms) - Directly relevant to technical interviews - CMPUT 291 (Databases) - You'll use this in most backend roles - CMPUT 301 (Software Engineering) - Project management, development processes
Essential for backend/systems: - CMPUT 379 (Operating Systems) - CMPUT 313 (Computer Networks) - CMPUT 229 (Computer Organization)
Essential for web development: - CMPUT 404 (Web Applications) - Though you'll learn more from personal projects - CMPUT 391 (Database Management Systems)
Surprisingly valuable: - CMPUT 403 (Competitive Programming) - Best interview prep you can take - CMPUT 415 (Compiler Design) - Teaches you how languages actually work
Less important than you think: - Most 100/200-level courses beyond the core sequence - Highly theoretical courses unless you're going into research
"Should I take CMPUT 174/175 or 274/275?"¶
174/175 (traditional intro sequence): - Standard programming fundamentals - Python and C focus - More traditional CS approach - Better if you have little programming experience
274/275 (tangible computing): - Hardware interfacing, embedded systems - Arduino/Raspberry Pi projects - More hands-on, maker-oriented - Better if you like hardware and have some programming background
For industry: Either is fine. Choose based on your interests and background, not career optimization.
"What's the deal with competitive programming (CMPUT 403)?"¶
What it is: Algorithm problem-solving under time pressure. Think LeetCode but more mathematical and complex.
Why it matters: Direct preparation for technical interviews. Teaches you to recognize patterns and solve problems quickly.
Who should take it: Anyone planning to interview at major tech companies. The pattern recognition and problem-solving speed you develop is invaluable.
Warning: Very challenging course. Don't take it alongside other difficult courses unless you're confident in your ability to handle the workload.
"How hard is CS compared to other programs?"¶
Compared to other STEM fields: Moderate to challenging. More abstract than engineering, less memorization-heavy than biology, more practical than pure math.
Within CS: Difficulty varies dramatically by course and professor. Some courses (204, 379) are consistently challenging. Others depend heavily on the instructor.
Workload: Expect 10-15 hours per week outside class for a typical CS course. Major project courses (301, 401) can require significantly more during crunch periods.
Career and Job Questions¶
"When should I start applying for internships?"¶
Timeline: - Summer after first year: Apply in January-March. Options are limited but exist. - Summer after second year: Apply in September-December. Much better opportunities. - Summer after third year: Apply in August-October. Most competitive positions available.
Reality check: It's never too early to start building your resume with projects and learning industry tools.
"What programming languages should I learn?"¶
What UofA teaches: Python, C, C++, Java, some JavaScript
What industry uses: JavaScript/TypeScript, Python, Go, Rust, C#, Swift, Kotlin
Strategy: Master the fundamentals in whatever language, then pick up industry languages through projects and internships. Language syntax is learnable; problem-solving and system design are harder to develop.
For interviews: Python or Java are safest choices. Don't try to show off with esoteric languages.
"Do I need a high GPA to get a job?"¶
For internships: GPA matters more, especially for competitive programs. 3.5+ opens most doors.
For new grad positions: Matters less. Some companies filter at 3.0, but many don't ask. Projects and interview performance matter more.
For specific paths: - Big tech (FAANG): High GPA helps but isn't required. Strong interviews matter more. - Startups: GPA rarely matters. Skills and cultural fit are everything. - Government/large corporations: GPA often matters more due to HR policies.
Bottom line: Don't sacrifice projects and learning to chase perfect grades, but don't completely ignore academic performance either.
"Should I do a co-op program?"¶
UofA doesn't have formal co-op: Unlike Waterloo or SFU, UofA CS doesn't have a structured co-op program.
What you can do instead: - Apply for internships independently - Use Career Centre resources - Network through professors and industry events - Consider research positions (NSERC USRA)
Advantage: More flexibility in timing and choice. Disadvantage: Less structured support and guaranteed placements.
Graduate School Questions¶
"Should I go to grad school?"¶
For industry careers: Usually not necessary. Experience matters more than advanced degrees for most software engineering roles.
Consider it if: - You want to work in research (AI/ML, systems research, academia) - You want to specialize in a highly technical area (computer vision, NLP, security) - You genuinely enjoy research and academic work - You're targeting research roles at major tech companies
Don't do it if: - You're just delaying job hunting - You think it will automatically lead to higher salaries - You don't have specific research interests
"What about AI/ML? Don't I need grad school for that?"¶
Industry ML roles: Many are accessible with undergraduate degree + relevant experience. More about practical implementation than cutting-edge research.
Research ML roles: Usually require graduate degree, but the roles are specialized and fewer in number.
Strategy: Work in industry first, then consider grad school if you want to move into research.
Edmonton and Local Questions¶
"Is there a tech scene in Edmonton?"¶
Yes, but: It's smaller than Toronto/Vancouver. More focused on enterprise software, fintech, and energy tech than consumer products.
Major employers: Jobber, TELUS, ATB Financial, Benevity, AltaML, plus government and oil & gas tech roles.
Advantages: Lower cost of living, less competition, growing scene, remote work options.
Disadvantages: Fewer total opportunities, less startup activity, fewer networking events.
Bottom line: Edmonton is a legitimate place to start a tech career, but you might eventually move to a larger market for advanced opportunities.
"Can I work remotely from Edmonton?"¶
Post-COVID reality: Many Edmonton developers work remotely for Toronto, Vancouver, US, or European companies.
Advantages: Access to global job market while living in lower-cost city.
Challenges: Time zone differences for US East Coast/European companies, potential isolation, some companies still prefer local employees.
Strategy: Build strong local network while keeping remote opportunities open.
Financial Questions¶
"How much do CS graduates make?"¶
Edmonton new grad salaries (2024-2026): - Local companies: $60,000-80,000 CAD - TELUS/major corporations: $70,000-90,000 CAD - Startups: $55,000-75,000 CAD (often with equity)
Remote work for non-local companies: - Canadian companies: $80,000-120,000 CAD - US companies: $90,000-150,000 USD (converted, minus tax complications)
After 2-3 years experience: Significant increases possible, especially with job switching.
Reality check: These are ballpark figures. Your actual salary depends on skills, interview performance, company, and negotiation.
"Is CS education worth the cost?"¶
UofA CS total cost (Alberta resident, 4 years): - Tuition: ~\(25,000 - Living expenses: ~\)60,000-80,000 (varies widely) - Total: ~$85,000-105,000
Return on investment: With typical starting salaries, you'll recover education costs within 2-3 years of graduation. Strong ROI compared to many other degrees.
Comparison: Significantly cheaper than Ontario universities, comparable outcomes for industry careers.
Practical Advice Questions¶
"What should I do in first year?"¶
- Focus on fundamentals: Do well in 174/175 (or 274/275) and math courses
- Start a GitHub: Begin building a portfolio of projects
- Join clubs: CS-related or otherwise, for networking and experience
- Learn beyond coursework: Pick up web development, explore different areas
- Don't stress about specialization yet: You have time to figure out your interests
"I'm struggling in CS courses. Should I switch programs?"¶
Before switching: - Are you putting in enough time? CS requires significant outside-class effort - Are you using available resources? Office hours, TAs, study groups - Is it a specific course or the entire program? One difficult course doesn't mean CS isn't for you - Talk to academic advisors and upper-year students
Red flags that might indicate switching: - Consistently failing multiple CS courses despite genuine effort - No interest in any aspect of computing or problem-solving - Strong preference for other subjects
Green flags to stick with it: - Enjoying problem-solving even when it's difficult - Interest in technology and how things work - Willingness to put in the required effort
"What if I graduate without an internship?"¶
Not ideal, but not career-ending. Many successful developers didn't have formal internships.
Compensate with:
- Strong personal projects
- Open source contributions
- Part-time development work
- Freelancing or contract work
- Hackathon participation
Focus on: Building a portfolio that demonstrates real coding ability and problem-solving skills.
The Meta Question¶
"What questions should I be asking that I'm not?"¶
Instead of worrying about program prestige or perfect course selection, focus on:
- What kind of problems do I enjoy solving?
- What type of work environment suits me?
- How can I build real things that demonstrate my abilities?
- Who can I learn from and how can I help others?
- What does the job market actually look like when I graduate?
The students who succeed aren't necessarily the ones who optimize their course selection or chase prestigious programs. They're the ones who build things, solve problems, and develop relationships with people in the industry.
Your degree is a foundation, not a destination. What you build on that foundation determines your career.
Still Have Questions?¶
- Academic questions: Talk to CS academic advisors
- Career questions: Use UofA Career Centre, talk to professors with industry experience
- Course-specific questions: Ask on course Discord servers or talk to TAs
- Industry questions: Connect with alumni on LinkedIn, attend local tech meetups
The best answers often come from people who've recently walked the path you're considering.