Office of the Registrar
Faculty of Science (2006/2007)
5.4 Computer Science
5.4.1 Programs in Computer Science

The following undergraduate programs are available in the Department:

  1. Major in Computer Science

  2. Honours in Computer Science

  3. Honours in Computer Science (Software Engineering) (B.Sc. only)

  4. Computer Internship Option (CIIO) (B.Sc. and B.Sc. Honours only)

  5. Minor in Computer Science

  6. Applied Mathematics/Computer Science Joint Major (B.Sc. only)

  7. Computer Science/Statistics Joint Major (B.Sc. only)

  8. Computer Science/Pure Mathematics Joint Major (B.Sc. only)

  9. Computer Science/Geography (Cartography option) Joint Major (B.Sc. only)

  10. Computer Science/Physics Joint Major

  11. Computer Science/Pure Mathematics Joint Honours (B.Sc. only)

  12. Computer Science/Statistics Joint Honours

  13. Computer Science/Geography (Cartography option) Joint Honours (B.Sc. only)

  14. Computer Science/Physics Joint Honours

  15. Joint Degree of Bachelor of Science with a Major in Computer Science and Bachelor of Commerce (Co-operative)

  16. Computer Science/Economics Joint Major (B.Sc. Only)

Details of our joint program offerings in the Faculties of Arts, Science, and Business Administration may be found under the heading Joint Programs following the heading Regulations for the Honours Degree of Bachelor of Science.

5.4.2 Major in Computer Science
  1. Forty-five credit hours in Computer Science courses are required for a major in Computer Science:

    1. Computer Science 1710, 2710, 2711, 2742, 2760, 3715, 3716, 3719, 3724, 3725, 3754, and 4770.

    2. At least 6 additional credit hours at the 4000 level in Computer Science courses.

    3. Three additional credit hours in Computer Science courses at the 3000 level or beyond.

  2. Additional courses required of the Majors are: Mathematics 2000, 2050, Statistics 2510, and Pure Mathematics 2320.

Note:

Students are encouraged to take Business 2000, Mathematics 3000, and Statistics 2560.

5.4.3 Honours in Computer Science
  1. See General Regulations for the Honours Degree (B.A. or B.Sc. as appropriate).

  2. Sixty-three credit hours in Computer Science courses are required for the Honours Degree in Computer Science, including:

    1. Computer Science 1710, 2710, 2711, 2742, 2760, 3715, 3716, 3719, 3724, 3725, 3754, 4770, and 4780.

    2. Eighteen additional credit hours in Computer Science at the 4000 level.

    3. Six additional credit hours in Computer Science courses at the 3000 level or beyond.

  3. Additional courses required are: Mathematics 2000, 2050, Statistics 2510 and Pure Mathematics 2320.

Note:

Students are encouraged to take Business 2000, Mathematics 3000, and Statistics 2560.

5.4.4 Honours in Computer Science (Software Engineering) (B.Sc. Only)

Completion of the Honours in Computer Science (Software Engineering) Program does not qualify persons to hold the designation "Professional Engineer" as defined by various Provincial Acts governing the Engineering Profession.

  1. See General regulations for the Honours Degree (B.Sc.).

  2. Sixty-three credit hours in Computer Science courses are required for the Honours Degree in Computer Science (Software Engineering), including:

    1. Computer Science 1710, 2710, 2711, 2742, 2760, 3715, 3716, 3718, 3719, 3724, 3725, 3754, 4719, 4759, 4770, and 4780.

    2. Twelve additional credit hours in Computer Science courses at the 4000 level.

    3. Three additional credit hours in Computer Science courses at the 3000 level or beyond.

  3. Additional courses required are: Mathematics 2000, 2050, Statistics 2510, and Pure Mathematics 2320.

Note:

The Honours project (4780) must be in the area of Software Engineering.

5.4.5 Computer Industry Internship Option (CIIO):

