Course Descriptions

ACS-1453(3) INTRODUCTION TO COMPUTERS (Le3) This course will introduce students to the basic concepts of computers: types of computers, hardware, software, and types of application systems. Students will receive instruction in a variety of software intended for personal use. Software used will include word processing, spreadsheets, databases, charting and graphing tools, and common Internet clients and resources. There will be an extensive laboratory component.

Note: This course does not apply toward the Major in Applied Computer Science.   

 

ACS-1803(3) INTRODUCTION TO INFORMATION SYSTEMS (Le3) This course examines applications of information technology to businesses and other organizations. After an introduction to computers and data management, the course outlines various categories of information systems, (e.g., systems for transaction processing, managerial reporting, customer relationship management, decision support, enterprise resource planning, and e-commerce), with examples from current practice.  System development, system security, systems consulting, and IT administration are also discussed.  Focus is mostly on functional aspects of systems providing a valuable background for students in applied computer science, business and administration, and other disciplines.  Students who require an introduction to personal computers and productivity software should take ACS-1453.

 

ACS-1805(3) INTRODUCTION TO PROGRAMMING (Le3, La1) This course covers elementary procedural programming concepts.  Topics include: primitive data types and their manipulation, basic input and output and elementary control structures. In addition, topics related to a specific programming paradigm that is chosen for the course is covered.  Students will gain hands-on programming experience in the laboratory component of the course.

 

ACS-1809(3) WEBSITE DESIGN AND DEVELOPMENT (Le3)  This course introduces students to the concepts, programming skills, and tools related to website design and development. The topics include: website layout; creating tables, frames, menus and forms; presenting multimedia on web pages; and Internet Protocols such as HTTP and FTP. Students gain hands-on programming experience in designing websites using HTML and Cascading Style Sheets.

 

ACS-1903(3) PROGRAMMING FUNDAMENTALS I (Le3, La1) This course introduces fundamental programming concepts using an object-oriented programming language.  Topics to be covered include primitive data types and their manipulation, control structures, classes, objects and arrays.

Prerequisites: Pre-Calculus Mathematics 40S or Applied Mathematics 40S or a grade of at least C in ACS-1805. 

 

ACS-1904(3) PROGRAMMING FUNDAMENTALS II (Le3, La1) This course examines more advanced programming concepts using an object-oriented programming language.  Topics to be covered include inheritance, polymorphism, sorting techniques, string processing, interfaces, files and packages.

Prerequisites:  A grade of at least C in ACS-1903(3).

Restrictions: Students may not receive credit in this course and the former 92/91.1902(3).

 

ACS-1905(3) PROGRAMMING FUNDAMENTALS (Le3, La1) This course assumes that students already have working knowledge of an object-oriented programming language as well as effective use of data types and control structures.  This course begins with an overview of the object-oriented programming language and then more advanced topics in order to extend the student’s programming skill.  Topics to be covered include inheritance, polymorphism, sorting techniques, string processing, interfaces, files and packages.

Prerequisites:  A minimum grade of 75 (or equivalent) in Computer Science 40S plus one of Pre-Calculus Mathematics 40S, Applied Mathematics 40S or a grade of at least C in ACS-1805.

Restrictions: Students may not receive credit in this course and in any of ACS-1903(3), ACS-1904(3) or the former 92/91.1901(3) and 92/91.1902(3).

 

ACS-2102(3) SCIENTIFIC COMPUTING (Le3) Many problems arising in science are too difficult to solve analytically, and thus require analysis of some form by a computer.  Using the language of C/C++, this course introduces the most common programming constructs used in scientific computing.  The critical importance of data structures to represent information is emphasized, which naturally leads to an object-oriented approach to problem solving. The use of external libraries, such as those for numerical analysis, to solve more advanced problems are explored, with attention paid to checks that can be made on the reliability of the results.

Cross-listed: PHYS-2102(3).


