University of Windsor - Academic Calendar, 1998 - 1999 
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 
 

 4.5 Computer Science

(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. 
 

MenuBar

AREA shape=rect coords=378,26,529,46 href=/registrar/sis/>

©1997 University of Windsor  
Although care has been taken in preparing the information in this site the University of Windsor cannot guarantee its accuracy.