Computer Programming and Analysis


Computer Programming and Analysis-2024/2025

Level 1
Take all of the following Mandatory Courses:

Group 1
BUSI-1156Strategies for Success1
This course presents and helps to develop some of the skills required to achieve academic and career success. Areas of focus include college resources, study skills, time management, academic integrity and calculating Grade Point Averages, among other skills.
MATH-1202Mathematics for Programmers3
This course will provide the student with the mathematics foundation required for programming in business, science, or engineering. Emphasis will be placed on practical applications within computing systems.
INFO-1214Programming Fundamentals6
This course is an introduction to the fundamentals of procedural / object oriented programming. Problem analysis and algorithmic thinking skills will be emphasized to develop good program writing technique. Content will include data types and variables, sequence, selection, repetition, data input validation, arrays, methods, searching and sorting data, the basic concepts of object oriented programming, and the use of an integrated development environment (IDE) tool for writing, testing and de-bugging code.
INFO-1215Database Fundamentals4
An introduction to relational database system design and development, by creating a variety of simple databases, based upon typical business requirements. Students build complete database solutions incorporating multi-table relational databases, forms, reports, queries, and test data. Students will also be introduced to the Structured Query Language.
INFO-1216Operating Syst Fundamentals-Programmers3
An introduction to fundamental concepts and components of modern Operating Systems (OS), from the perspective of a programmer. Details explored include: interact with hardware and software components, system structures, process management, storage management, installation, configuration, and administration both in theory and practice.

Group 2
WRIT-1043Reason & Writing 1 for IT3
This course will introduce information technology students to essential principles of reading, writing, and reasoning at the postsecondary level. Students will identify, summarize, analyze, and evaluate multiple short readings and write persuasive response essays to develop their vocabulary, comprehension, grammar, and critical thinking.
WRIT-1034Reason & Writing 1-EAP4
This course will introduce students whose first language is not English to essential principles of reading, writing, and reasoning at the postsecondary level. Students will identify, summarize, analyze, and evaluate multiple short readings and write persuasive response essays to develop their vocabulary, comprehension, grammar, and critical thinking. Special attention will also be paid to developing academic vocabulary, correcting common ESL errors, enhancing academic listening and note-taking skills, and improving oral fluency and confidence.

Level 2
Take all of the following Mandatory Courses:

Group 1
INFO-1167Business At the Speed of Light3
Increasingly, technology is used as the underpinnings to enable a new global business model. This course explores the fundamental concepts of business as well as the technologies that are used to facilitate a new era of entrepreneurial opportunities. Students are introduced to the role of business and government and explore the various types of business, business & marketing operations, and financial resources management. In addition, students reinforce their knowledge of the subject matter through a series of case studies that explore the use of technology to solve business problems and enable new opportunities.
INFO-1217Web Design3
This course focuses on creating accessible, compliant, search-engine friendly web sites using the latest web standards. Students will learn to code clean, responsive pages with a consideration for basic design principles. Current web trends are explored and students will incorporate typography, css transitions, transforms and animations to create rich, interactive experiences.
INFO-3104Relational Databases & SQL3
This course builds on relational database concepts presented earlier and introduces the student to larger client/server database systems. Upon completion, the student will have demonstrated the ability to solve problems by designing database entities based on real world scenarios. Particular emphasis is placed on mastering the fundamentals of Structured Query Language (SQL) for creating and maintaining database objects, creating complex queries, and performing database administrative tasks.
INFO-3134Object Oriented Programming With Java4
Continuing from Programming Fundamentals, this course introduces the object-oriented programming concepts of encapsulation, inheritance, and polymorphism, class design using UML, exception handling, GUI development using the Swing and JFX packages, event-driven programming, and using the JDBC package to connect to databases.
INFO-1156Object Oriented Programming with C++4
While C++ is very popular and the language of choice for game development and other performance-intensive applications, it is also significant in spawning other important languages such as Java and C#. This course introduces C++ (ANSI/ISO) in an Integrated Development Environment (IDE). An emphasis will be placed on improving software quality through unit-testing and debugging. The C++ Standard Library and Standard Template Library will be used for console I/O and data structure definition. The powerful Standard Template Library will be used to examine classic data structures and algorithms and how they impact software design and performance.
MGMT-3052Understanding Workplace Behaviours3
This course provides an understanding of the field of organizational behaviour through investigating individual, group and organizational behaviours. Students assess their work-related preferences/behaviours using self-assessment surveys and reflect on the match between those and career choices. Students study organizational design, organizational culture, people-centred management, social perception, self-concept & personality, values/attitudes & job satisfaction, motivation theory, group development theory, effective communication strategy, and conflict & negotiation then apply these concepts to the development of an organization's human resources.