ACS-2103(3) NUMERIC AND SYMBOLIC COMPUTING (Le3) This course provides an introduction to modern scientific software packages for numeric and symbolic computation that are commonly used in teaching, research, and industry.  Topics covered will include functions, arrays, plotting, and data visualization. The course will introduce and discuss algebra, linear, algebra, integration, differentiation, and the solution of differential equations with a focus on real-world applications.  Although there is no mathematics prerequisite, comfort with basic algebra is assumed.

Cross-listed: PHYS-2103(3).

Note: STRONGLY RECOMMENDED: Some knowledge in Introductory Calculus.

 

ACS-2814(3) APPLICATIONS OF DATABASE SYSTEMS (Le3, La1) This course introduces students with limited computing experience to the principles of data management. The emphasis is on practical database experience reinforced through assignments and weekly laboratory work.  Students learn first to work with a workstation-based database system and subsequently they are introduced to the design of databases and their implementation in relational systems.  Topics include tables, queries, forms, reports, importing and exporting data, structured query language, entity relationship models, the relational data model, and normalization of databases.  Examples, assignments, and laboratory work are drawn from a variety of different disciplines.

restrictions: Cannot be held with the former ACS-2914(3).

 

ACS-2816(3) HEALTH INFORMATION SYSTEMS (Le3) This course provides an overview of the important topics in Health Informatics. It discusses data as the building block for health care information including the basic concepts of data flow, data storage, and health record management within both private and public health care systems. It then addresses important issues such as security, privacy, and standards.

Prerequisites:  A grade of at least C in ACS-1803(3) or permission of Department Chair.

 

ACS-2906(3)  COMPUTER ARCHITECTURE AND SYSTEM SOFTWARE (Le3, La1) The course begins with discussions of the architecture of computer hardware and progresses to an examination of system software, including its relationship to the hardware, its structure and design, and its impact on application software, system developers, and end-users. Operating system concepts such as memory management, process management, and I/O sub-systems will be covered. Other topics include language processors, system utilities, security issues, and performance management. The course provides students a hands-on experience of programming at different levels such as high level, assembly, and machine code.

Prerequisites: A grade of at least C in ACS-1904(3) or ACS-1905(3).

Co-requisites: MATH-1401(3).

 

ACS-2909(3)  INTERNET PROGRAMMING (Le3) This course provides students with an overview of Internet and World Wide Web programming, development tools, resources, utilities, multimedia and security issues.  Students gain hands-on experience in a scripting language such as JavaScript, Rich Internet Applications (RIAs), Web services, and Mobile Application Development.  Students not familiar with HTML and CSS are strongly encouraged to take ACS-1809(3).

 Prerequisites: A grade of at least C in ACS-1903(3) or ACS-1905(3).

 

ACS-2913(3) SOFTWARE REQUIREMENTS ANALYSIS AND DESIGN (Le3) This course introduces students to the requirements definition phase of software development.  It provides coverage of both traditional and object-oriented approaches to requirements analysis and design of software used in business, real-time and embedded applications.  Models, notations and processes for requirements elicitation, representation, and design are discussed.

Prerequisites: A grade of at least C in ACS-1903(3) or ACS-1905(3).

Restrictions: Students cannot hold credit in ACS-2913(3) and ACS-2911(3) and/or ACS-2912(3).

 

ACS-2916(3)  BUSINESS APPLICATION SYSTEMS (Le3, La1)  This course firstly presents structured models for business processes and data needed in common transaction processing systems such as order entry, invoicing, accounts receivable and payable, purchasing, inventory and general ledger.  Also, system support for manufacturing (e.g., supply chain management, robotics), for marketing (e.g., sales force automation, customer relationship management), and for human resource management (e.g., candidate selection, collective bargaining support) is highlighted, and inter-system interfaces are considered.  Large, organization-wide, integrated enterprise resource planning (ERP) systems are discussed in the context of a business case.  System controls and security issues are outlined for the systems studied.

Prerequisites: A grade of at least C in ACS-1803(3).   

 

