The Graduate Diploma in Computer Science is offered to university graduates from diverse backgrounds who wish to obtain expertise in computer science fundamentals. Students will obtain qualifications similar to a bachelor's degree in Computer Science. Upon completion of the diploma, those who wish to pursue their studies may apply for admission to the 45-credit master's program in Computer Science. Graduate students in computer science and software engineering have access to a wide range of laboratories that encompass database and information systems, distributed systems, computer networks, 3D graphics, computational mathematics, pattern recognition and machine intelligence, computational linguistics, fungal genomics and usability testing. The department also allows extensive use of the university’s central computing systems.
Completion of COMP 5481 Programming and Problem Solving or equivalent courses in an object-oriented language such as C++ or Java prior to entry into the Diploma program. Equivalence will be determined by the Diploma Program Director.
Proficiency in English. Applicants whose primary language is not English must demonstrate that their knowledge of English is sufficient to pursue graduate studies in their chosen field. Please refer to the Graduate Admission page for further information on the Language Proficiency requirements and exemptions.
In addition to the general admission requirements, the Gina Cody School (GCS) may require applicants to write the Engineering Writing Test (EWT) as a condition of admission to all graduate programs in Engineering and Computer Science. Depending on the result, students may be required to complete remedial English language courses in addition to their program requirements.
Engineering Writing Test (EWT). The Engineering Writing Test examines students’ ability to provide reasoned assessment of a short technical composition in English or French, and their ability to provide a qualitative account of quantitative or graphically presented data. The test is offered a number of times throughout the year. Based on their performance in the test, students may be asked to take remedial courses.
Priority will be given to those who apply within the official deadlines listed above. Some programs may continue to accept applications after these deadlines. For more information, please contact the department.
COMP 5201 Computer Organization and Assembly Language (4 credits)
Programming in a subset of a suitably chosen assembly language; instruction-set level view of computers; translation of sample high-level language constructs to the instruction-set level. User-level view of the computer system through an operating system. Privileged modes of operation of the hardware for achieving goals such as protection and resource management; the hierarchy of the memory system as a resource, its concepts and requirements. Input/output including interrupt handling.
COMP 5261 Computer Architecture (3 credits) Prerequisite: COMP 5461 previously or concurrently.
Computer architecture models: control-flow and data-flow. Concurrency and locality, data dependency theory. Instruction level parallelism. Instruction scheduling. Pipelined processors. Vector processors. Thread level parallelism. Multiprocessors. Shared memory models. Coherence protocols. Interconnection networks. Performance issues. Advanced topics in contemporary computer architectures. Case studies.
COMP 5361 Discrete Structures and Formal Languages (4 credits)
Discrete mathematics: sets, logic, quantifiers, relations, and functions. Regular languages: finite automata (deterministic and non-deterministic), regular expressions, regular grammars, pumping lemmas for regular languages, closure properties for regular languages. Context-free languages: context-free grammars, parsing and ambiguity, normal forms for grammars, pushdown automata, closure properties for context free languages.
COMP 5421 Advanced Programming (4 credits) Prerequisite: COMP 5511.
Designing classes and programs. Program development. Encapsulation; dependency minimization. Inheritance hierarchies; abstract classes and interfaces; frameworks, Reading and writing files; serialization. Applications of inheritance and generics. Design and use of class libraries; user interface design; database and network programming.
COMP 5461 Operating Systems (4 credits) Prerequisites: COMP 5201, 5511.
Basic concepts of operating systems and system programming. Processes, interprocess communication, and synchronization, memory allocation, segmentation, paging. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and privacy. Advanced operating system concepts: distributed systems, multi-processor and parallel systems, real-time systems.
COMP 5481 Programming and Problem Solving (4 credits) Prerequisites: MATH 204, 205 or equivalent.
Overview of programming and problem solving. Operators and expressions. Types, values, and variables; type conversion. Classes, objects, and methods. Assignment, conditional and repetitive statements. Arrays. Input and Output. Program structure and organization; encapsulation. Recursion and its uses. Designing classes and member functions; aggregation and inheritance. Introduction to libraries and their applications. Lectures: three hours per week. Tutorial: one hour per week. Lab: 3 hours per week.
COMP 5511 Principles of Data Structures (4 credits) Prerequisite: COMP 5481 or equivalent training or experience in Java programming.
Definition, use, and application of fundamental data structures and associated algorithms. Asymptotic analysis of algorithms. Storage management: arrays, strings, lists and trees. Data abstraction: stacks, queues, priority queues, sets, and tables. Searching and sorting. Programming techniques: designing classes for data structures.
COMP 5531 Files and Databases (4 credits) Prerequisites: COMP 5361, 5511.
Introduction to file management: basic file structures and access methods, sequential and indexed-sequential files, B+-trees and R-trees; external sorting; dynamic hashing; clustering techniques. Introduction to database management: fundamental data models - hierarchical, network, and relational; data dependencies; normal forms; and relational database design. Formal query languages: relational algebra, calculus; commercial languages: SQL, QBE. Fundamentals of data processing.
COMP 5541 Tools and Techniques for Software Engineering (4 credits) Prerequisites: COMP 5361, COMP 5511, ENCS 6721; or permission of the Graduate Program Director.
The software life cycle. IEEE and MIL standards for software documentation. Formal methods. Software architectures. Software design and prototyping. Interfacing and encapsulation. Use of libraries, frameworks, and CASE tools. Implementation and maintenance. Verification and validation.
COMP 5611 Elementary Numerical Methods (3 credits) Prerequisites: COMP 5361, 5511.
Error analysis and computer arithmetic. Numerical methods for solving linear systems, Gaussian elimination, LU decomposition. Numerical solution of non-linear equations, fixed point iterations, rate of convergence. Interpolations and approximations, Lagrange polynomials, divided differences, discrete least-square approximation, Legendre polynomials. Numerical integration, Newton-Cotes formulas, Romberg integration. Emphasis will be on the development of efficient algorithms.
Please be advised that Concordia University does not process admissions or fee payments through third parties for our degree programs.
All applicants are advised to ensure that they are communicating directly with the university for admissions and fee payments.