Skip to main content

Computer Science

In the computer science program you’ll study computer systems and software. You'll take courses in: 

  • computer science
  • software engineering
  • mathematics
  • technical writing

Potential careers

What can you do with a computer science degree? Here are a few jobs that relate to the program:

  • software developer
  • security analyst
  • systems administrator
  • systems auditor
  • data administration
  • technical writer   
  • operations manager
  • web technician
  • strategic analyst
  • researcher
  • networks architect or engineer
  • intelligence developer
  • systems designer
  • web developer
  • programmer
  • systems architect
  • full-stack developer
  • mobile application designer or developer
  • artificial intelligence and machine learning scientist
  • research and development (R&D) scientist
  • software quality assurance manager
  • data scientist
  • user interface designer
  • database administrator
  • database designer
  • database analyst
  • cloud computing engineer
  • information security analyst

Some of these roles may require post-graduate studies or training. 

Find a career that fits you

Experience & connections

Opportunities in the computer science program

  • With the Co-op Program you can alternate study with paid work. 

Opportunities outside your program

  • With a work study position you can develop skills during your study term.
  • Volunteering is a great way to give back to your community while you build skills.

Networks you can connect to

Here are a few professional associations related to computer science:

Hands-on learning opportunities

These courses in the computer science program offer extensive hands-on learning.


Co-op work terms
Alternate academic study with paid work terms to gain workplace experience


CSC 167 - Game Strategy, Interaction and Design
Gain experience with game development

CSC 305 - Introduction to Computer Graphics
Complete hands-on graphics projects

CSC 355 - Digital Logic and Computer Organization
Use ASIC and field-programmable devices and learn digital logic design

CSC 360 - Operating Systems
Gain technical operating system skills

CSC 361 - Computer Communications and Networks
Gain technical network programming skills

CSC 375 - Introduction to Systems Analysis
Develop system analysis skills

CSC 446 - Operations Research: Simulation
Experience system simulations

CSC 463 - Wireless and Mobile Networks
CSC  466 - Overlay and Peer-to-Peer Networking
CSC  467 - Switching, Network Traffic and Quality of Service
Use advanced techniques and tools to analyze computer networks

CSC 471 - Fundamentals of Computer Rendering
CSC 472 - Fundamentals of Computer Modelling
CSC 473 - Fundamentals of Computer Animation
Use advanced techniques for 2D and 3D computer graphics and image processing

CSC 475 - Music Retrieval Techniques                          
Use advanced techniques and tools to analyze audio and music

Creative or physical practice 

CSC 225 - Algorithms and Data Structures I 
Apply concepts and programming skills

CSC 226 - Algorithms and Data Structures II              
Apply advanced concepts and programming skills

Creative or design project      

CSC 103 - Introductory Programming and Software Development
Build and deploy a software application

CSC 230 - Introduction to Computer Architecture   
Do a software project on a specified hardware

CSC 460 - Design and Analysis of Real-time Systems           
Design, use and test a real-time executive and application software


CSC 100 - Elementary Computing     
Learn web page development and use of multimedia tools

CSC 105 - Computers and Information Processing 
Gain experience with Office Suite

CSC 110 - Fundamentals of Programming I
Explore program design using hands-on tools            

CSC 111 - Fundamentals of Programming with Engineering Applications   
Experiment with alternative solutions through real-world engineering

CSC 130 - World Wide Web and Mobile Applications 
Create web applications and gain skills in multimedia programming

CSC 167 - Game Strategy, Interaction and Design   
Explore game development

CSC 205 - 2D Computer Graphics and Image Processing 
Gain experience with graphics software

CSC 361 - Computer Communications and Networks
Learn network debugging and protocol testing

Research project         

CSC 499 - Honours Seminar and Project    
Prepare a written report and present a seminar describing your work

These courses are not always offered as described.

What you'll learn

Every student at UVic builds skills all employers look for. At UVic Co-op & Career we call these  "competencies". This is what you’ll learn in the computer science program.

Networks, hardware and communications

  • understand layered network architecture
  • use different digital communication networks to send data
  • work with LANs and WANs
  • use different network protocols at different layers
  • protect networks from unauthorized access using the appropriate policies 
  • identify mobile communications techniques and issues affecting multimedia quality of service
  • use different types of buses, interrupts, families of processors and instruction sets

Software development, practice and theory

  • work within the different software development lifecycle stages
  • take business, product and process requirements into consideration
  • use different software development methodologies
  • use process improvement models, such as ISO 9000
  • solve software development problems using formal methods
  • consider software evolution issues during development

Computer hardware and systems

  • use the necessary tools to improve system performance
  • understand the transfer of information from one system component to another
  • compare the performance of similar systems using common metrics
  • identify the optimal system for a given problem
  • work with different CPU architectures
  • use different operating systems
  • use different memory management methods

Computer information processing and algorithms

  • understand computer science theory
  • design automated software test tools
  • manipulate information
  • create solutions from user specifications and known system constraints
  • improve performance using coding best practices
  • understand the practical limits of a system for problem solving

What's next?

To explore more visit the computer science site. For degree planning contact your adviser for help.