University of Guelph 1999-2000 Undergraduate Calendar

XII--Course Descriptions


Computing and Information Science

Department of Computing and Information Science.

Note: Credit may be obtained for 1 of CIS*1000 or CIS*1200. Students with credit for COST*2020 may not register in CIS*1000 or CIS*1200. Students who major or minor in Computing and Information Science may not receive credit for the following courses unless taken to satisfy the requirements of another program: COST*2020, MATH*1050.

CIS*1000 Introduction to Computer Applications S,F,W(3-2) [0.50]

A survey of computer systems and software. An introduction to computer programming and data organization. An emphasis on using application packages for personal and business use. The social impact of computing. Not recommended for students with previous computer science background.

Exclusions: CIS*1200, COST*2020

CIS*1200 Introduction to Computing F,W(3-2) [0.50]

An introduction to computer hardware and software, data organization, problem-solving and programming. Exposure to application packages for personal and business use. For students who wish a balance between programming and the use of software packages.

Exclusions: COST*2020, CIS*1000

CIS*1500 Introduction to Programming F,W(3-2) [0.50]

Introductory problem-solving, programming and data organization techniques required for scientific applications using a general purpose programming language. Topics include control structures, data representation and manipulation, and interfacing to applications software. For students who require a good understanding of programming but are not planning on taking additional specialist Computing and Information Science courses.

CIS*1650 Programming I F,W(3-1) [0.50]

Technically intensive introduction to object-oriented programming and problem solving concepts. Control and basic data structures, objects, class libraries, organizational approaches, and basic algorithms are introduced. This course is required for students in a Computing and Information Science major or minor programme and for those wishing to take additional computing courses.

Exclusions: CIS*1000, CIS*1200, CIS*1500, CIS*1600

CIS*1900 Discrete Structures in Computer Science W(3-2) [0.50]

Provides a foundation in finite mathematics which is required for further computer science courses. Abstract representation of structures and algorithms. Topics include graph theory, logic, and set theory.

CIS*2100 Scientific Computing and Applications Development S,F(3-2) [0.50]

This course is intended to introduce the student to techniques in modern applications development using current technologies and practices. The emphasis of the first part of the course ranges from building and maintaining WEB sites to search engines and multimedia presentations. The second part of the course is concerned with building and maintaining simple databases as needed for the management of scientific data. This is done in conjunction with packages for mathematical and statistical analysis, and presentation techniques. Cannot be taken for credit by B.A. or B.SC. students taking a major or minor in Computing and Information Science.

Prerequisites: 1 of CIS*1000, CIS*1200, CIS*1500
Exclusions: CIS*1650

CIS*2420 Data Structures S,F(3-2) [0.50]

An advanced examination of data structures. Their representation in both a high-level programming language and as abstractions. Analysis of algorithms, comparative performance, and complexity. Structures include trees, graphs, hashtables, sets, object-oriented hierarchies, and templates.

Prerequisites: CIS*2650, (CIS*1900 or MATH*2000)

CIS*2450 Software Systems Development and Integration S,F(3-2) [0.50]

Techniques and tools used in the development of large software systems. Methods for organizing and constructing modular systems, manipulating files, an introduction to interface design, and use of databases. Software tools for managing projects, database connectivity, configuration management, and system application programmer interfaces.

Prerequisites: CIS*2650, (CIS*1900 or MATH*2000)
Exclusions: CIS*2400

CIS*2650 Programming II W(3-1) [0.50]

A sequel to CIS*1650 Structured Programming using a general purpose procedural language. Topics include string processing, record manipulation in memory and on disk, static and dynamic data structures, recursion, and pointers. Fundamental algorithms are introduced for sorting, searching, text processing and other important tasks.

Prerequisites: CIS*1650
Exclusions: CIS*1700

CIS*3110 Operating Systems W(3-1) [0.50]

Operating Systems in theory and practice. Components in a system: scheduling and resource allocation; process management, multi-programming, multi-tasking; I/O control and file systems; mechanisms for client-server computing. Examples from contemporary operating systems.