The CIIO provides an opportunity for qualified students to obtain rewarding jobs in computer industries for several months of continuous duration, and, at the same time, to gain practical skills in an employment situation during their course of studies.

The CIIO is available to Computer Science Majors (B.Sc. and B.Sc. Honours only).

Application requirement:

  1. Applicants must have successfully completed at least Computer Science 1710, 2710, 2711, 2742, 2760, 3715, 3719 and 3724.

  2. Applications for the internship will not be considered if all computer science courses required for the Computer Science major/honours degree will have been completed prior to the beginning of the internship.

  3. Admission to the CIIO is subject to academic performance.

Internship duration:

Subject to the availability of job openings, a student may choose either an 8, 12 or 16 consecutive month internship period.

Internship placement:

A competition for internship employment is organized by the Department Co-ordinator (hereafter referred to as Co-ordinator).

A student who has applied to the internship program gives permission to the Co-ordinator to supply prospective employers with copies of his/her resume.

A student who has been accepted to the CIIO may obtain his/her own internship placement outside the competition. Such jobs must be confirmed by the employer, and must be subject to the approval of the Co-ordinator and the Head of the Department of Computer Science.

A student who withdraws from an internship program, after a placement, without any reason of grievance, will not be accepted in the internship program again in the future.

Students are not permitted to drop internship periods without prior approval from the Co-ordinator and the Head of the Department of Computer Science. Students who drop an internship period without permission, or who fail to honour an agreement to work with an employer, or who conduct themselves in such a manner as to cause their discharge from the job, will normally be awarded a fail grade for that internship period.

Note:

Students should also refer to the General Academic Regulations (Undergraduate).

Expectation of work

The student is expected to submit, within a month from starting his/her internship, a plan of the intended work for the internship period. The student is also required to submit a progress report due in the last week of each semester. The plan of intended work and progress reports are to be submitted to the Coordinator.

At the end of the internship period, the student is required to submit a final report which will include the description of the project, the objectives, the goals, and the duties of the intern; it would also include a history of the intern's activities and accomplishments. The final report is to be submitted to the Coordinator by the first day of examinations.

Registration, Assessment of Performance, and Assignment of Grades

Students must register for the course Computer Science 3700 every semester during their internship.

Computer Science 3700 is a non-credit course open only to students who have been accepted into the Internship Program.

Student performance evaluations are to be completed by the employer and returned to the Co-ordinator. Evaluations are requested every four months. In the evaluation form, the intern also can include his/her comments.

The overall assessment of work performed during the entire internship period is the responsibility of the Co-ordinator, and will be done based upon input from the employer and the final report submitted by the intern.

Assessment of performance will result in the assignment of one of the following grades in the final semester of internship:

  1. Pass with Distinction: Indicates EXCELLENT PERFORMANCE in both the work report and work performance.

  2. Pass: Indicates that PERFORMANCE MEETS EXPECTATIONS in both the work report and the work performance.

  3. Fail: Indicates FAILING PERFORMANCE in the work report or the work performance.

Also, the following will be noted in the transcript of the intern:

Requirements for the Computer Industry Internship Option have been completed. Internship Duration: - months.

A grade of NC (No Credit) for Computer Science 3700 will be awarded in all semesters of the Internship Option prior to the final semester.

CIIO and Honours Program

In case a student is enrolled in both the Honours program and the CIIO, the requirements of both must be met. Upon approval from the honours project supervisor, within the Department, the employer and the head of the Department of Computer Science, an internship project may be submitted as a component of an honours project. These arrangements must be made within the first semester of the Internship placement.

5.4.6 Minor in Computer Science
  1. For a Minor in Computer Science, a student must complete at least 24 credit hours in Computer Science courses, including: Computer Science 1710, 2710, 2711, 2742, 2760.

  2. The remaining 9 credit hours in Computer Science courses must be at the 3000 level or above.

5.4.7 Course Numbering Scheme

