Software Engineering Technician Ontario College Diploma
ObjectivesThis two-year diploma teaches the skills required to write technical computer programs. Problem-solving skills are developed using a variety of computer languages. The student will graduate with a firm understanding of software design methodologies from various aspects - technical programming, embedded programming, and systems programming and administration. The student will acquire an operating knowledge of hardware concepts such as microprocessors and embedded software, process control fundamentals, advanced relational database and multimedia application development.
Academic titleSoftware Engineering Technician Ontario College Diploma
Course descriptionLevel 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
Electives: General Education
Description: Student must pass 1 Course(s)
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
Electives: General Education
Description: Student must complete a minimum of 36 Hours
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
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
PROG2020 Project Development
Description: The student, individually or as part of a team, will complete a software-related project. It may be for an external client. It is intended that the student integrate and apply the knowledge learned in previous courses. The student or 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: 15
Credits: 1
Pre-Requisites: INFO2180, INFO2210, PROG1150
CoRequisites: CNTR2115
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