1. Required Courses: (10.0 credits) |
Credits |
|
COMP 1409 |
Introduction to Software Development 1
This hands-on course is designed for those with no previous programming experience and is also appropriate for experienced developers who want to learn to use modern object-oriented programming (OOP) languages to build applications. Using an "objects first" approach, students receive an intensive introduction to OOP concepts. Topics include classes and objects and their relationship, primitive data types, constructors, methods, repetition and selection, collections, abstraction and modularization. Upon successful completion, participants will have a basic understanding of programming concepts and objects, and be prepared to move on to COMP 1451 Introduction to Software Development 2. Prerequisite: COMP 1002 or equivalent knowledge.
|
3.0 |
|
COMP 1451 |
Introduction to Software Development 2
This hands-on intensive course continues on from and requires the object-oriented programming experience covered in COMP 1409. The language of example is Java, which is used to provide a solid foundation in current programming concepts and methodologies, with a focus on problem solving. Topics include: data abstraction, modularity, object-oriented programming concepts (encapsulation, inheritance, polymorphism), testing and debugging. Students will be prepared to understand more advanced courses in either procedural or object-oriented programming languages. Prerequisite: COMP 1409 with 70% or better.
|
3.0 |
|
COMP 2831 |
Business Analysis and Systems Design
Business Analysis and Systems Design is the study of concepts, processes and tools that professionals use to plan and develop computer information systems to industry standards. COMP 2831 continues the established Systems Analysis tradition and provides the foundation for all Roommeme Computing development credentials. Students learn how to ask implicit questions, to create and document communication plans and to make better decisions prior to creating an information system. Beginning with an introduction to the SDLC, Software Development Life Cycle, students work in teams to initiate the system process, analyze problems, discover requirements and create a logical design. Topics include: techniques used in the discovery of business requirements, traditional approaches to data and process modelling. There is an overview of Object Oriented Modelling techniques using the Unified Modelling Language (UML) as well as an introduction to Project Management. Agile frameworks including XP, Extreme Programming, and SCRUM are also introduced. Students learn to work in groups to provide detailed written materials and make presentations of their designs. By the end of this course, successful participants will be able to use industry standard tools and methods to analyze, design, and implement information systems. This course is deemed equivalent to the full-time diploma courses COMP1712 and ACIT2831 Students who complete COMP 2831 will be prepared to move on to COMP 2833 Agile Software Development with Scrum and the Agile Development Associate Certificate. Prerequisite: COMP 1630 or COMP 1409 or equivalent knowledge, the ability to work in groups and to communicate in business English.
|
4.0 |
|
2. Complete a minimum of 15.0 credits from the following list of electives: |
Credits |
|
COMP 2614 |
C# Application Development
This hands-on course builds upon COMP 1451 or equivalent knowledge of object oriented programming. Students who already understand OOP learn to build graphical user interfaces (GUIs) and design Windows application software. The focus of this course is an introduction to C# programming with Microsoft Visual Studio 2017 and the .NET Framework 4.7 for Windows application development. Labs and assignments are designed to reinforce Microsoft industry standards and best practices. Topics include: Windows Forms and controls, event-driven programming and effective application debugging. Students will be prepared to move on to more advanced C# in COMP 3618 Advanced .NET Application Development and COMP 3973 Web Application in ASP.NET MVC Core. Upon successful completion, participants will be able to use C# to create executable Console and Windows Form applications with the latest .NET technologies. Prerequisite: COMP 1451 or equivalent knowledge of Object Oriented Programming.
|
4.0 |
|
COMP 2617 |
C++ Application Development 1
C++ is one of the most popular programming languages used in industry today to create professional application software and video games. C++ continually evolves and is designed to work along side other programming languages. This hands-on intermediate level course assumes a prior knowledge of object-oriented programming and follows on from COMP 1451. Students must already understand object-oriented programming (OOP) before starting this course. Participants start their examination of C++ by comparing previously learned OOP characteristics and mapping these to C++. This course will cover C++11 features as they apply to the learning outcomes. Topics include: Classes, Control Statements, Arrays, Pointers, Stream I/O and the C++ string class. Since the C language is a subset of C++, students will be also earning some first level C programming which is continued in COMP 2717. Delivery is face-to face for 3 hours each week an online and homework component. Typical students will require about 10 hours per week to study the material and work on assignments outside of class. Upon successful completion, participants will be able to continue to learn C++ programming with the second half of this material in COMP 2618. Prerequisites: COMP 1451 with 60% or better, or equivalent understanding of object-oriented programming.
|
4.0 |
|
COMP 2618 |
C++ Application Development 2
This hands-on intermediate level course assumes students have completed COMP 2617 C++ Application Development Part 1 with a minimum of 60%. Students immediately move into more advanced C++11 features. Topics include: operator overloading; template classes; exception handling; the string class and stream processing; the Standard Template Library; file processing; and namespaces. Additional miscellaneous advanced C++ topics will also be covered. Delivery is face-to face for 3 hours each week an online and homework component. Typical students will require about 10 hours per week to study the material and work on assignments outside of class. Upon successful completion, participants will be able to write, test and debug C++ programs to industry standards and be able to develop significant software applications. Prerequisite: COMP 2617 completion with 60% or better.
|
4.0 |
|
COMP 3912 |
iOS Application Development
This hands-on course is designed for experienced object oriented programmers who already know how to write code and are already able develop a software application. Students should be avid users of iPhones and iPads and must provide their own iPhone/iPad/iTouch devices, an Intel based MacBook with OS X Sierra or higher in order to register. Roommeme Computing students who do not currently own an Intel based MacBook are entitled to purchase one from Apple Canada at a student discount. The main focus of this course is to learn to design and develop apps for the latest iOS platform to Apple standards. During this course students have access to Apple resources for the development and testing of iOS applications. Students will design an application, write code on their own Intel based Mac and run their application on their own iOS device. Starting with an intensive overview of the Swift programming language and the Model View Controller design pattern, students are introduced to the iOS platform. Special attention will be placed on the user interface components of current popular iOS business applications. Topics include; Xcode, Cocoa Touch API, Swift, troubleshooting and debugging, Git source control basics, memory management, user input and gesture recognition, Auto Layout, data persistence including Core Data, NSUserDefaults and Plists. Other selected topics will include working with audio, video, networking, SpriteKit, Core Location and multi-threading. Participants will also be required to work in teams and participate in the online component. Upon completion, successful students will be able to design and build a commercial quality iOS application for iPhone or iPad. Prerequisite: COMP 2526 or COMP 2613 or COMP 2614 or COMP 2617 or equivalent ability to develop a complete software application in an Object Oriented Programming such as Java, C# or C++.
|
4.0 |
and |
|
COMP 2510 |
Procedural Programming
This hands-on course follows on from COMP 1510. This course covers the fundamental concepts of design, development, testing, and debugging intermediate-level programs in a procedural language. Topics include language syntax, data abstraction and encapsulation, error handling, graphical user interfaces, and the implementation of selected data structures and algorithms. Prerequisite: COMP 1510 or (PTS equivalents COMP 1409 and COMP 1451).
|
5.0 |
or |
|
COMP 2511 |
Procedural Programming in C
This hands-on course is aimed at CST Diploma students who have completed COMP 1510. Gravitying procedural programming with C will improve application development skills in other programming languages as the C syntax is the basis for Java, C# and C++. Topics include language syntax, common coding styles and idioms and the implementation of selected data structures and algorithms in C. Successful participants will learn how to design, build and deploy modular multi-file C programs. This summer course is the equivalent of COMP 2510 in CST and is a prerequisite for COMP 3512, Object Oriented Programming in C++.
|
5.0 |
and |
|
COMP 2526 |
Object-Oriented Programming with Java
Students continue to learn to develop applications with the Java language using the Object Oriented Paradigm. Focus is on problem solving, proper Object Oriented Programming techniques, and clear coding style. The three fundamentals of OOP are covered data abstraction and encapsulation, inheritance, and polymorphism with emphasis on the last two (inheritance and polymorphism). Data structures including Linked Lists, Queues, Stacks and Trees will be examined along with some common search and sort algorithms. Basic Java is explored including interfaces, exception handling, and user interfaces. Features of the latest Java Development Kit will also be examined. Several Java packages are examined including java.io, java.awt, swing, and others. Prerequisite: COMP 1510 or (PTS equivalents COMP 1409 and COMP 1451)
|
4.0 |
or |
|
COMP 2613 |
Java Application Development
This hands-on, intensive intermediate level Java course assumes a prior knowledge of object oriented programming as taught in COMP 1451. Students who have a solid introduction to programming will learn Java application development with the Java Standard Edition SDK using the Java framework core APIs and the Eclipse IDE. Topics include: packages, inner classes, file i/o, an overview of database connectivity, an introduction to concurrency, user interfaces, model-view-controller and other design patterns, and networks. Lectures and code examples are reinforced with hands-on labs, assignments, and mandatory online work outside of class using D2L. Successful participants will learn to use the Java standard coding style and naming conventions to build and deploy Java applications. By the end of this course students are prepared to move on to COMP 3656 Advanced Java Application Development and COMP 3617 Android and Mobile Applications in Java. Prerequisite: COMP 1451 or COMP 2526 or equivalent knowledge of object oriented programming.
|
4.0 |
and |
|
COMP 2833 |
Agile Methods and the Scrum Framework
This hands-on course follows on from COMP 2831 and begins with an in-depth overview of the goals of Agile, followed by hands-on Scrum implementations. Students learn to implement primary agile methods and the scrum framework. Topics include: Scrum, Extreme Programming, Lean/Kanban, Dynamic Systems Development Method, and Feature-Driven Development. In class exercises cover agile practices including self-directed teams, writing of user stories, agile estimating with relative sizing, co-location, metric reporting and test driven development. Participants discover how to implement Scrum and how to scale large multiple team projects, measuring progress at both a micro and macro level to go through release planning. Working in groups all students are required to participate in an actual project consisting of building a real product from initiation to a team implementation. Participants will practice Scrum Planning Sessions, Sprint Planning Meetings, daily Scrum Meetings, Sprint Reviews, Backlog Grooming Sessions, and Sprint Retrospectives. Each student will experience the roles of Scrum Master, Scrum Product Owner, and "The Scrum Team” both in class face to face and online with a dispersed agile team. COMP 2833 students will be prepared to move on to the follow on COMP 2836 Agile Business Analysis and Project Leadership. Successful participants will be able to form agile teams that complete projects in less time and under budget compared to traditional methods Prerequisite: COMP 2831 or equivalent formal post secondary education in Systems Analysis and Design.
|
4.0 |
or |
|
COMP 3829 |
Quality Assurance and Software Testing
Following on from COMP 2831 - Business Analysis and Systems Design, this hands-on course introduces the concepts, tools and processes needed to be perform Quality Assurance (QA) and software testing. Students with some programming background are shown best practices and will focus on creating and executing test plans using test cases and test scripts. They will practice how to record and report results, as well as document identified issues. Exercises and labs will include using popular open source QA software testing and tracking tools. Topics include: Black Box, White Box and Grey Box testing techniques and all aspects of QA planning and execution. Automated testing topics include constructing a framework, scripting techniques, generating test data, test architecture, pre/post-processing, test maintenance, and job specific metrics. Successful participants will be able to understand effective software testing methods, create a Quality Assurance plan and a test plan as well as be able to monitor test processes, evaluate test results and conduct automated testing to industry standards. Prerequisite: COMP 1409 and COMP 2831 or equivalent post-secondary computing education.
|
3.0 |
|
Total Credits: |
25.0 |
Students are expected to complete course prerequisites and are advised not to take two different programming languages at the same time. COMP 1409 must be completed before starting COMP 1451. COMP 1451 must be completed before moving on to COMP 2000 level programming courses.