There are five areas of Computer Science offered in the 3000- and 4000-level courses. The meaning of the third digit of a course number is as follows:

1- Programming Languages

2- Computer Systems

3- Numerical Computations

4- Theoretical Aspects

5,6- Applications (e.g. Artificial Intelligence, Computer Graphics, Data Base, Robotics, Computational Geometry, Image Processing, Computer Networking, Computer Aided Design)

7 - Project Course

8- Honours Project

9- Directed Readings

5.4.8 Supplementary Examinations

Supplementary examinations will be allowed in certain Computer Science courses which have written final examinations. Students should refer to the Faculty of Science degree regulations for details.

5.4.9 Faculty Advisors

The Department has an Undergraduate Advisor for Computer Science majors to consult with on academic matters.

5.4.10 Undergraduate Handbook

Additional information about the undergraduate Computer Science programs and courses can be found in the Computer Science Undergraduate Handbook available from the General Office, Department of Computer Science.

5.4.11 Course List

In accordance with Senate's Policy Regarding Inactive Courses, the course descriptions for courses which have not been offered in the previous three academic years and which are not scheduled to be offered in the current academic year have been removed from the following listing. For information about any of these inactive courses, please contact the Head of the Department.

5.4.11.1 First Year Courses

1600

Basic Computing and Information Technology

(F) & (W)

offers an overview of computers and information technology. It provides students with the knowledge necessary to answer questions, such as: What is a computer system? How does it work? How is it used? This is done through the use of popular spreadsheet, word processing and database software packages and the Internet. Social issues and implications will also be included.

Prerequisite: Level III Advanced Mathematics or Mathematics 1090, which can be taken concurrently.

Lectures: Three hours per week.

Laboratory: Three hours per week.

Note:

Students can receive credit for only one of Computer Science 1600, Computer Science 2650 or Computer Science 2801.

1700

Introduction to Computer Science

(F) & (W)

lays the foundation for the art and the science of computing. The course contains fundamental and topical issues in computers, languages, programming and applications. This course is designed for potential Computer Science majors without a background in programming, but is also available for non majors.

Prerequisite/Co-requisite: Mathematics 1090 (or equivalent), or Mathematics 1000.

Lectures: Three hours per week.

Laboratory: Three hours per week.

1710

Object-Oriented Programming I

(F) & (W)

is an introduction to fundamental programming techniques, primitive data types and operations, program control structures and the use of objects, classes and methods.

Prerequisites: Mathematics 1000 (which can be taken concurrently), or Mathematics 1090 (or equivalent).

Lectures: Three hours per week.

Laboratory: Three hours per week.

Note:

Students who have previously completed Computer Science 2710 will not be permitted to register or receive credit for Computer Science 1710.

5.4.11.2 Second Year Courses

2602

Computer Programming in FORTRAN

(F))

is an introduction to computers and their use; and the FORTRAN programming language and its application to the computer solution of numeric and non-numeric problems.

Prerequisite: Mathematics 1000.

Note:

Students who have received credit for the former Computer Science 2600, or the former 2601, or the former 2800 cannot receive credit for Computer Science 2602.

2650

Introduction to Computing and Information Technology

(F) & (W)

provides a broad overview of hardware and software components of computer systems, their structure, and principles of operation. The topics include algorithmic problem solving, visual programming, operating system services, computer networks, elements of artificial intelligence and societal issues. In addition to three one-hour lectures, there will be three hours per week of structured laboratory sessions. Internet and microcomputer software tools in the Windows environment are introduced.

Prerequisite: Level III Advanced Mathematics, Mathematics 1000 (which can be taken concurrently), or Mathematics 1090 ( or equivalent).

Note:

Students can receive credit for only one of Computer Science 1600, Computer Science 2650 or Computer Science 2801.

2710

Object-Oriented Programming II

(F) & (W)

