University of Guelph 2002-2003 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. Cannot be taken for credit by students taking a major or minor in Computing and Information Science.

Restriction(s): 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. Cannot be taken for credit by students taking a major or minor in Computing and Information Science.

Restriction(s): 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. Cannot be taken for credit by students taking a major or minor in Computing and Information Science.

CIS*1510 Introduction to Object-Oriented Programming W(3-2) [0.25]

To introduce the Object-Oriented (OO) approach to programming and algorithm design. The OO concepts will be explained through the Java program language. Standard programming techniques acquired in CIS*1500 are recast in an OO context and applied to more complex problems. Together with CIS*2650, this course will enable students who began with CIS*1500 to join the computing science mainstream in second year.

Prerequisite(s): CIS*1500

Restriction(s): CIS*1650

CIS*1650 Programming I F,W(3-2) [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 program and for those wishing to take additional computing courses.

Equate(s): 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*2030 Structure and Application of Microcomputers F,W(3-3) [0.50]

Components of a computer system, including memories, CPU, buses, and input/output subsystems and interface hardware. Instruction sets, addressing modes, assembly/machine language programming. Development of algorithms for data acquisition, display, and process control.

Prerequisite(s): (CIS*2650 or IPS*1120), (1 of CIS*1900, ENGG*3450, MATH*2000)

Equate(s): IPS*2010

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 students taking a major or minor in Computing and Information Science.

Prerequisite(s): 1 of CIS*1000, CIS*1200, CIS*1500

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.

Prerequisite(s): 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.

Prerequisite(s): CIS*2650, (CIS*1900 or MATH*2000)

Restriction(s): CIS*2400

CIS*2650 Programming II S,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.

Prerequisite(s): CIS*1600 or CIS*1650

Equate(s): 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.

Prerequisite(s): 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.

Prerequisite(s): CIS*2030 or IPS*2010 are 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 object oriented analysis, design and modelling, software architectures, software reviews, software quality, software engineering, ethics, maintenance and formal specifications.

Prerequisite(s): CIS*3430

CIS*3430 System Analysis and Design in Applications F,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 requirements and specifications, prototyping, design principles, object-oriented analysis and design, standards, integration, risk analysis, testing and debugging.

Prerequisite(s): CIS*2420, (CIS*2400 or 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.

Prerequisite(s): 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.

Prerequisite(s): 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. Students are expected to demonstrate concepts through project assignments.

Prerequisite(s): CIS*2420, (CIS*2400 or CIS*2450)

CIS*3650 Compilers F(3-1) [0.50]

Detailed study of the compilation process. Design and implementation of a compiler considering techniques for parsing building and manipulating intermediate representations of a program and code generation. Interpreters.

Prerequisite(s): CIS*3110, (CIS*2030 or IPS*2010)

CIS*4000 Applications of Computing Seminar S,F,W(0-6) [0.50]

This capstone course of the B.Comp. program provides students an opportunity to combine their area of application with their studies in computing via a course project and seminar series. Application areas discussed in any particular semester will depend on areas of application selected by students. Students are required to present their work in a seminar and also to participate in the critical analysis and review of the work of other students taking this course.

Prerequisite(s): registration in semester 7 or higher of the B.Comp. programand completion of a minimum of 2.50 credits in an area of application

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.

Prerequisite(s): CIS*3110, CIS*3120, (CIS*2030 or 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.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200,CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)]

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.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200, CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)]

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

Prerequisite(s): CIS*3110, CIS*3430, CIS*3530, [1 of CIS*3200, CIS*3490, (CIS*3600 or CIS*3650)]

Restriction(s): 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.

Prerequisite(s): CIS*3110, CIS*3430, CIS*3530, [1 of CIS*3200,CIS*3490, (CIS*3600 or CIS*3650)]

CIS*4450 Special Topics in Information Science U(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 U(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.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200, CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)]

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

Examination of techniques used in the field of artificial intelligence including: heuristic search, A* algorithms, game searches, logic based knowledge representation. Other topics may include frames, scripts, semantic nets, models of uncertain reasoning, expert systems and natural language understanding. These ideas will be explored through the development of a substantial project.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200, CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)]

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 desirable. Offered in odd-numbered years and may be offered in even-numbered years.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200, CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)], (1 of STAT*2040, STAT*2060, STAT*2100, 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, visible surface determination, image processing and other special topics. Practical issues will be covered by assignment using currently available graphics equipment.

Prerequisite(s): CIS*3110, CIS*3430, [2 of CIS*3200, CIS*3490, CIS*3530, (CIS*3600 or CIS*3650)]

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.

Prerequisite(s): 2 C.I.S. courses at the 4000 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.

Prerequisite(s): CIS*4900



Note: when searching for a course code replace the " * " with a blank

Admission inquiries: Admission Services ~ ~ ~ General calendar inquiries: U.P.S. ~ ~ ~ Last revision: 02 October 2002

2002 Office of Registrarial Services, University of Guelph