Location
Start Dates
Duration
4Terms
Course Delivery
- Face to Face - Synchronous
- Online - Asynchronous
- Online - Synchronous
- Online - Synchronous - Asynchronous
Tuition & Fees
Domestic: CAD $17,324
Program Description
The Software Development - Apprenticeship Style program prepares learners for related employment in the technology industry. Learners in the program will gain practical experience in the software development industry by working-part time in a company on real-industry projects while completing an accredited college diploma. Learners gain exposure to industry standards in planning, developing, and quality assurance testing. A structured approach to problem solving, effective communications, and attention to development standards and documentation will be stressed throughout the program. Graduates will be ready for careers in full-stack web development, application development, mobile application development, database administration, and agile project management.
Additional Information
Laptop specifications
- Intel quad core CPU (i7 or i9)
- 16GB RAM (32GB recommended)
- 15-inch 1080p screen
- a dedicated graphics card with 2GB of VRam
- 512GB solid state hard drive (1TB recommended)
- portable hard drive (for data backup)
- Windows 10 or later
* MAC OS is not supported in School of Technology
IDEs or software specifications
- Visual Studio IDE
- Dev C++/ Code Blocks
- Visual Studio Code
- Microsoft SQL Server
- Xcode and Android Studio
*Additional course specific software may be required
We have collaborated with industry partners to create a unique diploma program in the fields of Software Development, to equip learners with the essential skills and competencies. The apprenticeship learning model allows students to engage in real-world projects alongside employers starting from Term 2. Please note that meeting the requirements of each term is essential for a successful progression within the program. To be eligible for the apprenticeship, students must simply register for all courses in a term and achieve a passing grade. It is also important to have a good understanding of the prerequisites and co-requisites for each course in every term.
We understand that the apprenticeship program might present its own set of challenges. However, we want to assure students that if they find it too demanding, there is always the option to transition to the regular Software Development diploma program. We recommend making this decision by the end of Term 1 to minimize any potential disruptions to your academic journey.
To help you plan your program of study effectively, we have provided a list of course equivalencies between the regular diploma program and the apprenticeship program. This information indicates which course credits can be transferred. Remember that completing all remaining courses in the regular program is necessary to meet graduation requirements. Our academic advisors are here to support you throughout this process, offering personalized guidance to ensure a smooth transition.
Domestic Applicants
Welcome Centre
South Campus – Main Floor
info@bowvalleycollege.ca
403-410-1402
Admission Requirements
Academic requirement
- Credit in English 30-1, or 65% in English 30-2, or equivalent
- Credit in Math 30-1 or Math 30-2, or equivalent
Satisfactory results on the BVC Admissions Test
English language proficiency requirements
For applicants whose first language is not English, please review English language proficiency requirements.
Related Links
Domestic Applicants
Welcome Centre
South Campus – Main Floor
info@bowvalleycollege.ca
403-410-1402
Course Listing
Full course outlines are available here.
Curriculum subject to change. Current students should confirm program requirements with their academic advisor.Term 1
Required CoursesCredit
In this course, the learner is introduced to the process of planning, creating, and managing a relational database using Structured Query Language (SQL) statements and other database languages. The emphasis of this course is on data extraction and manipulation using SQL queries.
Learners will build foundational programming knowledge and skills for web application development. Using industry-standard web technology, learners plan, design, and build modern interactive web applications with Node.js. In this course, learners will use server and client-side JavaScript programming to develop enterprise-level architecture and front-end applications with HTML, CSS, Node.js, and npm (node package manager). They will manage performance gains and use DevOps and testing methodologies.
Learners will develop programming logic and style for writing code that addresses stakeholder needs. They will create flowcharts and descriptive pseudocode while solving basic programming challenges to create entry-level programs. Learners will use data structures and control flow techniques while learning to write functions, debug, and test programs within a collaborative team. Learners will be also introduced to the basis of object-oriented programming techniques.
Term 2
Required CoursesCredit
The course will introduce the fundamentals of cloud computing and cover the topics of cloud infrastructures, virtualization, software-defined networks and storage, cloud storage, and programming models. Upon completion of this course, learners will know how to interface with cloud services, such as SaaS (software as a service), PaaS (Platform as a Service), IaaS (Infrastructure as a Service), and BPaaS (Business Process as a Service).
Learners explore JavaScript-based front-end application development using the React library. They use various aspects of React to build single-page applications. Learners observe React working principle, create controlled forms, build reusable code, process, and manage data on the front end and back end. They use the ES6 JavaScript version, fetch for client-server communication, and use REST API for the server side. Also, learners are able to test their code and deploy it to the cloud.
Learners will build upon principles of design, logic, and structure to applications using object-oriented programming principles such as encapsulation, inheritance, and polymorphism. Using design patterns, SOLID principles, and software architecture, learners will employ advanced techniques for writing clean and maintainable code. Further, they will implement defensive programming techniques, define classes and objects based on real-world problems, and use evidence-based practices, automated unit tests, and documentation to deliver scalable software.
In this course, learners define, store, and edit information in the ASP.NET web app using databases, models, and LINQ. Learners use C# and .NET frameworks to create dynamic websites. Learners will be competent in building modern web apps and services.
The work term provides learners with professional work experience during which they apply the practical skills, knowledge, and attitudes developed in the program. In consultation with a faculty advisor, each learner conducts a job search and secures a part-time position in the industry. Learners will work as part of a team, and advance their technical skills as junior developers.
Term 3
Required CoursesCredit
Learners approach application development with a mobile-first and mobile-only lens, expanding avenues to reach users. Learners create mobile apps that answer real-world problems by using standard industry tools, mobile aspects of programming languages, and frameworks while working both independently and in groups.
In this course, learners use industry-standard programming frameworks ASP.net and REACT to create a dynamic, functional web application. Learners will also learn the agile project management methodology and scrum agile project development framework, through practical examples.
In this course, learners are taught advanced concepts such as threads and event handling that potentially lead to the creation of sophisticated applications. The knowledge and skills in this course apply to the areas like database manipulation and network connectivity. This course introduces programming techniques supported by a visual rapid application development environment including forms, controls, user-defined classes, and objects. Learners examine the framework provided by the platform that supports visual programming to build graphical user interface (GUI) applications. The skills in this course can be applied to building data-driven applications.
The work term provides learners with professional work experience during which they apply the practical skills, knowledge, and attitudes developed in the program. In consultation with a faculty advisor, each learner conducts a job search and secures a part-time position in the industry. Learners will work as part of a team, and advance their technical skills as junior developers.
Term 4
Required CoursesCredit
In this course, learners use Structured Query Language (SQL) on commercial databases to implement advanced concepts like stored procedures, functions, and triggers. Using SQL and SQL procedural language, learners create and manage a relational database, addressing data integrity and security. In addition, learners explore the relationship between database administration and software development
Learners get a wide range of skills that are applicable to developing, testing, and deploying mobile applications. They'll learn the abilities needed to evaluate how effectively mobile solutions fit into existing business activities and processes, develop native mobile apps, put solutions into practice on mobile platforms, and employ best practices for user interface (UI) and user experience (UX) design.
In this course, learners will be taught to design, develop and support Cloud-Native applications and API development using various services API Gateway, Lambda, and DynamoDB. They will also learn to optimize applications to take advantage of cloud services and implement highly scalable solutions. In addition, the students will be focusing on designing and building fault-tolerant systems by leveraging asynchronous communication patters.
The work term provides learners with professional work experience during which they apply the practical skills, knowledge, and attitudes developed in the program. In consultation with a faculty advisor, each learner conducts a job search and secures a part time position in the industry. Learners will work as part of a team, and advance their technical skills as junior developers.
Program FAQs
technology@bowvalleycollege.ca