5.3.1 COURSE DESCRIPTIONS
Not all of the courses listed below will necessarily be offered in any
one year. A component of certain courses will be offered in conjunction
with an advanced undergraduate course; in such cases the undergraduate
course work will comprise one half of the graduate course.
All courses are restricted to students enrolled in the Master's II Computer
Science program who have all undergraduate qualifying courses and who have
approval from the instructor and Computer Science program graduate committee.
Note: Certain courses listed below require more than one term
to complete. Unless such courses are officially graded as "In Progress"
(IP), regulations for incomplete grades will apply (see 1.4.3).
To remove any suggestion that the word "engineering" in the context
of courses in Computer Science may be taken to cover the meaning of "engineering"
as used in the context of courses in Professional Engineering, it is hereby
acknowledged that Software Engineering is a collection of principles, models,
methods, and techniques for the development, maintenance, evolution and
reuse of software that meets functional, performance and quality requirements
in an economic and competitive manner.
60-510. Background Reading
The purpose of this course is to prepare students for conducting the
specific research on which their major paper or thesis will be based. Students
are required to complete a thorough literature search on the general area
in which they intend to conduct research and to undertake extensive supervised
reading. Students must submit a comprehensive survey of relevant research,
together with an annotated bibliography of important papers, theses, books,
and conference proceedings. The survey should include a "citation lattice"
indicating clearly the major papers in the area. The bibliography should
include names and current addresses of scientists working in the student's
chosen area and also a list giving details of relevant forthcoming conferences
and workshops relevant to the student's chosen research area. Students
may not register in 60-510 until they have completed all undergraduate
qualifying courses required. This is the first graduate course in which
students must enrol.
60-511. Advanced Software Engineering
Development and maintenance of software systems that satisfy their
specifications. Topics include integrating informal and formal software
design methodologies, software reuse, and software reliability.
60-512. Software Engineering for Distributed Systems
This course introduces to the students both formal and informal techniques
used in software specification, verificaton and testing. The concentration
is put on the advanced methods and techniques in dealing with large-scale
distributed concurrent systems. The aim of the course is to provide graduate
students the opportunity of obtaining strong background and skills in developing
complex software systems for their future work in industry.
60-513. Topics in Software Engineering
Some advanced selected topics in software engineering will be discussed
in this course. Topics include software quality engineering, formal
methods in software verification, and reverse engineering of software.
60-520. Seminars and Computing Tools
Candidates are required to attend Computer Science seminars throughout
their M.Sc. studies and, during each academic year, to present one seminar
on a topic approved by the program chair. Students are also required to
investigate, through reading and experimentation, eight "computing tools"
including, for example, parser generators, database management packages,
simulators, typesetters, synthesizer generators, VLSI design packages,
and state-of-the-art programming languages and environments. Each candidate
will be required to submit a report comprising summary descriptions and
evidence of successful non-trivial use of the eight tools investigated,
together with critical reviews of four particular tools. The selection
of tools to be investigated will be made by the student with the approval
of the program coordinator within the first two weeks of the term. (This
course has the same weight as the other courses, but is extended over a
full academic year.)
60-535. Distributed Query Processing
This course will cover topics such as algorithms and techniques for
query optimization in distributed databases; methods for evaluating algorithms
and experimental procedures. Each student will be required to survey a
topic in the area and present a report. Students will also be required
to implement algorithms and comparatively evaluate techniques.
60-537. Database Management Systems
Current developments in selected aspects of database management. Topics
covered may include data models, database languages, database logics, database
machines, and transaction management.
60-538. Information Retrieval Systems
Fundamental principles and advanced topics in the design of information
retrieval systems. Theoretical as well as practical aspects will be discussed.
60-539. Emerging Non-traditional Database Systems
Course focuses on the study of one or more advanced, new and non-traditional
database system(s) like Data Warehousing and Mining, Video Database Systems,
Mobile Database Systems, and Distributed object-oriented Database
Systems. Topics discussed include system architecture, components, features,
implementation, applications and research issues. Both theoretical and
practical contributions to further improve the system under study remain
part of the course objective.
60-540. Foundations of Programming Languages
Current developments in the theory and practice of programming language
design and implementation. Various languages will be considered and may
include imperative, applicative, logic, constraint, object-oriented, and
equational languages.
60-550. Visualization and Rendering Techniques
Current developments in computer animation and rendering techniques.
Introduction to visualization methods, algorithms, design and current system
models. Integrated roles of modelling, simulation and visualization.
60-552. Computer Graphics
Current developments in computer graphics. Topics covered will include
hardware, software, interfaces, graphics standards, data structures, rendering
algorithms, and visualization.
60-554. Advanced Algorithms
Methodology for developing efficient algorithms. Advanced data structures.
Intractable computational problems and approximation algorithms.
60-555. Parallel Computation
Introduction to fundamental issues in parallel computation. Models
of parallel computation such as vector machine, shared memory model, systolic
array. Data parallel abstraction. Parallel algorithms for numeric and non-numeric
problems.
60-560. Computer Architecture
Current developments in computer architecture. Topics will include
parallel processing architectures and application/language specific architectures.
60-567. Advanced Computer Networks
Topics will include present day high-speed broadband networks, optical
networks, wireless communications, etc.
60-572. Topics in Artificial Intelligence
A programming-oriented introduction to selected topics in artificial
intelligence. Topics to be covered will include: AI programming techniques,
pattern matching systems, knowledge representation schemes, AI software
engineering tools, and developments in software/hardware integration.
60-588. Advanced Programming Languages
Current developments in the design, application, and implementation
of pure lazy functional programming languages.
60-589. Knowledge Systems
Current developments in the theoretical and practical aspects of knowledge
systems. In particular, the course will be concerned with the integration
of database and AI theories and technologies.
60-590. Directed Special Studies
With approval of the program coordinator, a student may undertake to
write an original paper on a specialized topic which would enhance his
or her program of study. The course will involve directed supervised reading
and informal discussion with the graduate supervisor. The work undertaken
in fulfilling the requirements for this course will not be counted directly
for credit in the evaluation of either 60-796 (Major Paper) or 60-797 (M.Sc.
Thesis).
60-592. Selected Topics
Selected advanced topics in computer science.
60-797. M.Sc. Thesis
Students may not register in 60-797 until they have completed 60-510.
|