Prerequisites: CIS*2420

CIS*3120 Digital Systems S,W(3-1) [0.50]

Boolean algebra, minimization of Boolean expressions. Design of combinational and sequential logic circuits. Memory design. Control, ALU, bus design. Microprogramming and CPU design.

Prerequisites: IPS*2010 is recommended

CIS*3200 Software Engineering S,W(3-2) [0.50]

Examination of the software engineering process and the production of reliable systems. Techniques for the design and development of complex software. Topics include formal specifications, risk analysis, quality assurance, metrics, standards, integration, safety critical issues and ethics.

Prerequisites: CIS*3430

CIS*3430 System Analysis and Design in Applications W(3-2) [0.50]

An introduction to the issues and techniques encountered in the design and construction of software systems. The theory and models of software evolution. Topics include quality, requirements and specifications, prototyping, design principles, object-oriented analysis and design, testing and debugging.

Prerequisites: CIS*2420, CIS*2450

CIS*3460 System Simulation F(3-2) [0.50]

Simulation model classification. Continuous and discrete languages. Process and transaction oriented systems. GPSS: entities, processing logic, chains, queue disciplines. Random number generators. Design and optimization of simulation applications and validation techniques.

Prerequisites: CIS*2420, (MATH*1010 or MATH*1210), (1 of STAT*2040, STAT*2060, STAT*2120)

CIS*3490 The Analysis and Design of Computer Algorithms W(3-1) [0.50]

The design and analysis of efficient computer algorithms: standard methodologies, asymptotic behaviour, optimality, lower bounds, implementation considerations, graph algorithms, matrix computations (e.g. Strassen's method), NP-completeness.

Prerequisites: CIS*2420, recommended MATH*2150

CIS*3530 Data Base Systems and Concepts S,F(3-1) [0.50]

Review of data organization and data management principles with the perspective of analyzing applications suitable for implementation using a DBMS. Analysis of several data base models, query specification methods, and query processing techniques. Overview of several related issues including concurrency control, security, integrity and recovery. Student's are expected to demonstrate concepts through project assignments.

Prerequisites: CIS*2420, CIS*2450

CIS*3650 Organization and Implementation of Programming Languages F(3-1) [0.50]

A critical appraisal of programming languages, language paradigms, implementations of selected language concepts. Introduction to formal language specification. Compilation techniques, including parsing and code generation.

Prerequisites: CIS*2420, CIS*2450

CIS*4050 Advanced Computer Architectures F(3-1) [0.50]

Central processor architectures, control and microprogramming, memory systems, special architectures, underlying support for special architectures, architectures suitable for very large scale integration. Offered in even-numbered years and may be offered in odd-numbered years.

Prerequisites: CIS*3110, CIS*3120, IPS*2010

CIS*4200 Computer Communication and Networks F(3-1) [0.50]

Fundamental concepts of coding and information theory. Communication technology. Design and behaviour of long haul and local area computer networks, with special emphasis on protocols and packet switched networks.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200,CIS*3490, CIS*3530, CIS*3600)

CIS*4300 Human Computer Interaction F(2-2) [0.50]

Methods for user interface software design, including interface representations and testing. Evaluation and design of sample application systems. Impacts of computer-based information systems on individuals and organizations. Implementation and testing tools. Planning of learning stages and design of assistance subsystems. Offered in odd-numbered years and may be offered in even-numbered years.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200,CIS*3490, CIS*3530, CIS*3600)

CIS*4400 Distributed Information System Architectures W(3-2) [0.50]

This course addresses the basic concepts and methodologies used to build distributed systems applications, using either the UNIX or the Microsoft platforms. The course deals with building information infrastructures involving a base network layer, middleware and application layer. The emphasis is on the enabling methodologies for building complex distributed information systems.

Prerequisites: (CIS*3110, CIS*3430, CIS*3530), (1 of CIS*3200, CIS*3490, CIS*3650)
Exclusions: CIS*4440