ACS-2941(3) UNIX (Le3) This course provides students with advanced concepts and knowledge of Unix, one of the most widely used operating systems.  The course introduces students to such topics as shells, filters and pipelines, the Unix file system, processes and job control, and Internet communications.  Emphasis is placed on Unix shell programming, which provides valuable tools for developing powerful applications with a minimal amount of written code. 

Prerequisites: A grade of at least C in ACS-1903(3) or ACS-1805(3).  

 

ACS-2947(3) DATA STRUCTURES AND ALGORITHMS (Le3, La1) This course introduces fundamental data structures using an object-oriented programming language.  Topics to be covered include vectors, multidimensional arrays, linked lists, stacks, queues, trees, graphs, recursion and algorithms. 

Prerequisites: A grade of at least C in ACS-1904(3) or ACS-1905(3).

Co-requisites: MATH-1401(3).

 

ACS-2951(3) SYSTEM ADMINISTRATION AND NETWORKING (Le3, La1) This course covers basic system administration issues of Unix and Windows operating systems (OS), principles of networking, and TCP/IP (the Internet).  Students are introduced to topics such as system installation and maintenance, system, and network security and setting up different application servers such as web and SQL.  Students will gain considerable hands-on experience in installing, managing, and trouble-shooting networks on the Linux and Windows platforms.

Prerequisites: A grade of at least C in ACS-2941(3).

 

ACS-3700(3) HEALTH INFORMATICS PRACTICUM (Apprenticeship/Internship/Practicum) The Health Informatics Practicum is a work placement in a healthcare environment.  The course facilitates professional working experience in a sponsoring health-related organization.  The evaluation of the student's performance is determined by the employer's performance evaluation, a work-term performance report submitted by the student, and the departmental co-operative supervisor's evaluation.  This course is graded on a pass/fail basis.  Approval must be obtained from the supervising faculty member as well as from the Department Chair before enrolment.

Cross-listed: COOP-3999 (0 or 3)

Prerequisites:  Students should normally have completed 30 credit hours in the Health Informatics Stream.  3.0 GPA or Department Chair's permission.

 

ACS-3801(3) PRINCIPLES IN INFORMATION SYSTEMS (Le3) This course is the final course for the 3 year degree in the Information Systems and the Health Informatics streams.  The course can provide integration (e.g., project management), or provide more depth in specific areas of Information Systems in order to address specific thematic needs.

Prerequisites:   A grade of at least C in each of ACS-2814(3) (or the former ACS-2914(3)), ACS-2909(3), ACS-2913(3) and ACS-2816(3) or ACS-2916(3).

restrictions: Students cannot hold credit in ACS-3901(3).

additional requirement: Department Chair’s permission.

 

ACS-3830(3) TOPICS IN INFORMATION SYSTEMS (Le3) This course treats specific topics in various areas of Information Systems of interest to the students, faculty members, and industry partners.  This course integrates practical experience with the study of information systems in large organizations.  The course is specifically designed for Information Systems stream students entering the work force.  Students learn the strict professional requirements like quality assurance, standard compliances, risk containments, and integration issues.  The industry partner provides students with organizational level requirements and input.

Prerequisites: A grade of at least C in each of ACS-2814(3), ACS-2909(3), ACS-2913(3) and ACS-2916(3).

restrictions: Students cannot hold credit in ACS-3901(3).

additional requirement: Department Chair’s permission.

 

ACS-3901(3) PRINCIPLES OF SOFTWARE PROJECT MANAGEMENT (Le3) This course covers principles and techniques of software project management, with emphasis on the theoretical underpinnings of the competencies that are associated with software project management.  The key concepts of project planning, organization, and control are covered.   Specific topics covered include task breakdown; estimating, scheduling, and tracking; process and project metrics; change control; risk analysis and management; software quality and reliability models; quality assurance; and configuration management.

