Computing And Information Science
Faculty | MSc | Courses
Chair- James G. Linders (315 Reynolds, Ext. 2250)
Graduate co-ordinator - Scott MacKenzie (314 Reynolds, Ext. 8268) (E-mail:
Graduate secretary/inquiries - Colleen O'Brien (312 Reynolds, Ext. 6402)
Dilip K. Banerji BTech Indian Inst. of Tech., MSc Ottawa, PhD Waterloo -
G. Robert Chapman BSc, PhD Liverpool - Professor
David K.Y. Chiu BA Waterloo, BSc Guelph, MSc Queen's, PhD Waterloo -
Eleanor Chu BSc National Taiwan, BSc, MSc Acadia, MMath, PhD Waterloo -
James G. Linders BASc, MASc Toronto, PhD Imperial College, London -
I. Scott MacKenzie B.Mus. Queen's, ME, PhD Toronto - Associate
Jay C. Majithia BSc London, MEng, PhD McMaster - Professor Emeritus
Mary McLeish BSc Queen's, MSc, PhD McMaster - Professor
Fei Song BSc Jilin, MSc Inst. of Computing Technology (Academia Sinica),
PhD Waterloo - Assistant Professor
Deborah A. Stacey BSc Guelph, PhD Waterloo - Associate Professor
David A. Swayne BSc Waterloo, MA York, PhD Waterloo -
Fangju Wang BE Changsha, MSc Peking, PhD Waterloo - Associate
Thomas C. Wilson BA Iowa, MSc Chicago, PhD Waterloo - Professor
Associated Graduate Faculty
Ryszard Janicki MSc Warsaw, PhD, D.Hab Polish Academy of Sciences -
Brian Ross BSc Manitoba, MSc British Columbia, PhD Edinburgh - Adjunct
William F. Smyth BA Toronto, MSc Ottawa, PhD Curtin, C. Eng., FBCS,
FICA - Adjunct Professor
The Department of Computing and Information Science offers a
program of study leading to the MSc degree in applied computer science.
The MSc program has a distinctive applied orientation, emphasizing
research that can potentially contribute to industry and government. Interaction with other
disciplines is encouraged. The program is based on three areas of technical specialization: (1)
parallel and distributed computing, (2) interactive software environments, and (3) artificial
intelligence. A software engineering initiative is underway and students will be considered in this
area. Research in the department is conducted by groups centred in these areas of activity.
Research in distributed systems includes distributed databases, VLSI design automation,
computer architecture and networks, and parallel processing. Research in interactive software
environments includes human-computer interaction, user-interface software and hypertext.
Research in artificial intelligence includes uncertainty management, knowledge acquisition,
expert systems, image processing, neural networks and pattern recognition. In addition, applied
research is carried out in areas such as information management, including
geographical-information systems, statistical databases, and office information systems.
To be considered for admission, applicants must meet the minimum
admission requirements of both the university and the department, including at least a 73% ('B')
average during the previous four semesters of university study. Applicants are expected to
possess a four-year honours degree in computer science. However, a student with a minor in
computer science and an honours degree in another applicable discipline may be granted
provisional admission. Owing to the applied nature of the program, we encourage students with
such backgrounds to apply. To assist in identifying a suitable thesis adviser, applicants are
requested to submit descriptions of their research interests.
Most available spaces will be filled in May for entry the following
September. In order to compete for financial assistance, visa students should have their
applications completed by January for consideration for admission in September. However, in
rare instances, applicants will be considered at other times and admitted in January and in
Degree requirements include a master's thesis, participation in a research
seminar and at least four graduate-level courses: two in the student's research area and others
outside of that area. There is no qualifying exam or second-language requirement. Heavy
emphasis is placed on the thesis, which usually requires at least two semesters. Students should
plan on spending at least four full-time semesters in the program assuming adequate preparation
for graduate work. Normally, students are expected to fulfill all the requirements in six
Graduate courses are organized around the areas of specialization
mentioned earlier. The courses chosen must include at least two of these areas. In exceptional
cases, one graduate-course requirement may be met by an approved 0.5-credit graduate course
from another department or by two approved 400-level 0.5-credit courses which have not already
been taken for credit. The specific course requirements for each student will be determined in
consultation with the thesis adviser and advisory committee, subject to the above
- Distributed Systems
- 2706000 Distributed Systems (0.5)
- The evolution of high-performance distributed computer systems. Models for
distributed processing. Taxonomy and performance evaluation of multiprocessor systems.
Interconnection networks. Memory and I/O system for multiprocessor architectures. Performance
of distributed systems. Architectural issues of distributed database systems.
- 2706100 Parallel Processing (0.5)
- Introduction to parallel processing. Discussion of possible alternative
architectures such as bus architecture and n-cube architecture machines. Comparison of SISD,
SIMD, MISD and MIMD machines. The complexity of sorting and other algorithms in a
parallel-processing context. Topics may include systolic processing and/or array
- 2706200 Design Automation in Digital Systems (0.5)
- Techniques and software tools that provide a computer-aided-design (CAD)
facility to designers of digital systems. Most of the material will be on high-level synthesis and
optimizations, sufficiently abstracted from circuit/logic-level details.
- 2706600 Topics in Distributed Systems (0.5)
- Selected topics in distributed systems that are not covered by existing courses.
The topics will be chosen from: local-area networks, distributed databases, performance
evaluation and reliability, introduction to VLSI.
- Interactive Software
- 2706010 Interactive Software Tools (0.5)
- Recent advances in understanding the development of interactive software. Topics
include conceptual paradigms for interactive software, tools for developing interactive software,
knowledge-based tools and human factors of software development.
- 2706110 Models for Design of Human-Computer Interaction (0.5)
- Formal and informal models applicable to the design of human-computer
interaction. Topics include history of human-computer interaction models, models of users,
models of interactions, models of interactive systems, and models of the design and development
- 2706210 Research in Design Methods for Human-Computer Interaction
- Current developments in design methods for human-computer interaction. Topics
include the history of design methods in human-computer interaction, the acquisition and
formalization of design knowledge and advanced techniques in user interfaces (e.g.,
- 2706610 Topics in Interactive-Software Environments (0.5)
- Topics of current interest to the department and students and not covered by
existing courses. The topics will be chosen from: CAI applications, human-factor research in
software development, applied cognitive science for human-computer interaction, office software
- Artificial Intelligence
2706020 Knowledge Representation and Expert Systems (0.5)
The major features of expert systems today: a discussion of logic and rule-based
systems; forward and backward chaining; frames, scripts, semantic nets and the object-oriented
approach; the evaluation of expert systems and knowledge acquisition. A sizeable project is
required and applications in other areas are encouraged.
2706120 Uncertainty Reasoning in Intelligence Systems (0.5)
Different paradigms for handling uncertainty in reasoning. Topics include the
incorporation of uncertainty into logical models, e.g., fuzzy logic, probabilistic logic and
non-nontonic reasoning; and introduction to Dempster- Shafer theory. The role of belief
networks, complexity issues. Applications will be presented and a project required.
2706220 Pattern Recognition and Machine Learning (0.5)
An interdisciplinary approach to knowledge discovery, machine learning and
pattern analysis. Possible topics include: information measures, inductive learning, statistical and
structural pattern recognition, neural networks, applications in computational molecular biology
and image analysis.
2706320 Image Processing Algorithms and Applications (0.5)
Topics in image processing algorithms, and their analysis and implementation.
The emphasis is on representation and data structures, analysis of algorithms and complexities,
parallel architectures and algorithms for image processing, as well as implementation issues
including image-processing language design and software-development environments.
2706420 Artificial Neural Networks (0.5)
An introductory survey course concentrating on analysis of various artificial
neural network models in terms of their underlying principles, topologies, behaviours and
learning algorithms. Some applications will also be discussed.
2706620 Topics in Artificial Intelligence (0.5)
Topics in areas of artificial intelligence that are of current interest to the
department and students that are not covered by existing courses. Possible topics include search,
planning; natural language understanding; special topics in knowledge representation, robotics,
knowledge-based modelling, intelligent databases and decision support systems.
2706630 Topics in Information Management (0.5)
This course will cover topics in a variety of areas of information management that
are of current interest to the department and students. Possible topics include
geographical-information systems, object-oriented databases, statistical databases, spatial
databases, office-information systems.
2706640 Topics in Computer Science (0.5)
This course will cover selected topics in computer science that are of current
interest to the department and students. The topics include advanced algorithms and
computational complexity, theory of parsing and compilation, database theory.
2706900 Computer Science Seminar (0.0)
A regular weekly seminar presenting research problems currently under
investigation. Each student is expected to regularly attend for three semesters and to present one
of the talks.