continues from Object-Oriented Programming I, and studies object-oriented and event-driven programming. Additional topics include: recursion, basic analysis of algorithms, fundamental data structures such as simple linked structures and stacks, and fundamental computing algorithms such as binary search and quadratic time sorting. A brief overview of programming languages, virtual machines and language translations is also provided.

Lectures: Three hours per week.

Laboratory: Three hours per week.

Prerequisite: Computer Science 1710.

2711

Introduction to Algorithms and Data Structures

(F) & (W)

includes the study of standard ways of organizing and manipulating data in computer storage. Fundamental concepts in the design and analysis of algorithms are also discussed.

Lectures: Three hours per week.

Laboratory: Three hours per week.

Prerequisite: Computer Science 2710.

Note:

It is recommended that students complete Computer Science 2742 prior to registering for Computer Science 2711.

2742

Logic for Computer Science

(F) & (W)

is an introduction to propositional and predicate logic with applications. The use of the system of boolean logic in reasoning and circuit design, as well as basic proof techniques and the resolution principle, for both propositional and predicate logic, will be covered. Concepts involving sets will be used to illustrate different types of proof techniques. The probable intractability of boolean logic and Goedel's incompleteness theorem will be presented.

Prerequisite: Computer Science 1710.

2752

Introduction to Business Data Processing

(F)

- inactive course.

2760

Encountering the Computer: Society and the Individual

(F) & (W)

examines social, ethical, legal and cultural issues surrounding the use of computers in modern society. These broader social issues are followed by an examination of the use of social and individual psychology in user interface design. Students will be expected to demonstrate an understanding of these issues both directly (through verbal and written discourse) and practically, as applied to the creation of actual software artifacts.

Prerequisites: Two 1000-level English courses, or equivalent.

Co-requisite: Computer Science 2710.

2801

Introductory Computing for Business

(F) & (W)

introduces students to computer applications in business, document processing, application development, decision support, and information management. A three hour laboratory is required.

Prerequisite: Level III Advanced Mathematics, Mathematics 1000 (which can be taken concurrently), or Mathematics 1090 (or equivalent).

Note:

Students can receive credit for only one of Computer Science 1600, Computer Science 2650 or Computer Science 2801.

5.4.11.3 Third Year Courses

3700

Industrial Experience

(F), (W), (S)

is a course for students who are admitted to CIIO. Students are required to register for this non-credit course every semester during their internship. This course is open only to students who have been accepted into the Internship Program and provides an opportunity for qualified students to obtain rewarding job experience of 8, 12 or 16 months of continuous duration, during the course of their studies.

Prerequisite: Admission to the Computer Industry Internship Option (CIIO).

3710

Vocational Languages

(W)

is a study of several programming languages of vocational significance (e.g. a selection from C, C++, Prolog, Perl, Python and LISP). The use of appropriate programming paradigms to solve some significant problems.

Prerequisite: Computer Science 2711.

3711

Algorithms and Complexity

(F) & (W)

introduces the most common and effective algorithm design techniques (e.g. divide and conquer, dynamic programming, greedy algorithms). The theory of NP - completeness is also discussed. Examples will be drawn from various fields such as graph theory and string matching.

Prerequisite: Computer Science 2711 and 2741.

Note:

Credit cannot be obtained for both Computer Science 3711 and Computer Science 3719.

3714

Programming Languages and their Processors

(F) & (W)

reviews typical elements of (imperative) programming languages, and then discusses language implementations in the form of compilers and interpreters. The topics include specification of syntax and semantics of programming languages, discussion of expressions and assignments, side effects, control structures, data and procedural abstractions, parameter passing mechanisms, bindings, scopes, and type systems. The recursive-descent technique is used for illustrations of different aspects of syntax analysis, code generation and error recovery. Language interpreters are discussed for both low-level and high-level languages.

Prerequisites: Computer Science 3719 and 3724.

3715

Network Computing with WEB Applications

(F) & (W)