Prerequisites: A grade of at least C in ACS-1904(3), ACS-2913(3), (or the previous ACS-2911(3) and ACS-2912(3)) and  ACS-2814(3) (or the former ACS-2914(3)).

Restrictions:  Students with standing in the former 92/91.3920(6) may not hold credit for ACS-3901(3).

 

ACS-3902 (3) DATABASE SYSTEMS (Le3) This course introduces the theory of relational, network, and hierarchical models.  It covers in detail the techniques utilized in various stages of a relational database software development life cycle.  These techniques include ERDs, relational models, functional dependencies, normalization, and physical data storage mechanisms.  Query language fundamentals including relational algebra and SQL are also covered.  A project involving the design and implementation of a database is required. 

Prerequisites: A grade of at least C in ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)) and ACS-2814(3) (or the former ACS-2914(3)).

 

ACS-3907(3) eCOMMERCE (Le3) In this course our students will explore new opportunities, risks, and technologies related to electronic commerce.  Both business and technical issues will be addressed.  Business issues will include the role of eCommerce in the marketing plan and organizational strategy in both business-to-customer and business-to-business contexts.  Technical topics will include architecture, application models, payment strategies and security.  This course is designed for double majors in Applied Computer Science and Business and Administration.

Prerequisites: A grade of at least C in ACS-1803(3) or permission of Chair.

COrerequisites: ACS-1809(3) or permission of Chair.

 

ACS-3909(3) ADVANCED INTERNET PROGRAMMING (Le3) This course provides students with a thorough knowledge of server-side web programming. Topics include n-tiered systems, session tracking, interfaces and stereotypes, dynamic web page design, database connections, and XML processing. Students gain considerable knowledge and experience by learning important features needed for e-commerce, applying advanced web application techniques, and utilizing web databases.

Prerequisites: A grade of at least C in ACS-1904(3), ACS-2909(3), ACS-2814(3) (or the former ACS-2914(3)).

 

ACS-3911(3) COMPUTER NETWORKS (Le3) This course is an introduction to fundamental concepts in computer networks. It covers the principles, technology, protocols, and algorithms of computer networks.  The layers of the network stack are discussed, with particular focus on the internet network stack.  Topics of discussion include network technologies, simple and sliding window protocols, routing and routing algorithms, congestion control, quality of service, security, and network applications.

Prerequisites: A grade of at least C in ACS-2909(3), ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)). 

restrictions: Students cannot hold credit in ACS-3911(3) and the former ACS-3811(3).

 

ACS-3913(3) SOFTWARE DESIGN AND ARCHITECTURE (Le3) This is an advanced course in software design that examines recent advances in the design of larger application systems.  Topics include software architecture, object-oriented analysis and design, software patterns, and the Unified Modeling Language (UML).

Prerequisites: A grade of at least C in ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)) and   ACS-2947(3).

 

ACS-3916(3) HUMAN COMPUTER INTERACTION (Le3) This course covers the fundamentals and concepts of design, implementation, and evaluation of human-computer interfaces. Topics include human cognitive aspects; user-centred design; design goals and principles; interface and interaction types; prototyping and construction; and evaluation methods. In order to make a balance between theory and practice, emphasis is placed on a course-end project involving design, implementation and evaluation of the user interface for a specific application. In this double-numbered course, the course-end project work in ACS-3916 is oriented toward the Applied Computer Science stream, while in ACS-3816 it is adapted to the Information Systems and Health Informatics streams.

Prerequisites: A grade of at least C in ACS-2909(3) AND ACS-2814(3) (or the former ACS-2914(3)).

restrictions: Students cannot hold credit in ACS-3916(3) and ACS-3816(3).

 

ACS-3921(3) / ACS-4921(3) COMPUTER SECURITY AND PRIVACY (Le3) This course introduces students to the security and privacy issues in computer systems. It covers the fundamental computer security techniques such as encryption methods, public key cryptography, hash function and signature schemes, key exchange protocols, authentication and access control models. The course also examines the applications of these techniques for multimedia security, intrusion detection, copyright and password protection, and protection from malicious programs. Privacy preserving techniques such as data aggregation, perturbation, k-anonymity and l-diversity, and ethical issues are also discussed. Students at the 4921 level additionally undertake a comprehensive project on a topic related to computer security and privacy. 