Group 2
INFO-1234Web Scripting-Intro3
This course will introduce students to JavaScript and its use in web page construction. Students will be introduced to object-oriented programming concepts using JavaScript and the Document Object Model (DOM) and various HTML controls. Object creation and customization will be covered, as well as exception-handling, event handling, and testing and debugging techniques.
INFO-3120Programming Commercial Game Engines3
This course introduces the use of a current commercial game engine, with the focus on programming, scripting, and the underlying math concepts in use to implement the graphical and physical simulation aspects. Following INFO-1150, it will focus on fundamental object oriented programming concepts such as encapsulation, inheritance, and polymorphism.

Level 3
Take all of the following Mandatory Courses:
INFO-3070Client/Server Application Development3
This course helps the student to learn how client/server applications can be designed and deployed in layers. Projects incorporate JavaScript and jQuery clients making REST calls to a ASP.Net Core server. C# is used server side in conjunction with the Entity Framework, LINQ and a SQL Server database.
INFO-5052Advanced Databases3
This course will continue to build on knowledge that students have acquired from previous database courses. Students will be expected to design, implement and administer databases in the SQL Server environment. Advanced topics such as normalization, dimensional modelling, stored procedures, and various other complex tasks will be covered.
INFO-3140Object Oriented Analysis & Modeling3
This course provides the fundamental concepts of Object-Oriented software development using the C++ language.
INFO-3135Data Structures & Algorithms3
Students will learn common computer programming algorithms and the data structures used to implement them, emphasising the relationship between algorithms, programming, and data structures. Special focus will be on the underpinnings and implementations of various commonly used data structures.
INFO-1219Network Fundamentals for Programmers3
This course provides students with a comprehensive overview of computer networking from a programmer's perspective. Using a bottom-up approach to networking, emphasizing on the various types of access media, configuring intermediate and end devices, numbering, addressing, and services used in data networks. Understanding the technologies deployed for reliable and secure network communications. Students obtain the skills required to analyse and assess on how modern networks are implemented, with applied experience by teaching students how to design, install, use, and troubleshoot networks as it relates to computer networking and the impact it has on programmers
COMM-3077Communications for IT3
This course, designed for students who plan to work in the field of information technology, focuses on professional written communication skills. Students learn to prepare a variety of work-related documents. In addition, students learn about research methods and documentation formats. The principles of effective writing organization, grammar, style, clarity and tone are reinforced throughout the course. The goal of the course is to prepare students for the communication tasks and considerations they will encounter in the workplace.
COOP-1020Co-operative Education Employment Prep1
This workshop will provide an overview of the Co-operative Education consultants and students' roles and responsibilities as well as the Co-operative Education Policy. It will provide students with employment preparatory skills specifically related to co-operative education work assignments and will prepare students for their work term.

Level 4
Take all of the following Mandatory Courses:

Group 1
INFO-3181Full Stack Programming3
This course helps the student to learn how applications can be designed and deployed in layers. Projects incorporate JavaScript clients making REST calls to a server hosting the API, business objects and relational database.
INFO-3137Software Design Patterns 13
In this first of two courses exploring, implementing, and incorporating Software Design Patterns, students will learn what constitutes a design pattern, their components, and their application, using a managed language such as C#. A survey of creational, structural, behavioural, and architectural design patterns from the "Gang of Four" text will be presented.
INFO-3136Mobile Development3
This course consists of two independent units of study. The first unit focuses on developing a solid foundation of software development skills and introduces the requisite skills necessary for the development of mobile/wireless applications. The structure of the course allows students to gain valuable practical experience building reliable and secure mobile solutions that take advantage of the unique capabilities that mobile platforms allow. The second unit covers topics in advanced Java programming. Topics to be covered include advanced GUI development using Swing, JFX. Graphics, and multi-media classes, database access using JDBC, and an introduction to multi-threaded programming using the java.util.concurrent package.
MGMT-3036Professional Development-Career Planning3
This course introduces the student to the nature and role of Human Resource functions in an organization, with a focus on the implications for personal career management. Human resources planning and processes will be explored through class discussion, research and case study, from the perspectives of the employer and the employee / job applicant. Work search skills and resume writing will be included, along with an individual career management project.
INFO-3138Programming With Declarative Languages3
Declarative languages (like XML, HTML, and JSON) significantly enhance modern programming language, providing complementary tasks like modelling, constraining, formatting, and non-proprietary/platform-agnostic exchanging of information. Students will build applications employing commonly used declarative languages and technologies.

Group 2
Take INFO-3105 or INFO-3111
INFO-3105System Z COBOL Programming3
The main focus of this course is to provide hands on experience in the IBM Mainframe programming environment (SYSTEM Z). In particular the student will develop and maintain projects utilizing IBMs mainframe COBOL programming language on a real Mainframe class system using IBMs IDZ IDE.
INFO-3111C++ Graphics Programming3
Computer graphics, whether for games, business graphics, science or engineer has become a major part of commercial software development. Various 3D technologies and APIs are used for rendering high performance graphics on the Microsoft Windows, Linux, consoles, and mobile devices. This course is an introduction to 3D rendering using one or more modern 3D c/c++ APIs.