studies how distributed applications (e.g., client/server Web applications) are constructed using the Internet. Topics covered include: the socket interface for network communication, client/server applications, browser scripting using Javascript, content generation for web applications (e.g., jsp, php), html/css documents, and the use of cryptography to handle security.

Prerequisite: Computer Science 2711.

3716

Software Methodology

(F) & (W)

studies the development of software by gathering the requirements of the software program, analyzing the requirements to create a development model, and creating the software and documents for the software product. This course studies techniques for all three software development activities.

Prerequisite: Computer Science 2711.

3717

Symbolic Computation and Recursion

(W)

is an exposure to symbolic computation with emphasis on recursive programming techniques using the programming language, SCHEME.

Prerequisites/Co-requisites: Computer Science 2711 and 2742.

3718

Programming in the Small

(F)

demonstrates the tools and techniques used in the construction of small software systems. The software tools and techniques to be covered include analysis and design of software components, software construction tools (e.g. linkers, builders, debuggers), software library use and design, and system integration.

Prerequisites: Computer Science 2711 and Pure Mathematics 2320.

3719

Algorithms and Complexity

(F) & (W)

includes (1) advanced algorithm design strategies based on complex data structures and non-standard (parallel / distributed / randomized / approximate) models of computation and (2) analysis techniques for proving polynomial-time intractability and general uncomputability. The latter involves an introduction to abstract models of computation via the formal languages, grammars, and automata of the Chomsky Hierarchy.

Prerequisites: Computer Science 2711 and Pure Mathematics 2320.

Note:

Credit cannot be obtained for both Computer Science 3711 and Computer Science 3719.

3723

Logic Design

(F)

- inactive course.

3724

Computer Organization

(F) & (W)

can be studied at the digital logic implementation level, the instruction set architecture level, and the translation of programming languages to the underlying machine instruction level. This course studies computer organization at these levels.

Prerequisites: Computer Science 2711 and Computer Science 2742.

Co-requisite: Pure Mathematics 2320.

3725

Computer Architecture and Operating Systems

(F) & (W)

covers system design and the architectural implementations of these designs. The objective is to develop the basic concepts of processor design, memory management, operating systems, and I/O devices and their interactions.

Prerequisite: Computer Science 3724.

3731

Numerical Methods

(W)

main objectives are the development of algorithms for the numerical solution of mathematical problems and the study of the numerical stability of these algorithms. The efficiency of these algorithms with respect to speed and storage requirements is considered as well. Emphasis is also placed on the study of the sensitivity of selected problems to perturbations in the data. There is also a brief introduction to the development of numerical algorithms that take advantage of advanced computer architectures, such as pipeline processors, array processors and parallel processors.

Prerequisites: Mathematics 2000, and one Computer Science 2602 or 2710.

Note:

Credit cannot be obtained for both Computer Science 3731 and Applied Mathematics 3132.

3740

Abstract Machines, Languages and Computations

(F) & (W)

provides an introduction to formal languages, formal grammars and computations. The topics include regular languages, regular expressions, deterministic and nondeterministic finite automata, formal grammars, Chomsky hierarchy, context-free grammars and languages, ambiguity, pushdown automata, Turing machines, recursive and recursively enumerable languages, Church-Turing thesis, and the concept of algorithm, universal Turing machines, decidability, reducibility.

Prerequisites: Computer Science 2711 and Pure Mathematics 2320.

3751

Computational Aspects of Operations Research

(W)

- inactive course.

3753

Computational Aspects of Linear Programming

(F)

is an introduction to the Linear Programming Problem (LPP). The emphasis is placed upon developing the most recent and numerically reliable algorithms for the solution of the Linear Programming Problem. The numerical stability of these algorithms will be examined as well. Geometric understanding of the LPP. Simplex method for the LPP. Sparse matrix LPP. Duality and postoptimality analysis. Extensions to the simplex algorithm. Principles of interior algorithms for the LPP.

