THE UNIVERSITY
ACADEMIC INFORMATION
COLLEGE OF ENGINEERING AND SCIENCE
Degree Programs
General, College of Engineering and Science
Courses
Biological Sciences
Chemistry and Biochemistry
Computer Science
Officers of Instruction
Program Regulations
Programs of Studies
Co-operative Education Program in Computer Science
Course Descriptions
Economics
Engineering
Geography
Geology
Mathematics and Statistics
Nursing
Physics
Interdisciplinary Programs
COLLEGE OF BUSINESS, EDUCATION, AND LAW
COLLEGE OF GRADUATE STUDIES AND RESEARCH
AWARDS AND FINANCIAL AID
GENERAL INFORMATION
GENERAL INDEX
GLOSSARY
|
(Ext. 2990)
For further information, see our World Wide Web page:
http://www.cs.uwindsor.ca/units/cs/welcome.html
OFFICERS OF INSTRUCTION
Professors
Kent, Robert D., B.Sc. (Hons.)(U.B.C.), M.Sc., Ph.D. (Windsor)-1982.
Bandyopadhyay, Subir; B.Sc., B. Tech., M. Tech. (Calcutta),
M. Math. (Waterloo), Ph.D. (Calcutta)-1984.
Frost, Richard A.; B.Sc. (Hons.) (London), M.Sc. (Aberdeen), Ph.D. (Strathclyde)-1987.
Associate Professors
Tsin, Yung H.; B.Sc. (Nanyang), M.Sc. (Calgary), Ph.D. (Alberta)-1985.
Morrissey, Joan; B.Sc.(Hons.), Ph.D. (Dublin)-1989.
Li, Liwu; M.Sc. (Peking), Ph.D. (Alberta)-1991.
Park, Young G.; B.Sc. (Seoul), M.Sc. (K.A.I.S.T.), M.Sc., Ph.D. (N.Y.U.)-1992.
Assistant Professors
Toews, Henry; B.Sc., M.Sc., Ph.D. (Windsor)-1981.
Jaekel, Arunita; B.Engg. (Calcutta), M.A.Sc., Ph.D. (Windsor)-1995.
Ezeife, Christie I.; B.Sc. (Hons.) (Ife), M.Sc. (SFU), Ph.D. (Manitoba)-1996.
Chen, Xiao Jun; B.A. (Beijing), Ph.D. (Pisa)-1997.
Tjandra, Indra Adiono; B.A. (Munich), M.A. (Munich), Ph.D. (Karlsruhe)-1997.
Adjunct Assistant Professor
Patil, Linganagouda; B.E. (Karnatak), D.I.C. (London), P.Eng.-1990.
4.5.1 PROGRAM REGULATIONS
Students are directed to become familiar and to comply with the general
regulations of the University as described in 2.5 which apply to all students.
Additionally, students must comply with the regulations which are particular
to Computer Science programs.
ENGLISH PROFICIENCY
Students are highly recommended to take English 26 100 (Expository
Writing) as students in Computer Science should develop good oral and written
communications skills, besides technical proficiency in the basic science.
SELECTION OF COURSES
In selecting courses to meet the requirements of the programs outlined
below, the following general regulations also must be observed:
1) A student registering in a course without having successfully completed
the prerequisite course(s) will be required to drop that course unless
the permission of the instructor and Computer Science is obtained. A minimum
grade of C is required for all Computer Science courses.
2) If two or more courses cover essentially the same material, only
one may be taken for credit.
3) Prior approval of Computer Science must be obtained before substituting
other courses for required ones.
4) Statistics courses other than those specifically required for the
degree, or ones for which the required statistics courses are prerequisites,
may not be taken for credit.
5) In general, computer courses offered in other areas may not be taken
for credit. 60 206 may not be used to satisfy the major requirements of
any degree program by Computer Science, or in joint programs with Computer
Science.
4.5.2 PROGRAMS OF STUDY
Programs are offered which lead to the following degrees: Bachelor of
Computer Science (Honours), Bachelor of Computer Science (General), B.Sc.
(Honours Computer Information Systems), and B.Sc. (Honours
Computer Science with option in Software Engineering).
As well, the College of Engineering and Science offers a B.Sc. (Honours
Mathematics and Computer Science) (see 5.8.2) and a B.Sc. (Honours Physics
and Computer Science) (see 5.10.2). With approval, Computer Science may
be combined with other honours programs.
Bachelor of Computer Science (General)
Total courses: thirty.
Major requirements: thirteen courses, including 60 100, 60 104,
60 140, 60 141, 60 212, 60 254, 60 255, 60 265, 60 315, 60 322, and 60
330.
Other requirements:
(a) 62 120, 62 140, and 65 253;
(b) one course from Arts/Languages, and one from Social Science;
(c) twelve other courses from any area of study, including Computer
Science and Business Administration.
RECOMMENDED COURSE SEQUENCE
Level 1: ten courses, including 60 100, 60 104, 60 140, 60 141,
62 120, and 62 140.
Level 2: ten courses, including 60 212, 60 254, 60 255, 60 265,
and 65 253.
Level 3: ten courses, including 60 315, 60 322, and 60 330.
Graduation: In order to graduate with the Bachelor of Computer Science
(General) degree, a student must obtain a grade of C- or better in each
Computer Science course and a cumulative average of 5.0 or better.
Bachelor of Computer Science (Honours)
Total courses: forty.
Major requirements: twenty four courses, 60 100, 60 104, 60 140,
60 141, 60 212, 60 214, 60 231, 60 254, 60 255, 60 265, 60 311 (or 60 393),
60 315, 60 322, 60 330, 60 334, 60 367, 60 436, 60 440, 60 454, 60 460,
60 470, and 60 499 (a 6.0 credit hour course), plus one additional Computer
Science course.
Other requirements:
(a) 62 100, 62 120, 62 140, and 65 253;
(b) three courses from Arts, Languages or Social Science, with at least
one from Arts/Languages and one from Social Science;
(c) nine other courses from any area of study, including Computer Science.
RECOMMENDED COURSE SEQUENCE
Level 1: ten courses, including 60 100, 60 104, 60 140, 60 141,
62 100, 62 120, and 62 140.
Level 2: ten courses, including 60 212, 60 214, 60 231, 60 254,
60 255, 60 265, and 65 253.
Level 3: ten courses, including 60 311 (or 60 393), 60 315, 60
322, 60 330, 60 334, and 60 367.
Level 4: ten courses, including 60 436, 60 440, 60 454, 60 460,
60 470, and 60 499 (a 6.0 credit hour course).
Graduation: In order to graduate with the Bachelor of Computer
Science (Honours) degree, a student must obtain a grade of C- or better
in each Computer Science course; a major average of 8.0 or better; and
a cumulative average of 5.0 or better.
Bachelor of Science (Honours Computer Information Systems)
Total courses: forty.
Major requirements-Computer Science: seventeen courses, 60 100,
60 104, 60 140, 60 141, 60 212, 60 254, 60 255, 60 265, 60 315, 60 322,
60 330, 60 334, 60 393, and 60 499 (a 6.0 credit hour course); plus two
additional Computer Science courses.
Major requirements-Faculty of Business: nine courses, including
70 151, 70 152, 71 140, 72 171, and 74 231, but excluding 73 105, 73 213,
73 220 and 73 320.
Other requirements:
(a) 62 120, 62 140, and 65 253;
(b) three courses from Arts, Languages or Social Science, with at least
one from Arts/Languages and one from Social Science;
(c) eight additional courses from any area of study.
RECOMMENDED COURSE SEQUENCE
Level 1: ten courses, including 60 100, 60 104, 60 140, 60 141,
62 120, 62 140, 70 151, 71 140, and 72 171.
Level 2: ten courses, including 60 212, 60 254, 60 255, 60 265,
65 253, and 74 231;
Level 3: ten courses, including 60 315, 60 322, 60 330, 60 334,
and 60 393.
Level 4: ten courses, including 60 499 (a 6.0 credit hour course).
Graduation: In order to graduate with the Bachelor of Science
(Honours Computer Information Systems) degree, a student must obtain a
grade of C- or better in all required Computer Science and Business Administration
courses; a major average of 8.0 or better; and a cumulative average of
5.0 or better.
Bachelor of Science (Honours Computer Science with option in
Software Engineering)
Total courses: forty.
Major requirements-Computer Science: twenty five courses, 60
100, 60 104, 60 140, 60 141, 60 212, 60 214, 60 231, 60 254, 60 255, 60
265, 60 280, 60 311, 60 315, 60 322, 60 330, 60 334, 60 367, 60 380, 60
411, 60 440, 60 454, 60 480, and 60 499 (a 6.0 credit hour course), plus
one additional Computer Science course.
Other requirements:
(a) 62 100, 62 120, 62 140, and 65 253;
(b) any four of 24 210, 26 140, 34 228, 34 229, 40 222, 46 115, 71
140, or 71 240.
(c) two courses from Arts, Languages or Social Science, including one
from Arts/Languages and one from Social Science;
(d) five additional courses from any area of study, including Computer
Science.
RECOMMENDED COURSE SEQUENCE
Level 1: ten courses, including of 60 100, 60 104, 60 140, 60
141, 62 100, 62 120, and 62 140.
Level 2: ten courses, including 60 212, 60 214, 60 231, 60 254,
60 255, 60 265, and 65 253.
Level 3: ten courses, including 60 311, 60 322, 60 330, 60 334,
60 367, and 60 380.
Level 4: ten courses, including 60 315, 60 411, 60 454, 60 480,
and 60 499 (a 6.0 credit hour course).
Graduation: In order to graduate with the Bachelor of Science
(Honours Computer Science with option in Software Engineering) degree, a
student must obtain a grade of C- or better in each Computer Science
course; a major average of 8.0 or better; and a cumulative average of 5.0
or better.
Bachelor of Science (Honours Mathematics and Computer Science)
See Mathematics and Statistics, 4.10.1.
Bachelor of Science (Honours Physics and Computer Science)
See Physics, 4.12.1.
Other Combined Honours Programs
Total courses: forty.
Major requirements-Computer Science: fifteen courses, consisting
of 60 100, 60 104, 60 140, 60 141, 60 212, 60 214, 60 231, 60 254, 60 255,
60 265, and 60 315; plus four additional Computer Science courses at the
300 level or above.
Major requirements-Other Subject: as prescribed by that area
of study.
Other requirements:
(a) 62 120, 62 140, and 65 253;
(b) any additional, non major requirements as determined by the second
area of study;
(c) additional courses, if necessary, from any area of study to a total
of forty courses.
Bachelor of Science (General Science)
See College of Engineering and Science, 4.1.1.
Bachelor of Science (Science, Technology, and Society)
See College of Engineering and Science, 4.1.2.
Minor in Computer Science
A minor in Computer Science requires credits in the following courses:
60 100, 60 104 (or its equivalent), 60 140, 60 141 (or 60 206), 60 212,
and one of 60 205, 60 254, or 60 255. Permission of a program advisor in
Computer Science is required for some of these courses and students wishing
to take a minor in Computer Science should obtain permission for all such
courses before embarking upon the minor.
4.5.3 CO OPERATIVE EDUCATION PROGRAM IN COMPUTER
SCIENCE
The Co operative Education Program offers students the opportunity to
combine their classroom experiences with related work experiences. The
Computer Science Co operative program will help students acquire valuable
professional experience in the workplace while they are pursuing their
academic careers.
Students who apply and are accepted into the Co operative Education
Program must successfully complete at least three paid work experiences
interspersed throughout the four year honours program. The experience gained
while participating in these structured and supervised work placements
is viewed as an integral component of the student's educational program.
APPLICATION PROCEDURE
Only students pursuing the following degrees will be eligible for the
Co operative Education program:
B.C.S. in Honours Computer Science;
B.Sc. in Honours Computer Science with option in Software
Engineering;
B.Sc. in Honours Computer Information Systems.
During the Fall term in Year 2 of their studies, students in the above
programs will be invited to apply for the Co operative Program in Computer
Science. Prospective students will have to apply to the office of Co operative
Education and Student Placement using prescribed forms, two letters of
reference and a resume. Only selected students will be accepted into the
Computer Science Co operative program. The screening process will take
into account the following points:
(a) academic achievement;
(b) previous volunteer and paid work experience;
(c) student's motivation for applying;
(d) letters of recommendation; and
(e) performance at an interview.
Decisions regarding admission to the Co operative Program will be finalized
by the Computer Science Co op Committee in the Winter term of the student's
second year of study.
PLACEMENT
Students in the Co operative Program will apply for work placement
positions advertised by the Administrator of the Co operative Education
Program. These job postings will include relevant information regarding
responsibilities, location, wages, etc.
Students will apply for the placements they are interested in. Employers
will select the candidates they wish to interview. After interviews take
place, employers will rank the students in order of preference. Students
will also rank employers in order of preference. These two rankings will
be used by the Administrator of the Co operative Education Program to determine
student placements.
Computer Science does not guarantee placement, but every reasonable
effort will be made to ensure that appropriate employment is made available.
SEQUENCE OF WORK AND STUDY TERMS *
FIRST YEAR
Fall Term: Study term
Winter Term: Study term
SECOND YEAR
Fall Term: Study term
Winter Term: Study term
Summer Term: Work term
THIRD YEAR
Fall Term: Study term
Winter Term: Work term
Summer Term: Study term
FOURTH YEAR
Fall Term: Work term
Winter Term: Study term
Summer Term: Work term
FIFTH YEAR
Fall Term: Study term
* Students must successfully complete at least three out of the four
work terms given above.
WORK TERM EVALUATION
In consultation with Computer Science, the Administrator of the Co
operative Education Program will evaluate the student's performance at
the conclusion of each Work Term. A student's performance in a Work Term
will be evaluated as either "Satisfactory" or "Unsatisfactory".
RULES AND REGULATIONS
1) To continue in the Co operative program, students must:
(a) maintain a minimum major average of 8.0;
(b) attend all professional development workshops organized by the
office of the Director of Co operative Education and Placement;
(c) receive a satisfactory grade in each work term. This grade will
be based on:
-Co operative Program on site visit from the office of the Director
of Co operative Education and Placement to discuss their progress to date.
-Co operative Program employer evaluation.
-Co operative Program work term report submitted by the student and
evaluated by Computer Science.
-Oral presentation by the student after each placement.
2) Students who:
(a) obtain an evaluation of "Unsatisfactory" for a work term;
(b) do not report for interviews;
(c) fail to report to an employer after accepting a work placement;
(d) are dismissed by the employer for just cause;
(e) leave an employer without permission;
(f) do not maintain a minimum major average of 8.0
will be reviewed by the Computer Science Co op Committee and may be
required to withdraw from the Co operative Program.
3) The performance of each student during her/his work term will be
supervised and evaluated by the student's Co operative Program employer.
4) The students in the Co operative Program will be monitored by the
office of the Director of the Co operative Education closely through regular
phone conversations and at least one work site visit in each work term.
5) Each student must provide a written report at the completion of each
work term. The objective of the report is to enhance the integration of
a student's theoretical and experiential concepts and will be a technical
treatise of a project undertaken by the student during the work term. This
report will be assessed by Computer Science. The employer must also send,
to the office of the Director of the Co operative Education, an evaluation
of the student performance following each placement.
6) Students in the Co operative Program must successfully complete at
least 3 work terms.
7) Each student in the Co operative Program will have to pay a Co operative
Program administration fee for each work and study term to a maximum of
eight terms. The Co operative program administration fees are not refundable.
8) The diploma awarded to students who complete the requirements for
a Bachelor's degree including the requirements of the Co operative program
satisfactorily will have a notation indicating their successful completion
of a Co operative degree program. The transcripts of students in Co operative
Program will carry a similar designation.
4.5.4. COURSE DESCRIPTIONS
Not all courses listed below will necessarily be offered every academic
year.
Due to the fact that Computer Science is a relatively new and continuously
evolving discipline, some of the courses listed may undergo slight revision
and therefore may not always conform exactly to the detailed descriptions
given below.
All courses listed below are three lecture hours per week, unless otherwise
stated. In addition, laboratory/tutorial time may be scheduled as required.
Note: Most Computer Science courses require substantial time
out of class in writing, correcting, and testing computer programs. Students
should be prepared to devote a minimum of from three to five hours a week
per course to assignment work alone.
Students who have covered the material in 60 104 may petition the Program
Chair for exemption from the requirement of 60 104 as a prerequisite to
other courses.
60 100. Key Concepts in Computer Science
The objectives of this course are to excite students' interest in computer
science and to give students a precise understanding of a number of difficult
concepts that are fundamental to modern computer science. Topics may include:
data types; induction and recursion; algebraic characterization; concrete
and abstract syntax; formal logic; soundness, completeness, and decidability;
specification, algorithm, implementation, and determinism; complexity.
(Restricted to students registered in programs offered wholly or jointly
by Computer Science or by Mathematics and Statistics, or with approval
of Computer Science.) (3 lecture, 1.5 laboratory hours a week; plus unsupervised
study and work on individual assignments.)
60 104. Computer Concepts for End Users
Introduction to the concepts of operation of a computer system, including
hardware and software. Development of conceptual understanding of word
processors, databases, spreadsheets, etc., and practical experience with
their use. Networking concepts and data communication concepts will be
introduced. The Internet will be introduced with students having some access
to internet resources. Management information systems including the systems
development lifecycle will be discussed. Fundamental concepts of algorithm
development and programming will be introduced. Hands on experience with
microcomputers as well as a distributed computing environment will be involved.
In addition to lecture time, laboratory/tutorial time may be scheduled
as required. (See above regulations.)
60 140. Problem Solving, Programs, and Computers
Discussion of the need for careful specification and analysis of a
problem before developing a solution. The importance of representing a
problem in various ways before attempting to develop a solution. Introduction
to, and practical experience in using various problem solving strategies,
including stepwise refinement and divide and conquer. Introduction to programming
concepts, data structures, definition, representation and analysis of algorithms.
(3 lecture, 1.5 laboratory hours a week; plus unsupervised study and work
on individual assignments.)
60 141. Introduction to Programming
Introduction to computing concepts: computer organization; machine
language; high level languages; and distributed computing environments.
Structured programming. Elements of program style, including documentation.
Data declaration. Procedural programming constructs assignment
statements, sequence, selection and iteration statements. Use of debugging
tools. Logical operators. Formatted Input/Output. Functions
function definition, function prototypes, scope rules, using function libraries,
recursive functions. Pointers introduction, declaration of pointers, setting
up simple, linear linked lists. (Note: the C language is currently used
for this course.) (Prerequisite: Minimum grade of C in 60 100, 60
104 and 60 140.) (Students in Mathematics programs are allowed to take
60 104 concurrently with 60 141.) (3 lecture, 1.5 laboratory hours a week;
plus unsupervised study and work on individual assignments.)
60 205. Introduction to the Internet
The history of the Internet, including the development of communication
protocols. The Internet as a global information infrastructure and a high
level discussion of how it works. Browsing the Internet with various tools
and the concepts of Universal Resource Locators and Hypertext Mark up Languages
will be included. The functionality of electronic mail and bulletin board
services will be introduced with hands on experience in sending and receiving
information, automated title searching and an introduction to organizing
information to be accessible over the network. Technical methods of binary
data transfer on analogue carriers will be introduced. In addition to lecture
time, laboratory/tutorial time may be scheduled as required. (Prerequisite:
Minimum grade of C in 60 104.)
60 206. Programming in C for Beginners
The course is an introduction to programming in C. Two major goals
of this course are: teaching a rational approach to program development,
and teaching an introduction to ANSI C. The emphasis of this course is
on the first goal. This course adapts a library based approach that emphasizes
the principle of abstraction: library and modular development. The five
phase software development method is used to solve problems. Topics of
this course include: a brief introduction to Computer Science, introduction
to computer hardware, statement forms, iteration, functions, top down design,
basics of modular programming, recursion, arrays, pointers, dynamic data
structures, and file processing. (Prerequisite: Minimum grade of C
in 60 104. Antirequisite: 60 141.) (May not be taken for credit by students
registered in programs offered wholly or jointly by Computer Science.)
60 212. Advanced Computer Programming with C and Java
Review of C programming concepts: assignment, if, while, for statements;
functions, arrays, structures, and pointers. Advanced problem solving with
emphasis on string manipulation, recursion, linear and non linear linked
lists, bit manipulation, function pointers, and command line arguments.
Introduction to classes and inheritance. Principles of object oriented
programming design of Graphic User Interfaces, concurrent programming,
file handling and client server model. (Current languages used: C and Java.)
(Prerequisite: Minimum grade of C in 60 100, 60 104, 60 140 and either
60 141, or 60 206.) (3 lecture, 1.5 laboratory hours a week; plus unsupervised
study and work on individual assignments.)
60 214. Computer Languages, Grammars, and Translators
This course covers both pragmatic and theoretical aspects of grammars,
recognizers, and translators for computer languages. Regular languages:
regular expressions, regular grammars, finite state machines (automata),
regular language recognizers, automatic regular language recognizer generator:
lex. Context free languages: context free grammars and pushdown automata
(stack machine), LL grammars and top down recognition and parsing: LL(1)
and recursive descent parsers, LR grammars and bottom up recognition and
parsing: LR(0), SLR(1), LR(1), and LALR(1) parsers. Automatic context free
language parser generator: YACC. Attribute grammars, syntaz directed translation,
computer language processors: interpreters and compilers. (Prerequisite:
Minimum grade of C in 60 100, 60 102, 60 104, 60 140, and either
60 141 or 60 206.) (3 lecture, 1.5 laboratory hours a week; plus unsupervised
study and work on individual assignments.)
60 231. Theoretical Foundations of Computer Science
An introduction to propositional logic, first order logic, proof techniques,
mathematical induction, sets, operations on sets, relations, operations
on relations, functions, countable and uncountable sets, basic definitions
in graph theory, connectivity, isomorphism of graphs, trees, Euler graphs,
Hamilton graphs, planar graphs and graph colouring. (Prerequisite: Minimum
grade of C in 62 100.) (3 lecture, 1.5 laboratory hours a week; plus
unsupervised study and work on individual assignments.)
60 254. Data Structures and Algorithms
An introduction to the programming and time complexity analysis of
internal (main store) data structures. Topics include linear lists, stacks,
queues, linked structures, representation of sparse arrays, general trees,
binary trees, binary trees in sequential storage, heap sort, quicksort,
linked representation of binary trees, traversal of binary trees, dynamic
binary search trees. (Prerequisite: Minimum grade of C in 60 100,
60 104, 60 140, 60 141 or 60 206, and 60 212, or with consent of the Computer
Science.) (3 lecture, 1.5 laboratory hours a week; plus unsupervised study
and work on individual assignments.)
60 255. File Structures
This course provides the student with the concepts and techniques required
to efficiently maintain data on secondary storage devices. Topics include:
performance differences between primary and secondary storage; secondary
storage devices; fundamental file structures; sequential files; indexing;
B trees; B+ trees; index sequential files; hashing; sorting and searching
techniques on secondary storage devices. (Prerequisite: Minimum grade of
C in 60 100, 60 104, 60 140, 60 141, or 60 206, and 60 212, or with
consent of Computer Science.) (3 lecture, 1.5 laboratory hours a week;
plus unsupervised study and work on individual assignments.)
60 265. Computer System Organization
Examination of the fundamentals of modern computer organization and
architecture. Historical development. The computer system in terms of interconnection
structures, memory, I/O and operating system software. CPU structure and
function, including numeric representations, instruction sets, addressing
modes and formats. Control unit. Alternate architectures and performance
enhancement. (Prerequisite: Minimum grade of C in 60 100, 60 104,
and 60 140 and 60 141.) (3 lecture, 1.5 laboratory hours a week; plus unsupervised
study and work on individual assignments.)
60 275. Selected Topics I
Topics may differ from year to year. (Prerequisite: Minimum grade of
C in 60 100, 60 104, and 60 140 and 60 141.)
60 280. Practicum I
This is a practical software development course. (Prerequisite: Minimum
grade of C in 60 100, 60 140, 60 141 and 60 212.) (Current language
used: Java.) )Note: Admission restricted to students in the Software Development
program and to students with permission of the program advisor.
60 298. Co op Work Term I
60 311. Introduction to Software Engineering
This course introduces the fundamental concepts, principles, and general
techniques in developing large scale software systems. It will cover the
main issues in all the development stages in software life cycle, including
requirement analysis and specification, object oriented and function oriented
design, module testing, integration, and system testing, system maintenance,
etc. Both formal methodology and its application will be discussed. There
are projects associated with this course. The projects are designed to
provide the students with the opportunity of obtaining experience in teamwork
as well as in the management and development of non trivial software systems.
(Prerequisite: Minimimum grade of C in 60 212, 60 254, 60 231, 60
255 and 60 265.)
60 315. Database Management Systems
This course is an introduction to data base management systems. Topics
include : basic concepts; 3 level architecture; the relational model; relational
algebra and calculus; SQL; database design with Normalization Theory; introduction
to query optimization; introduction to distributed systems. (Prerequisite:
Minimum grade of C in 60 212, 60 254, 60 255, and 60 265.)
60 322. Object Oriented Software Analysis and Design
This course builds on the knowledge of object oriented programming
and data structures and file structures gained in courses 60 212, 60 254,
and 60 255. Students are introduced to object oriented software analysis
and design techniques that are currently used in industry. (Prerequisite:
Minimum grade of C in 60 212, 60 254, 60 255, and 60 265.)
60 330. Operating Systems Fundamentals
Introduction to the primary components of multiprogramming operating
systems with emphasis on resource sharing for competing processes. Justification
of multiprogramming operating systems on the basis of resource utilization
and user friendliness. The process concept. Management strategies for the
CPU resource, the main memory resource and peripheral device resources.
The deadlock problem for nonsharable resources. Synchronization and local
serialization constructs for cooperating processes. Machine architectural
requirements for operating system integrity. Inter process communication
via unbuffered, bounded buffer, and unbounded buffer constructs. Virtual
device constructs with application to the batch spooling structure. Unix
multiprogramming, processes. and pipes. (Prerequisite: Minimum grade of
C in 60 212, 60 254, 60 255, and 60 265.)
60 334. World Wide Web Information Systems Development
This course is designed for people who want to make their data available
to others over the Internet. Topics will include WWW authoring, WWW site
planning, executable programs that create dynamic documents, the client
server model, multi tier WWW software architecture, and security aspects.
(Prerequisite: Minimum grade of C in 60 212, 60 254, 60 255 and 60
265.) Also recommended is 60 205 or some experience with web authoring.)
60 342. End user Interface Programming
This course introduces students to programming paradigms and environments
that are appropriate for the development of end uses interfaces. An important
component is a group project involving the specification and construction
of a sophisticated end user interface. (Prerequisite: Minimum grade of
C in 60 212, 60 254, 60 255, and 60 265.)
60 350. Introduction to Multimedia Systems
This course provides the student with basic concepts and techniques
used in multimedia systems. Topics include: audio, images, and video data
compression techniques, media formats and standards, hypermedia programs,
authoring tools, components of a multimedia system. (Prerequisite: Minimum
grade of C in 60 212, 60 254, 60 255, and 60 265.)
60 352. Introduction to Computer Graphics
An introduction to computer graphics hardware and software, interfaces,
standards, programming libraries, fundamental algorithms, rendering techniques,
and algorithms for 2D and 3D applications. Substantial programming work
is vital to this course. (Prerequisite: Minimum grade of C in 60
212, 60 254, 60 255, 60 265, 62 120, and 62 140.)
60 367. Computer Networks
Introduction and use of computer networks, network structures and software.
Examples of network topology, protocols, and routing algorithms. (Prerequisite:
Minimum grade of C in 60 212, 60 254, 60 255, and 60 265.)
60 375. Selected Topics II
Topics may differ from year to year. (Prerequisite: Minimum grade of
C in 60 212, 60 254, 60 255, and 60 265. Additional courses may be
required depending upon the topic.)
60 380. Practicum II
This is a practical software development course. (Prerequisite: Minimum
grade of C in 60 212, 60 254, 60 255, and 60 265.) (Restricted to
students in the Honours Software Development degree program or permission
of the program advisor.)
60 393. Developing Systems for Information Processing
An historical perspective on the use and growth of the computer in
business. A discussion of the business environment in which this use and
growth has been and is taking place. Basic concepts of the systems development
cycle of today's business and management information systems. The planning
and managing of the system development life cycle. (Prerequisite: Minimum
grade of C in 60 212, 60 254, 60 255, and 60 265.)
60 398. Co op Work Term II
60 411. Software Verification and Testing
This course introduces students to the verification and testing phases
of software development. It will discuss models, notations, and processes
for verification and analysis. An important component is a group project
involving the verification and/or testing of a large software system. (Prerequisite:
Minimum grade of C in 60 212, 60 254, 60 255, 60 265, 60 311, 60
315, and 60 330.)
60 436. Distributed Computing
This course provides an overview of computer networks and distributed
systems, covering aspects ranging from encoding bits on a transmission
medium to the design of distributed application software. (Prerequisite:
Minimum grade of C in 60 212, 60 254, 60 255, 60 265, 60 315, 60
330, and 60 367.)
60 440. Principles of Programming Languages
Basic concepts of programming languages. Comparative study of the major
programming paradigms, including imperative, object oriented, functional,
logic, and concurrent programming. Principles of programming language design
and evaluation. Syntax, semantics and implementation techniques of programming
languages. (Prerequisite: Minimum grade of C in 60 212, 60 214, 60
231, 60 254, 60 255, 60 265, 60 311 or 60 393, and 60 322.)
60 450. Multimedia System Development
The aim of the course is to discuss a wide range of technologies used
in the development of multimedia systems. Topics include fundamentals of
computing with digital media objects, networking systems, multimedia programming
and application construction, user interfaces, multimedia on the Internet.
(Prerequisite: Minimum grade of C in 60 212, 60 214, 60 231, 60 254,
60 255, 60 265, 60 315, 60 330, 60 334, and 60 350.)
60 454. Design and Analysis of Computer Algorithms
The intent of this course is to introduce the fundamental ideas in
the design and analysis of computer algorithms. Topics include: asymptotic
bounds, searching, sorting, order statistics, oracle arguments, red black
trees, binomial heaps, divide and conquer, greedy algorithms, dynamic programming,
NP completeness, and approximation algorithms. (Prerequisite: Minimum grade
of C in 60 212, 60 231 and 60 254.)
60 460. Digital Design and Computer Architecture
Modular design concepts in digital circuits. Interfacing facilities.
Memory Organization. Architecture classification schemes. Parallel computing
architectures. Pipelining and vector processing. Alternate architectures
and performance enhancement. (Prerequisite: Minimum grade of C in
60 265, 60 330, and 60 367.)
60 470. Project Using Selected Tools
Students will complete a project using an advanced computing tool,
such as a database package, simulation software, speech recognition hardware
module, etc. Students are required to submit a report describing the project
and demonstrating mastery of the tool. Tools and the project are chosen
by the student with the approval of the instructor. (Prerequisite: Minimum
grade of C in 60 212, 60 254, 60 255, 60 265, 60 311 or 60 393, 60
322, and 60 330.) Restricted to fourth year BCS and BSc. (CIS) students.
This course can be taken for credit only once.
60 475. Selected Topics III
In many cases the topics will coincide with the graduate course offering
in a given year, and students will be required to complete the lecture
component of a graduate course. Topics may include: advanced database management,
graphics, artificial intelligence, information retrieval, theory of computation,
functional programming, knowledge base systems, and foundations of programming
languages. (Prerequisite: Minimum grade of C in 60 212, 60 254, 60
255, 60 311 or 60 393, 60 322, and 60 330. Additional courses may be required
depending upon the topic.)
60 476. Selected Topics IV
In many cases the topics will coincide with the graduate course offering
in a given year, and students will be required to complete the lecture
component of a graduate course. Topics may include: advanced database management,
graphics, artificial intelligence, information retrieval, theory of computation,
functional programming, knowledge base systems, and foundations of programming
languages. (Prerequisite: Minimum grade of C in 60 212, 60 254, 60
255, 60 311 or 60 393, 60 322, and 60 330. Additional courses may be required
depending upon the topic.)
60 480. Practicum III/Selected Topics in Software Engineering
Students will be provided with a list of advanced topics in software
engineering, such as software process modeling, formal specification of
concurrent systems, real time systems, object oriented methodology, formal
verification in concurrent systems, testing techniques in communication
protocols, reverse engineering. Each student will survey a topic and must
submit a survey paper. (Prerequisite: Minimum grade of C in 60 212,
60 254, 60 255, 60 311, 60 322 and 60 330.) (Restricted to students in
the Honours Software Development Program or by permission from the the
program advisor in Computer Science.
60 497. Co op Work Term III
60 498. Co op Work Term IV
60 499. Project Management: Techniques and Tools
The course consists of two components: a) exposure to project presentation
and project management skills, and b) working on a large project in a group.
The course coordinator will arrange lectures on a variety of relevant topics.
The lectures may have quizzes and/or short assignments. Students will be
expected to develop skills in technical writing, organizing seminars, techniques
for use of multimedia tools, as well as developing a major project using
a modern software tool. (A 6.0 credit hour course.) (Prerequisite: Minimum
grade of C in 60 212, 60 254, 60 255, 60 311 or 60 393, 60 322, and
60 330, or consent of the program advisor.) Restricted to fourth year students.
This course can be taken for credit only once.
|