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 

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

Course-based

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

Lab      

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.

This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember your browser. We use this information to improve and customize your browsing experience, for analytics and metrics about our visitors both on this website and other media, and for marketing purposes. By using this website, you accept and agree to be bound by UVic’s Terms of Use and Protection of Privacy Policy. If you do not agree to the above, you must not use this website.