Prerequisite: Mathematics 2050, and one of Computer Science 2602 or 2710.

3754

Introduction to Information and Intelligent Systems

(F) & (W)

introduces students to application areas that are away from usual number-based and text-based processing. Students will learn the basic concepts and become aware of the historical developments and social and ethical issues related to the application areas such as intelligent systems and information management. This exposure will help students to become knowledgeable about managing large volumes of data and dealing with problems that are well defined but whose algorithmic solutions are not feasible or problems that are fuzzily defined.

Prerequisites: Computer Science 2711 and Computer Science 2742.

3790

Directed Readings

- inactive course.

5.4.11.4 Fourth Year Courses

4711

Structure of Programming Languages

(F)

covers programming language design considerations; syntactic and semantic structure; survey of typical features and operations; analysis of facilities for control and data structuring; language extensibility; execution models; formal specification of programming languages.

Prerequisite: Computer Science 3714.

4712

Compiler Construction

(W)

studies properties of formal grammars and languages; syntax-directed parsing and code generation; top-down and bottom-up parsing methods; LL(k) and LR(k) grammars and parsers; Code optimization; compiler writing tools.

Prerequisite: Computer Science 3714.

4715 and 4717

Special Topics in Programming Languages

4718

Software Methodology

(F) & (W)

introduces methods and tools for developing, managing, and maintaining large-scale software systems. The life-cycle of software development is covered with special emphasis. The topics discussed include development models and environments, project management, requirement engineering, design and programming techniques, software validation, maintenance, and re-engineering.

Prerequisites: Computer Science 3719. Students are encouraged to take Computer Science 3718 prior to doing this course.

4719

Software Specification

(F)

emphasizes the mathematical specification of software in Z. Z is a mathematical notation based on sets, functions, and relations, using schemas to place logical constraints on sets of values. The basic of Z notation and schema calculus will be presented, followed by examples of the use of Z. In addition, some elementary features of a pure functional programming language will be presented to further support the advantages of a mathematical treatment of software.

Prerequisites: Computer Science 3716 and 3719.

4721

Operating Systems Principles

(F) & (W)

provides an introduction to the main concepts and techniques used in operating systems. The topics include history of operating systems, structures of operating systems, process management, process coordination, deadlocks, memory management, secondary storage management, file management, security and protection issues, elements of distributed operating systems, and selected case studies.

Prerequisite: Computer Science 3725.

4723

Introduction to Microprocessors

(F)

examines the architecture and instruction sets for several microprocessors. The use of microprocessors as device controllers; comparisons of hardware and programed techniques; microprocessor interfacing with external devices; methods of I/O; bus structures; modern microprocessor support devices are discussed.

Prerequisite: Computer Science 3724.

Lecture: Three hours per week.

Laboratory: Minimum of three hours per week. Practical experience with basic principles will be obtained through laboratory experience.

4725

Introduction to LSI Design

(W)

- inactive course.

4726-4729

Special Topics in Computer Systems

4734

Matrix Computations and Applications

(W)

is an introduction to linear algebra; solution to linear systems; scaling, improving and estimating accuracy; the linear least squares problem; the eigenvalue problem; singular value decomposition of a matrix; the generalized eigenvalue problem.

Prerequisite: Computer Science 3731.

4735

Advanced Matrix Computations and Applications

(F)

- inactive course.

4736-4739

Special Topics in Numerical Computations

4741

Theory of Abstract Automata and Formal Languages

(W)

covers more advanced topics of abstract automata, formal grammars and languages. They include timed and stochastic automata, probabilistic grammars, tree automata and languages, cellular automata, matrix grammars, controlled rewriting systems, and L-systems. Applications in computer graphics, visualization and digital images, and modeling of systems are used as illustrations of the formalisms.

Prerequisite: Computer Science 3740.

4742

Computational Complexity

(F)