CIS*4430 Information Organization and Retrieval W(3-1) [0.50]

Advanced techniques for information management. Analysis of advanced indexing structures. Information retrieval, feedback strategies, text searchings, automatic indexing. Database query optimization and system support. Web based retrieval. Offered in even-numbered years and may be offered in odd-numbered years.

Prerequisites: CIS*3110, CIS*3430, CIS*3530, (1 of CIS*3200,CIS*3490, CIS*3600)

CIS*4450 Special Topics in Information Science (3-1) [0.50]

A variety of advanced topics mainly from areas within general information processing. Subject areas discussed in any particular semester will depend on the interests of the students and the instructor. Students should check with the Department of Computing and Information Science to determine what topic will be offered during specific semesters and which prerequisites, if any, are appropriate.

CIS*4500 Special Topics in Computing Science (3-1) [0.50]

A variety of advanced topics within Computing Science. Subject areas discussed in any particular semester will depend upon the interests of both the students and the instructor. Students should check with the Department of Computing and Information Science to determine what topic will be offered during specific semesters and which prerequisites, if any, are appropriate.

CIS*4600 Elements of Theory of Computation F(3-0) [0.50]

An introduction to finite automata, formal languages and sequential machines. Models of computation, including Turing machines and the hierarchy of machines/languages. Decidability and computability.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200, CIS*3490, CIS*3530, CIS*3600)

CIS*4750 Artificial Intelligence F(3-1) [0.50]

The following topics will be covered in some detail: heuristic search, A* algorithms, game searches, logic based knowledge representation. Other knowledge representation methods will be introduced, especially frames, scripts, semantic nets and models of uncertain reasoning. An introduction to expert systems. These ideas will be further explored through the development of a substantial project using A.I. software tools. Time permitting, topics such as perception, pattern recognition, natural language understanding etc. may be discussed. Offered in even-numbered years and may be offered in odd-numbered years.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200, CIS*3490, CIS*3530, CIS*3600)

CIS*4760 Computer Vision and Pattern Recognition W(3-0) [0.50]

Image enhancement, image smoothing, thresholding, segmentation, region growing, decision-theoretical methods, information theory, neural networks, syntactic/structural methods, applications. Computer graphic experience expected. Offered in odd-numbered years and may be offered in even-numbered years.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200, CIS*3490, CIS*3530, CIS*3600), (1 of STAT*2040, STAT*2060, STAT*2120)

CIS*4800 Computer Graphics W(3-1) [0.50]

Introduction to computer graphics. Topics include graphics programming concepts, geometrical transformations, viewing 3-D projections, raster graphics, sculptured surfaces, hidden line removal, image processing and other special topics. Practical issues will be covered by assignment using currently available graphics equipment.

Prerequisites: CIS*3110, CIS*3430, (2 of CIS*3200, CIS*3490, CIS*3530, CIS*3600)

CIS*4900 Computer Science Project S,F,W(0-6) [0.50]

Planning, developing and writing a research proposal under individual faculty supervision. The course, in continuation with CIS*4910 provides senior undergraduates an opportunity to pursue an independent course of study. The topic selected will be determined by agreement between the student and the faculty member with expertise in the area.

Prerequisites: 2 C.I.S. course at the 400-level

CIS*4910 Computer Science Thesis S,F,W(0-6) [0.50]

This course is a continuation of CIS*4900. The student will conduct and write an undergraduate thesis under the individual supervision of a faculty member. In addition the student is required to present his/her work in a seminar and also participate in the critical analysis and review of the work of other students taking this course.

Prerequisites: CIS*4900


1999-2000 Undergraduate Calendar
[Table of Contents] [Index] [Glossary]
[Courses by Subject] [Courses by Name] [Awards by Category] [Awards by Name] [Calendar Search]

For general calendar inquiries contact: sdorr@registrar.uoguelph.ca

For Admission inquiries contact: info@registrar.uoguelph.ca

Last revised: January 1999.