Prerequisites: A grade of at least C in both ACS-2906(3) and ACS-2947(3), or permission of Chair. 

restrictions: Students who have taken ACS-3921 will not be eligible to take ACS-4921. 

 

ACS-3923(3) TECHNICAL COMMUNICATION IN ICT PROFESSIONS (Le3)  This course addresses written and oral communication in Information and Communication Technology (ICT) work environments. Effective communication with technical personnel, system users and organizational executives will be emphasized. This will include items of business correspondence, common technical documents in system development and items of end-user documentation. Students will not only learn about content and format of items of writing but will also develop writing skills through numerous practical exercises. Oral communication in requirements elicitation, meetings, and professional presentations will also be included.

Prerequisites: A grade of at least C in ACS-2913(3) (or the former ACS-2911(3) and ACS-2912(3)).  Permission of the Chair (or designate).

 

ACS-3930(3) TOPICS IN APPLIED COMPUTER SCIENCE (Le3) This course treats specific topics in various areas of applied computer science of interest to the student and faculty member.

Prerequisites: A grade of at least C in both ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)) and   ACS-2947(3).

 

ACS-3931(3) PRINCIPLES OF OPERATING SYSTEMS (Le3) This course covers the principles and design of operating systems.  In the first half of the course students are introduced to multiprogramming and become familiar with the process and thread abstractions.  Students are introduced to concurrent programming.  Topics include: mutual exclusion, synchronization, and inter-process communication.  The second half of the course introduces students to the roles and components of operating systems, and how these components interact.  Topics include process control, memory management, file systems, and input/output.

Prerequisites: A grade of at least C in ACS-2906(3) and ACS-2947(3).

 

ACS-3941(3) IMPLEMENTATION ISSUES IN OBJECT ORIENTED LANGUAGES (Le3) This course focuses on advanced features of a contemporary OO language. Emphasis is on implementation issues and strengthening programming skills of students.

Prerequisites:  A grade of at least C in both ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)) and ACS-2947(3).

 

ACS-3947(3) ALGORITHM DESIGN (Le3) This course focuses on the connection between data structures and the corresponding algorithms, including simple analysis of computational complexity.  The emphasis is on comparative study of alternate ways to implement solutions to computing problems.

Prerequisites: A grade of at least C in both ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)) and ACS-2947(3).


  

ACS-4306(3) APPLIED PARALLEL PROGRAMMING (Le3, La1) The course focuses on parallel and distributed computing in high-performance scientific application, using the parallel execution model, a generalization of the traditional single threaded paradigm. The course covers multi-core processors, concurrency, parallel execution, latency, communication and coordination among processes, message passing, shared-memory models, optimization techniques, parallel algorithms, decomposition strategies, system architecture, and performance analysis and tuning. Using the language C/C++, students gain hands-on experience writing scalable parallel applications for Graphics Processing Units.

Prerequisites: A grade of at least C+ in ACS-2947(3), and a grade of at least C in ACS-3913(3).

Restrictions: Students who have taken ACS-4306 will not be eligible to take the Master of Science course ACS-7306.


 

ACS-4901(6) SENIOR SYSTEMS DEVELOPMENT PROJECT (Le3, P) This course applies the principles and techniques of software project management covered in ACS-3901(3) to a significant systems development project undertaken by students in teams.  A project proposal, project plan, regular status reports, and a completion report are required.  All work must conform to proper analysis, design, programming, and documentation standards.  Each team holds status reviews at appropriate life-cycle milestones.  A final presentation and a formal demonstration of the system are required at the end of the project. 

Prerequisites:  A grade of at least C in ACS-2814(3) (or the former ACS-2914(3)), ACS-3901(3), ACS-3902(3), and ACS-3913(3), and a minimum average GPA of 2.0 in all ACS-xxxx courses previously taken.  

