Software developers for a complex world
BCIT’s Computer Systems Technology (CST) two-year diploma program combines computer systems theory with hands-on practical experience in software development. You’ll learn software engineering and programming from industry professionals, and gain experience working on real projects, from concept to deployment. In second year, specialty options add depth and further hone your skills.
Program delivery mode: Blended
- This program will be delivered for the coming semester as a combination of online and on-campus learning. While some of your coursework will take place online, most sessions will be in person.
- We have put measures in place for your safety and well-being, ensuring that all safety protocols are addressed. Please see the BCIT COVID-19 page for details on the mandatory procedures that have been implemented.
- Your education is our priority and we will continue to deliver the applied instruction, collaborative experience, and industry connections that you expect from BCIT.
The CST diploma is a widely-recognized credential that is highly regarded by employers. Graduates emerge with the well-rounded skills essential for a career analyzing, designing, and developing software solutions.
- Common first year sets the foundation, with the core skills you’ll need as a professional software developer – check out some first year app projects
- Work on at least two industry projects so you’re ready to work in the real-world
- Co-operative Education option for broader applied experience (competitive entry)
- Second year options allow you to further your skills in specialty areas
Who should apply for Computer Systems Technology?
The CST diploma program is right for you if:
- You’re interested in software development
- You enjoy problem-solving, often in teams
- You’re enthusiastic about using technology, computers, and software systems to make things better
- You’re ready to apply yourself to prepare for a career in the evolving and rapidly expanding Computing and IT sector
What grads can do
As a CST graduate, you’ll be able to:
- Participate in all aspects of software development and maintenance
- Contribute and communicate effectively as a member of software project teams
- Develop and maintain complex software systems that integrate scalable components
- Apply logical, critical, and creative thinking to synthesize solutions to computing and IT problems
- Work productively and meet deadlines in a fast-paced, deadline-driven environment
- Independently learn and adopt new tools, technologies and methods to remain up-to-date and effective
Costs & Supplies
First year CST introduces the core skills and theory used in all areas of software development. Web development, programming, scripting, and computer architecture are all introduced. First year culminates in students working as part of a team to build an application of their own design.
Second-Year (with Specialization Options)
The second year is comprised of:
- common courses which develop and enhance fundamental software development skills (about 60%)
- option courses to learn advanced techniques in specific computing areas (25%)
- real-world industry projects (15%)
Students have a choice of option courses, however, there is limited space in each option, and first year grades are considered for option approval.
Note: availability of options is subject to change, and some options are not offered every term.
- Artificial Intelligence and Machine Learning
The Artificial Intelligence and Machine Learning option focuses on the design and development of software to process, visualize, analyze and model data sets for the purposes of decision making and prediction. Students develop an understanding of the fundamentals underpinning artificial intelligence and machine learning applications. Topics include search, games, constraint satisfaction problems, knowledge and reasoning, regression, classification, clustering, dimensionality reduction and kernel methods. Practical work focuses on analyzing real-world data sets, developing artificial intelligence and machine learning systems, as well as evaluating the performance of systems for various domains.
- Client Server
The Client/Server option offers specialized courses covering the subject areas of client/server computing, distributed computing, and mobile computing. Topics include architecture, modeling and structural issues, inter-process communications, and strategies to ensure performance, reliability, scalability, availability, interoperability, and security in such systems. Using the latest software development environments and engineering tools, students develop systems and services involving network programming, database programming, web development and operating systems.
- Cloud Computing
Cloud Computing option students obtain hands-on experience using a wide variety of resources and services available on the world’s leading cloud computing platforms. Students create and maintain complex virtual computing environments. Students use automated software deployment, continuous integration, continuous delivery and continuous monitoring tools in cloud computing environments according to DevOps (development and operations) practices. The option culminates in students designing and developing software natively for cloud computing platforms. This type of development involves creating microservices and containers designed for serverless architectures. Please note: students in this option will be posting their work on servers outside of Canada, and thus will be required to sign a Student Consent Statement.
- Data Communications and Internetworking
The Data Communications and Internetworking option specializes in network architecture design, software development, and network security skills. Courses emphasize practical skills such as design, coding, debugging, and testing. Topics covered include protocol design and implementation; low-level systems programming on the Linux, Android, and Windows platforms; network application development using the TCP/IP protocol suite; wireless protocol design; and the design and implementation of device-level communications applications. Devices used include Embedded Linux boards, Android devices, Radio Frequency Identification Devices (RFID), Wireless modems, and GPS devices. Practical work is focused around the analysis, application design, and implementation of the TCP/IP protocol suite.
- Digital Processing
The Digital Processing option focuses on the development of digital image, video, and audio systems, especially as related to gaming. Emphasis is placed on development of tools for new media applications. Topics include image processing, fundamentals of AV streams, 3D gaming environments using DirectX, and performance improvement with concurrent programming and MMX/SSE. Various techniques are studied for making filters, morphing and warping techniques, compression, mirrors, and picking in 3D worlds. Advanced projects are usually drawn from IEEE papers such as template matching, face recognition, image stitching, and others. Team projects in game development on phones/tablets and the PC are encouraged.
- Information Systems
The Information Systems option specializes in developing web-based and mobile applications required by medium and large businesses. Students develop large applications with state-of-the-art tools and application servers, and learn to administer Linux and Windows Servers. Topics include system architecture, performance, scalability, and security in distributed systems. Technologies covered include both Enterprise Java (including Java Server Faces, Java Persistence Architecture, Enterprise Java Beans) and Microsoft’s .NET (including ASP.NET, C#, Web services).
- Predictive Analytics
The Predictive Analytics option focuses on software development in data analysis for enabling organizational insight. Students will apply problem-solving towards data preparation, data modeling, validation, assessment of methods and reporting. Topics include exploratory data analysis, regression, time series studies, dimension reduction, clustering and classification, machine learning, and reporting. Practical work involves development with data sets from a wide range of sectors to reinforce effectiveness of methods within the data analytics development life cycle.
- Programming Paradigms
The Programming Paradigms option focuses on developing software using multiple languages and paradigms. Student will acquire the techniques of several programming paradigms, and learn to choose an optimal paradigm for a particular problem. Topics include functional programming and concurrent programming using the actor model and using communication channels. Practical work will focus on the application of different paradigms to software development, such as web development, the design and implementation of domain-specific languages (DSLs), and the implementation of highly-concurrent and fault-tolerant software.
- Technical Programming
The Technical Programming option covers advanced techniques in design and software development. Topics include code techniques used for desktop, web and distributed applications (client-server and three-tier architectures), concurrent programming (multi-threading, synchronization and interprocess communication), design principles of human-computer interaction, and project management. They analyze user needs and design and construct efficient applications with an emphasis on proper design, robust code, documentation, optimization and testing. Students acquire valuable real-world experience through a large-group software development project in term four. The all-class project gives students the opportunity to experience the challenges and responsibilities of a real-life project.
- Web and Mobile
In second year, students work directly with external industry sponsors on projects via the Industry Sponsored Student Project (ISSP), applying their newly-learned skills, and acquiring real-world experience. Students work in teams with an industry sponsor, proceeding through the development life-cycle to develop an IT or software solution. All students participate in two projects.
Graduating & Jobs
Sector 2020 snapshot
Computer Systems Technology Diploma graduates have a wide variety of career options in the IT industry. Many start their careers as an entry-level software developer, application programmer, software tester, or network or database administrator. Later they can progress to positions such as systems analyst, IT project managers, team leads, software architects, information security analyst, and senior consultant.
Some students take the IT entrepreneurial path by starting their own business. Companies founded by our grads include Burton Software/Icicle Technologies, CAMS Software/Prospero, Skybox Labs and PlentyofFish. Read more about this alumnus who is creating opportunities for others.
Our graduates work in companies of all types and sizes, including:
- Electronic Arts
- Global Relay
- IUGO Mobile
- Vision Critical
Furthering your education
Graduates of the Computer Systems Technology program can also pursue a Bachelor of Technology in Computer Systems at BCIT.
Faculty, Advisors & Staff
Prospective Student Inquiries
Current Student Inquiries
Program Head – Student Success, CST Diploma
Program Head – Student Success, CST Bachelor of Technology
Overview: Professional Engineer and Project Management Professional who came to BCIT from industry to teach and to make a difference in the lives of students. As Program Head (Student Success), advises and helps students with academic-related concerns about the CST Diploma and Bachelor programs.
Chi En Huang, Option Head – Artificial Intelligence and Machine Learning, Program Head – Curriculum Leadership, CST Diploma
Aaron Hunter, Instructor
Albert Wei, Option Head – Programming Paradigms
Aman Abdulla, Instructor
Amir Amintabar, Instructor
Arron Ferguson, Instructor
Borna Noureddin, Instructor
Bruce Link, Option Head – Information Systems
Carly Wong-Orr, Instructor
Christopher Thompson, Instructor
D’Arcy Smith, Option Head – Data Communications & Network Security
Dennis Richards, Option Head – Digital Processing
Option Head – Cloud Computing
Overview: Holds a PhD in computer engineering and has industry and research experience in distributed software architecture. Teaching practical skills to students for building and operating highly scalable and available cloud-based systems.
Option Head: Technical Entrepreneurship (CST); Program Head (Full-Stack Web Development)
Overview: Web developer and C programmer; entrepreneur. BCIT CST graduate teaching students software development and equipping them for success.
Jeff Yim, Instructor
Maryam Khezrzadeh, Instructor
Maryam Tanha, Instructor
Option Head – Web & Mobile (.NET), CST Diploma
Overview: Instructor, independent IT contractor, and founder of the .NET BC user group in Vancouver. Regular speaker at user group meetings and technology conferences.
Michal Aibin, Instructor
Mirela Gutica, Option Head – Technical Programming
Option Head – Predictive Analytics Option
Overview: Before joining BCIT full-time, Pat served as a Technical Engineer with Business Intelligence technologies at SAP. He holds a Master’s Degree in Data Science and has written multiple books on software development for McGraw-Hill.
Rahul Kukreja, Instructor
Rob Neilson, Instructor
Seyed Mohammad Javadi, Instructor
Tejinder Randhawa, Option Head – Client/Server
Thomas Magliery, Instructor
BCIT is well-respected by employers for its ties to industry. In Computing, this connection is formalized through a Program Advisory Committee (PAC) comprised of experts in a range of roles from a cross-section of companies. The department consults regularly to ensure program currency and relevance.
Questions or comments?
Sign up to receive updates, invitations to events, and information about BCIT and your program.
We promise not to spam you, we won’t share your personal information, and you can unsubscribe at any time.
Programs and courses are subject to change without notice.