Level 5
Gen Ed - Take a 3 credit General Education elective course.
Take all of the following Mandatory Courses:
Students learn advanced JavaScript techniques and good standard coding conventions. Students code a full stack web framework entirely in JavaScript. Node.js, MongoDB (NoSQL), and GraphQL are incorporated on the backend in conjunction with React.js components on the front end. Front end work also includes use of Material Design components to produce full featured progressive web applications installed on a public cloud and utilized by both mobile and desktop devices.
INFO-3112Managing Software Projects-Applied 13
This project-based course is designed to allow students to demonstrate the various software development skills that they have been exposed to in previous course offerings. Students are wholly responsible for the entire project development lifecycle. Students will work in project teams using various tools to develop a single comprehensive solution. The solution that they develop can be used as part of a portfolio for securing employment upon graduation.
INFO-5060Component-based Programming with .NET3
Technologies and platforms change, but the precepts of a component-based software architecture remain the same: develop reusable software components that can be deployed independently and linked dynamically at runtime. The first half of this course focuses on building and configuring .NET components while the second half examines distributed deployment techniques.
INFO-5125Software Design Patterns 23
In this second Software Design Patterns course, students complete their exploration, implementation, and incorporation of both the remaining "Gang of Four" patterns as well as more recently adopted ones.
INFO-5101C# Advanced Topics3
In this course students will examine a variety of advanced topics in .NET application development using the C# language. One of the main themes of the course will be the evolution of the C# language from the initial version 1.0 up to the current 6.0 and how each subsequent evolutionary step, built on the previous version has ultimately lead to the powerful development tool programmers use today. Along the way, the course will cover topics such as delegates, iterators, lambda expressions, LINQ, dynamic binding and asynchrony. In addition, students will have the opportunity to explore the role played by the .NET Framework and CLR (Common Language Runtime), including garbage collection, JIT compilation and other performance related considerations.
INFO-3141Mobile Development-Inter3
This second mobile application course continues the exploration GUI development using cross-platform mobile development methodologies, toolsets, languages, and APIs. A primary focus is designing and building effective business based data collection and display applications, in addition to the design differences between mobile, web, and desktop devices.

Level 6
Gen Ed - Take a 3 credit General Education elective course.
Take all of the following Mandatory Courses:

Group 1
INFO-3068Secure Computing3
From the most sophisticated automated exploit tools to a toy whistle from a box of Captain Crunch cereal, over several decades hackers and crackers have abused system defects for fun and profit. This course focuses on how software developers can build 'hardened' systems that are more resistant to attacks preventing financial losses and damage to the organization's reputation. Not only will students learn how attackers think and operate but will apply that knowledge to secure and improve common web applications.
INFO-5153Enterprise Programming3
The focus of this course is to develop a cloud-based server application in conjunction with mobile web clients. The server application will be developed and deployed in a container on Amazon's cloud to serve web clients written with a current JavaScript framework.
INFO-5126Mobile Development-Adv3
The third mobile development course includes topics on: current technologies and architectures for mobile-enable enterprise applications, multi-media programming, and multi-threaded programming. Students get practical experience with the unique advantages, capabilities, and challenges of mobile development, building reliable and secure mobile-based solutions.

Group 2
INFO-5104C++ Advanced Topics3
This is the capstone course in the C++ stream, examining advanced topics in C++ systems programming. The major topics covered are process and thread management, and both intra- and inter-process communications. Solutions will employ the skills developed in all previous C++ and design patterns courses.
INFO-3142Emerging Technologies3
This course provides an overview and practical application of emerging technologies such as artificial intelligence, machine learning and data analytics. Students will have the opportunity to experiment with specific machine learning and deep learning applications and tools, utilizing both supervised and unsupervised models.

Group 3
Take INFO-5103 or INNV-5001
INFO-5103Managing Software Projects-Applied 25
This project-based course is designed to allow students to demonstrate the various software development skills that they have been exposed to in previous course offerings. Students are wholly responsible for the entire project development lifecycle. Students will work in project teams using various tools to develop a single comprehensive solution. The solution that they develop can be used as part of a portfolio for securing employment upon graduation.
INNV-5001Innovation Applications3
Organizations and individuals need to be innovative to succeed in the complex and rapidly-changing global market place. In this course you will learn the fundamentals of innovation and how innovation applies to your discipline or field.Using this foundational knowledge, you will select and apply the novel and adaptive thinking processes and tools presented in the course to complete an innovative learning project in collaboration with other students. The project will be based on a real-world scenario identified in consultation with your professor. The project may involve an external live client and a multi-disciplinary approach. Throughout the course, novel and adaptive thinking skills and collaboration skills will be evaluated [and developed for GC and degree] through self assessment and peer assessment. This course is designed to give students in advanced diploma programs the opportunity apply innovative thinking to a real-world problem that they select.

Gen Ed - Electives
Take 6 General Education Credits -
Normally taken in Levels 5 and 6

Program Residency
Students Must Complete a Minimum of 30 credits in this
program at Fanshawe College to meet the Program Residency
requirement and graduate from this program