Skip to main content

Computer Science (GrDip)

Graduate Diploma (GrDip)

Program overview

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.

Program details

Admission Requirements

  • Bachelor’s degree with above-average standing.
  • Completion of COMP 248 Object-Oriented Programming I 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

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 English language proficiency page for further information on requirements and exemptions.

Degree Requirements

Fully-qualified candidates are required to complete a minimum of 31 credits.

Please see the Computer Science and Software Engineering Courses page for course descriptions.

Computer Science Graduate Diploma (31 credits)

31

credits of Required Courses

  COMP 5201 Computer Organization and Assembly Language (4.00)
  COMP 5361 Discrete Structures and Formal Languages (4.00)
  COMP 5421 Advanced Programming (4.00)
  COMP 5511 Principles of Data Structures (4.00)
  COMP 5461 Operating Systems (4.00)
  COMP 5531 Files and Databases (4.00)
  COMP 5541 Tools and Techniques for Software Engineering (4.00)
  ENCS 6721 Technical Writing and Research Methods for Scientists and Engineers (3.00)

Please apply online. Read the how-to guide for application procedures. 

1. Submit your application and pay a $100 CAD application fee. A student ID number will be issued

2. Upload your documents online. You can also upload your documents by logging in to the Student Hub and going to My CU Account

3. A completed file that is ready to be assessed will include:

For initial assessment purposes, scanned and uploaded copies of documents are accepted. To finalize a file, once admitted, Concordia University will require official documents.

  DEGREE
 
FALL
(September)
WINTER
(January)
SUMMER
(May/June)
Computer Science
Canadian / International /
Permanent Resident
Diploma April 1 n/a n/a

Computer Science Graduate Diploma Courses

Description:

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.

Prerequisite/Corequisite:

The following course must be completed previously or concurrently: COMP 5461.

Description:

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.

Notes:


  • Students who have completed COMP 326 may not take this course for credit.

Description:

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.

Prerequisite/Corequisite:

The following course must be completed previously: COMP 5511.

Description:

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.

Prerequisite/Corequisite:

The following courses must be completed previously: COMP 5201; COMP 5511.

Description:

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.

Prerequisite/Corequisite:

The following courses must be completed previously: MATH 204; MATH 205 or equivalent.

Description:

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.

Component(s):

Lecture 3 hours per week; Tutorial 1 hour per week; Laboratory 3 hours per week

Prerequisite/Corequisite:

The following courses must be completed previously: COMP 5481 or equivalent training or experience in Java programming.

Description:

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.

Prerequisite/Corequisite:

The following courses must be completed previously: COMP 5361; COMP 5511.

Description:

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.

Prerequisite/Corequisite:

The following courses must be completed previously: COMP 5361; COMP 5511; ENCS 6721. If prerequisites are not satisfied, permission of the Graduate Program Director is required.

Description:

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.

Prerequisite/Corequisite:

The following courses must be completed previously: COMP 5361; COMP 5511.

Description:

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.

Notes:


  • Students who have completed COMP 361 may not take this course for credit.

Back to top

© Concordia University