Course description
Level One
EECE1010 Digital Fundamentals
Description: This course introduces the student to the principles and techniques of digital systems and design beginning with the numbering system, basic logic functions, Boolean expressions, truth tables, timing diagrams, circuit reduction, combinational logic circuits, flip-flops, counters, and other related devices. We will also have an introduction to programming simple 8-bit processors. This course serves to provide a basis from which the student can build a working knowledge of digital design and microcomputer-based systems.
Hours: 75
Credits: 5
INFO1810 Operating System Fundamentals
Description: This course focuses on operating system fundamentals from a programmer's aspect. Issues such as kernel design, multitasking concepts, operating system services, task swapping and memory management will provide students with sufficient background to understand the nature of 32 bit operating systems like Windows NT and UNIX. Topics include service calls, task switching, process descriptors, file systems, memory management, shells, operating system control via command line utilities and scripting, client/server applications, installation issues and configuration.
Hours: 30
Credits: 2
MATH1900 Applied Math I
Description: This course focuses on the application of mathematical techniques to analyze and solve fundamental engineering problems. Topics covered include: basic algebraic operations, geometry, functions and graphs, trigonometric functions, systems linear equations, factoring and fractions, quadratic equations, vectors, exponents and radicals, complex numbers, exponential and logarithmic functions.
Hours: 60
Credits: 4
PROG1345 C Programming
Description: This course will introduce software design and implementation using the C language. Topics include: algorithm design, modular code design, programming style, functions, arrays, pointers, strings, data structures, file I/O and operating system function calls. An emphasis will be placed on proper design to produce maintainable software.
Hours: 90
Credits: 6
PROG1350 Software Engineering Fundamentals
Description: Standard software development methodologies, testing methodologies, and software maintenance topics will be covered to prepare students for real life software development. The course will emphasize proper software design, software development issues, and documentation. The importance of effective software engineering documentation and effective technical communications cannot be stressed enough, especially in today's Rapid Application Development world. Topics include specification writing for system development and testing, code development, testing methodologies (user interface testing, regression testing, etc.), and software maintenance issues.
Hours: 45
Credits: 3
Level Two
INFO1020 System Application Development
Description: This course will introduce the student to the installation, administrative, and end-user features of Linux. Basic installation and configuration topics will be covered. Also, industry-standard multitasking concepts, inter-process communication, and socket-level programming will be covered.
Hours: 45
Credits: 3
Pre-Requisites: EECE1010, INFO1810
INFO1340 Computer Security
Description: This course covers the practical and ethical aspects of modern computer security. A wide variety of topics will be covered. An emphasis will be placed on examining and analyzing common application security issues. The legal and ethical aspects of computer security and privacy will also be examined.
Hours: 45
Credits: 3
Pre-Requisites: PROG1345
PROG1150 System Analysis and Design
Description: This course provides the student with an understanding of the system design lifecycle and object-oriented analysis and design methodology using Unified Modeling Language. Emphasis will be placed on typical industry practices, documentation, and presentation skills in a team environment.
Hours: 45
Credits: 3
Pre-Requisites: PROG1345, PROG1350
PROG1160 Advanced Software Techniques
Description: This course extends knowledge learned in C Programming as applied to specific development methods and program quality.
Hours: 15
Credits: 1
Pre-Requisites: PROG1345
PROG1360 Microprocessors And Embedded Software
Description: This course has an emphasis on microprocessor programming and assembly language programming, utilizing 8-, 16- and 32-bit processors like Freescale 6808, Freescale 680x0 family, and Intel 80x86 family. The student will design and implement embedded applications for dedicated hardware platforms. Topics include CPU concepts (registers, address bus, data bus, internal versus external ROM, internal versus external RAM, program counter, stack pointer, interrupts), input/output mechanisms, machine data types, basic assembly language programming, timers and interrupt sources.
Hours: 45
Credits: 3
Pre-Requisites: EECE1010, PROG1345
PROG1370 Data Structure And Algorithm Development
Description: This course will emphasize software development using data efficiently and effectively. Important advanced data structures will be discussed and implemented. Common algorithms such as random number sequences, compression, etc. will be discussed. The C++ Standard Template Library will be introduced.
Hours: 60
Credits: 4
Pre-Requisites: PROG1345
CoRequisites: PROG1385
PROG1385 Object-oriented Programming
Description: This course will expand programming knowledge with C++. Topics include the concept of an object, including information hiding, interfaces, and inheritance, class declarations, member data and functions, interfaces, function and operator overloading, inheritance, templates, etc.
Hours: 60
Credits: 4
Pre-Requisites: PROG1345
Level Three
COMP2190 Web Design and Development
Description: This course will familiarize the student with the setup and use of a web server. The creation of web server scripts (CGI) using existing C and C++ programming and script knowledge (such as PHP) will be emphasized. Writing applications that use the Internet will be introduced.
Hours: 30
Credits: 2
Pre-Requisites: INFO1340, PROG1385
INFO2180 Software Quality I
Description: This course will extend the knowledge learned in Software Engineering Fundamentals. There will be an emphasis on project management, revision control, and testing.
Hours: 45
Credits: 3
Pre-Requisites: PROG1150, PROG1350
INFO2210 Technical Communications
Description: This course will introduce students to engineering-related communications. Emphasis is placed on analyzing audience, determining purpose and effective ordering of ideas for various written communications such as reports in an engineering environment. As well, all students are expected to participate in group work throughout the semester and are expected to give oral presentations.
Hours: 45
Credits: 3
Pre-Requisites: PROG1350
MATH2000 Applied Math II
Description: This course focuses on the application of mathematical techniques to analyze and solve fundamental engineering problems. Topics covered include: determinants and matrices, sequences, analytic geometry and statistics.
Hours: 45
Credits: 3
Pre-Requisites: MATH1900
PROG2110 Relational Databases
Description: This course will discuss the fundamentals of relational database management systems (RDBMS). Custom relational database applications will be created, both from first principles and using SQL.
Hours: 45
Credits: 3
Pre-Requisites: PROG1370, PROG1385
PROG2120 Windows Programming
Description: This course will teach the basic art of user interface design for Windows and PDAs (e.g. Pocket PC) in the C and C++ environment. There is an emphasis on graphical programming, menus, dialogues, multitasking, etc. in the Windows 32-bit SDK environment. A comparison between Win32 and PDA programming will be made to point out common desktop versus hand-held GUI design issues. Topics include Win32 API, windowing concepts, graphical device interface, input and output capabilities, timers, menus, dialogues, printing, DDE and OLE, DDL development, hand-held GUI concepts, handwriting interface versus keyboard/mouse interface. Emphasis on C++ frameworks such as MFC will be included.
Hours: 60
Credits: 4
Pre-Requisites: INFO1810, PROG1370, PROG1385
PROG2150 Real-Time Operating System Design
Description: This course will teach the design and implement of a real-time, embedded operating system in assembly for a 680x0 based platform (simulated in lab). By creating a custom operating system, students will master the concepts of operating system service provision, inter-process communications, etc. while gaining an appreciation of existing operating system technology. Topics include 680x0 assembly language, inter-process communication implementation, simple task switching, interrupt handling, service call implementation, user task implementation, refine embedded system debugging techniques.
Hours: 45
Credits: 3
Pre-Requisites: INFO1810, PROG1360, PROG1370
Level Four
BUS3105 Entrepreneurship
Description: Individual and group work will be used to understand and evaluate all aspects of business activities. The student will be able to develop a business plan upon completing the course. Case studies will be extensively used.
Hours: 45
Credits: 3
CNTR2115 Industrial Application Development
Description: Hardware devices attached to a computer will be controlled through software written. C/C++ programming knowledge, along with networking and server administration from previous courses will be used to design a full remote control system with management reporting capabilities and graphical control interface. Topics include hardware interfaces and protocols for control purposes, network interfaces, remote procedure calls, and custom TCP/IP socket software.
Hours: 45
Credits: 3
Pre-Requisites: INFO1020, PROG2150
EECE2550 Project Design
Description: This course prepares students for their third year Technology Project. It introduces them to project planning and management methods. They learn how to assess various risk factors associated with projects. They investigate real world needs and problems whose solutions may have a form of their third year project. The final result of this course is a complete third year Technology Project proposal, approved by faculty.
Hours: 15
Credits: 1
Pre-Requisites: INFO2180, INFO2210, PROG1150
INFO2030 Software Quality II
Description: This course extends the material learned in Software Quality I with an emphasis on practical application.
Hours: 30
Credits: 2
Pre-Requisites: INFO2180
PROG2030 Network Application Development I
Description: This course will expand network programming abilities through the use of languages such as Java and C#. It will expose students to full network programming concepts.
Hours: 30
Credits: 2
Pre-Requisites: COMP2190, PROG1385, PROG2110
PROG2140 Portable Application Development
Description: This course will merge and extend the student's knowledge gained from previous courses to develop portable applications. The focus of this course is to ensure that software can be written once and run on as many platforms as possible, with as few source code changes as possible. Topic areas include portable development techniques, OS support simulation, emulation, portable data management techniques, XML, and SOAP technologies.
Hours: 30
Credits: 2
Pre-Requisites: COMP2190, INFO1020, PROG2120
PROG2215 Multimedia Application Development
Description: Study the fast emerging field of multimedia authoring and application development. Use the tools and techniques popular in the industry to create interactive web sites, gaming environments, instructional material, etc. Topics include basic animation techniques, Windows media services, merging basic GUI development with media capabilities, high-end development suites. Current Windows technologies will be used.
Hours: 45
Credits: 3
Pre-Requisites: INFO1020, PROG2120
Level Five
MATH3160 Numerical Methods
Description: This course focuses on providing the mathematical knowledge required to apply numerical methods for solving engineering and software application problems.
Hours: 45
Credits: 3
Pre-Requisites: MATH2000
PROG3070 Advanced SQL
Description: SQL concepts that go beyond those learned in Relational Databases will be covered. Emphasis will be on integrating SQL knowledge with knowledge from other courses in a semester-long major project.
Hours: 45
Credits: 3
Pre-Requisites: PROG2110
PROG3080 Web Services
Description: Web Services will be introduced in the .NET environment. There will be an emphasis on the creation of Web Services, not just using pre-existing ones. C# will be introduced.
Hours: 45
Credits: 3
Pre-Requisites: COMP2190 or COMP2260, PROG2030 or PROG2040
PROG3130 Systems Project A
Description: The student, as part of a team, will complete a real-life project for an external client. It is intended that the student integrate and apply the knowledge learned in previous courses. The team will bring a complete software system through the planning, programming, testing, and delivery stages. Both technical and project management skills will be emphasized.
Hours: 45
Credits: 3
Pre-Requisites: PROG2120, PROG2150, INFO2180, PROG2030 or PROG2040, EECE2550
PROG3150 Network Application Development II
Description: This course extends the material learned in Network Application Development I with an emphasis on practical application and innovations in the industry.
Hours: 45
Credits: 3
Pre-Requisites: PROG2030
PROG3160 User Interface Design
Description: This course provides the student with knowledge of the principles involved in creating effective user interfaces. Techniques for proper design, implementation, and evaluation will be covered.
Hours: 30
Credits: 2
Pre-Requisites: PROG2120
Level Six
INFO3120 Advanced Computer Security
Description: This course extends the knowledge learned in the Computer Security course and security-related topics in previous courses, with a focus on giving the student practical experience.
Hours: 30
Credits: 2
Pre-Requisites: INFO1340
PROG3100 Simulation and Game Development
Description: This course will present the principles behind modelling, simulation, and game programming. Emphasis will be placed on proper design processes and advanced programming techniques (such as the use of DirectX) to provide an authentic, quality interactive environment. Game development concepts will be covered for both PC-oriented and embedded or console-oriented gaming environments.
Hours: 75
Credits: 5
Pre-Requisites: EECE3180 or MATH3160, PROG2100 or PROG2210 or PROG2215
PROG3120 Hardware Abstraction Technologies
Description: This course will introduce advanced operating system concepts and hardware abstracting technologies. This will include parallel computing concepts and the design and implementation of device drivers that take into account hardware abstraction techniques. Advanced operating system concepts will be discussed with an eye to future operating system trends.
Hours: 45
Credits: 3
Pre-Requisites: CNTR2115, PROG2150
PROG3140 Systems Project B
Description: The student, as part of a team, will complete a real-life project for an external client. It is intended that the student integrate and apply the knowledge learned in previous courses. The team will bring a complete software system through the planning, programming, testing, and delivery stages. Both technical and project management skills will be emphasized.
Hours: 45
Credits: 3
Pre-Requisites: PROG3130
Electives: General Education
Description: Student must complete a minimum of 36 Hours