Restrictions: Students may not hold credit in this course and the former 92/91.3920(6).

 

ACS-4902(3) ADVANCED DATABASE SYSTEMS (Le3) This course is a continuation of ACS-3902(3). It deals with advanced topics in database design, use, and administration. Database design topics include enhanced ER diagrams and object-oriented data modelling. Other topics include transaction processing, concurrency control and recovery, security, and integrity.  Object-oriented databases and client-server architectures will also be discussed. 

Prerequisites: A grade of at least C in both ACS-2947(3) and ACS-3902(3).

 

ACS-4904(3) DATA WAREHOUSING (Le3) This course explores the role of data warehouses in supporting decision-making in organizations. Topics include definition of a data warehouse; extracting, cleansing, and transforming data; building and maintaining the warehouse; meta data; dimensional analysis and multidimensional modeling; multidimensional data structures;  Star schemas; OLAP (On Line Analytical Processing); drilling down and across; and web deployment.

Prerequisites: A grade of at least C in all of ACS-2913(3) (or the previous ACS-2911(3) and ACS-2912(3)), ACS-2947(3) and ACS-3902(3).

 

ACS-4906(3) CONCEPTUAL MODELLING (Le3) This course explores the role of conceptual modelling in the development of information systems.  A conceptual model is an abstraction of reality that serves as a communication mechanism between the stakeholders of a system and its developers.  The course covers various approaches proposed for conceptual modelling included UML, EERD, and ORM.  Students gain considerable practical experience with pertinent software tools.

Prerequisites: A grade of at least C in ACS-3902(3).

 

ACS-4930(6) RESEARCH PROJECT IN APPLIED COMPUTER SCIENCE (NT) This course is designed to allow a student to conduct a specific research project under the supervision of a faculty member. An essential component of the course is an oral presentation and a written report of the results. Approval for the planned project must be obtained from the supervising faculty member as well as from the Department Chair before enrolment.

Prerequisites: Students should normally have completed 30 credits in ACS.

Restrictions: Students must obtain written permission from the Department Chair to register for the course.

 

ACS-4931(3) RESEARCH PROJECT IN APPLIED COMPUTER SCIENCE (NT) This course is designed to allow a student to conduct a specific research project under the supervision of a faculty member. An essential component of the course is an oral presentation and a written report of the results.  Approval for the planned project must be obtained from the supervising faculty member as well as from the Department Chair before enrolment.

Prerequisites: Students should normally have completed 30 credits in ACS.

Restrictions: Students must obtain written permission from the Department Chair to register for the course.

 

ACS-4953(3) INTRODUCTION TO MACHINE LEARNING (Le3) This course is an introduction to the broad field of machine learning.  Machine learning provides the technical basis for data mining.  This course examines the foundations and implementations of several machine learning algorithms.  Specific topics include: rule and tree-based classifiers, bayesian models, clustering techniques and numeric prediction. Popular machine learning tool sets will be used to gain practical hands-on experience in i) preparing the data, ii) applying the various learning techniques and iii) interpreting the credibility of the results.

Prerequisites:  A grade of at least C in each of ACS-3902(3), MATH-1401(3), and one 3 credit hour course offered by the Statistics department.

 

ACS-4954(3) INTRODUCTION TO DISTRIBUTED SYSTEMS (Le3) This course is an introduction to the broad field of distributed systems. It focuses on introducing students to the benefits, challenges, methods, and implementations of distributed systems. Reasons for deploying distributed systems, such as fault tolerance and agglomeration of computational resources are discussed. Other topics include implementation challenges such as synchronization and replication in the presence of faults. Common system architectures that address some of these challenges are also introduced. Students are expected to implement some of these architectures to reinforce the lecture material.

Prerequisites:  A grade of at least C in all of MATH-1401(3), ACS-2906(3) and ACS-3911(3).