is an in-depth discussion of computational complexity theory. Topics covered in the course include: models of computation (for both serial and parallel computations); complexity measures; reducibility; complexity classes (NP, PSPACE, NC, LOGSPACE and P); and randomized computations.

Prerequisite: Computer Science 3719.

4745-4749 (Excluding 4748)

Special Topics in Theoretical Aspects

4748

Introduction to the Science of Complexity

(F)

is an exploration of the use of computers in the simulation of complex systems. Some theories and models, such as cellular automata, artificial life, fractals, genetic algorithms, chaos, and evolution will be discussed and will be used in the modelling of "real-life" systems. The approach in this course is practical. Students have to write a number of programs of different levels of sophistication including a final project.

Prerequisite: Computer Science 3719.

4751

Computer Graphics

(F)

examines display devices, display processors, display file compilers, display transformations, structured display files, graphical input devices, perspective, hidden line elimination, languages and graphics systems.

In addition to three one-hour lectures, there will be a minimum three hour laboratory per week, to be scheduled by the Department.

Prerequisites: Computer Science 3719 and Mathematics 2050.

4753

Artificial Intelligence

(F)

has selected topics from AI programming languages; heuristic searching; problem solving; game-playing; knowledge representations; knowledge-based systems; reasoning in uncertainty situations; planning; natural language understanding; pattern recognition; computer vision; and machine learning.

Prerequisites: Computer Science 3719 and 3754.

4754

Database Systems

(F)

introduces students to database processing, database management systems and database design considerations. It will cover the theory and methodologies essential for the relational database design, implementation, manipulation, optimization and management.

Prerequisites: Computer Science 3725 and 3754.

4759-4769 (Excluding 4756, 4759, 4761 and 4762)

Special Topics in Applications

4756

Image Processing

(W)

will centre on the key analytical and algorithmic tools and concepts of digital image processing. Topics will include Transformations, Enhancement, Encoding, Data Bases, Segmentation and Description.

In addition to three one-hour lectures, there will be a three hour laboratory per week, to be scheduled by the Department.

Prerequisite: Computer Science 3719.

4759

Computer Networks

(W)

looks at how the operation of computer networks requires the following: a) communication between two computers, b) information transfer between two computers not directly connected, and c) services that need computer communication. This course focuses on the standard solutions and services used to fulfill the previous requirements. These include: physical transmission of signals, reliable communication based on unreliable communication channels, the routing of messages between connected computers to reach computers that are not directly connected, e-mail, file transfer, name servers, remote terminal access and the World Wide Web. Particular attention will be placed on the workings of the Internet.

Prerequisite: Computer Science 3725.

4761

Human-Computer Interaction

(W)

emphasizes user-interface design, distinguishing usability research from testing. Students identify usability issues, and then prototype and analyze their own solutions. Representative methods, techniques and tools related to design, testing and research are discussed. Specific topics may include: environments and toolkits, task analysis, user modeling, user psychology, qualitative and quantitative data analysis.

Prerequisites: Computer Science 2760 and 3719 and Statistics 2510.

4762

Introduction to Computational Molecular Biology

(W)

will give an overview of computational problems and algorithms for these problems associated with a variety of analyses of biological molecular data.

Prerequisite: Computer Science 3719.

4770

Team Project

(F) & (W)

has as its main objective to develop a working prototype of a software system as a team effort. A group of students will work on a project for a team, experiencing the advantages and difficulties of team projects.

Prerequisite: Computer Science 3716.

4780

Honours Project

introduces computer science honours students to research activities, familiarizes them with a special problem in computer science, and provides independent study on an advanced topic under the direct supervision of a member of the computer science faculty. The topic is decided in consultation with the supervisor. The student is required to produce a written report on the project, to include the literature search on the topic, and to present this work at a departmental seminar prior to the last week of the semester.

Prerequisite: Consent of the Head of Department.

Note:

This course is only available to students who have been accepted into the honours program.