
Course: 
Course
Number: 
Introduction
to Computer Science with Applications 
4


Description: 
A course for
nonmajors that introduces the elements, terminology and concepts
of computer science. Concepts of commercial software packages such
as spreadsheets and databases are introduced with some hands on use.
The computer, its operations, hardwaresoftware considerations, comparitive
operating systems and social implications are discussed. No liberal
arts credit. 
Prerequisites:

Credits:

Introduction
to Computer Science with Applications 
3 


Course: 
Course
Number: 
Overview
of Computer Science 
5 

Description: 
Computers, algorithms
and programming; computer hardware and software systems. Pascal programming
of numerical and nonnumerical algorithms. Survey of computer applications.
Brief history of computer science; computers and society. Credit given
for this course or New College ISGG 1, not both. May not be taken
after CSC 15. (Formerly Introduction to Computer Science.) 
Prerequisites:

Credits:

None 
3 


Course: 
Course
Number: 
C for Programmers 
12 

Description: 
The essential
features of C are examined for those already having knowledge of a
highlevel language. (Formerly FORTRAN 77 Overview; FORTRAN 77 for
PL/1 Users.) 
Prerequisites:

Credits:

None 
1 


Course: 
Course
Number: 
Ada Overview 
13 

Description: 
An accelerated
treatment of Ada for those having a good knowledge of at least one
procedural language such as PL/1, FORTRAN, C, or Pascal. Special attention
given to the unconventional part of Ada such as data encapsulation,
exception handling, concurrency and generic subprograms. Included
are conditional execution, type declarations, numeric types, arrays,
records, subprograms, access types, packages and files. (Formerly
Ada for PL/1 or FORTRAN Users.) 
Prerequisites:

Credits:

CSC 15 
1 


Course: 
Course
Number: 
Discrete
Structures 
14 

Description: 
Review of propositional
and predicate logic. Methods of theorem proving; strong and weak induction.
Finite and infinite sets, set operations. Functions, including surjections,
injections, bijections. Equivalence relations and partial orderings.
Matrices and matrix operations. Combinatorics, including permutations
and combinations. Graphs, including simple graphs, directed graphs,
trees, Euler circuits, Hamilton circuits. Introductions to computational
complexity, bigO notation, intractibility. Introduction to recurrence
relations. (3 hours lecture, 1 hour laboratory.) Credit given for
this course or New College NM3, or MATH 14. 
Prerequisites:

Credits:

CSC 15,
MATH 11 or Three years of high school math 
3 


Course: 
Course
Number: 
Fundamentals
of Computer Science I 
15 

Description: 
Introduction
to computer science which emphasizes problem solving, algorithms and
the principles of algorithm construction. C language is used as a
vehicle for implementing these principles. Topics include arrays,
loops, character strings and subprograms. Programming required. Course
follows the current ACM recommended curriculum for "CS1." 
Prerequisites:

Credits:

CSC 5 or
Familiarity with programming 
3 


Course: 
Course
Number: 
Fundamentals
of Computer Science II 
16 

Description: 
Continuation
of 15 using C to implement topics such as subroutines, software development,
files, arrays (searching and sorting), stacks, queues, linked lists.
Programming required. Course follows the current ACM recommended curriculum
for "CS2." 
Prerequisites:

Credits:

CSC 15 
3 


Course: 
Course
Number: 
Logical
Design and Digital Circuits 
32 

Description: 
Introduction
to switching theory and the design of logical networks. Review of
number systems and codes. The formulation of logical equations and
their realization in hardware. Binary arithmetic and its implementation
with logical functions. Combinational and sequential logic networks
are studied. These digital principles are applied to the study of
registers, counters and information processing systems. Same as ENGG
32A. 
Prerequisites:

Credits:

Permission
of instructor 
3 


Course: 
Course
Number: 
Numerical
Methods 
102 

Description: 
Computational
methods useful with modern electric computers. Root of algebraic and
transcendental equations. Matrices; solution of linear algebraic equations
by matrix methods, iteration and relaxation. Homogenuous equations
and eigenvalue problems. Taylor's Series, finite differences. Numerical
integration, interpolation and extrapolation. Solution of initial
and boundary value ordinary differential equations. Programming of
selected problems in engineering and applied science. Same as ENGG
101 and MATH 147. 
Prerequisites:

Credits:

CSC 15
or ENGG 10 
3 


Course: 
Course
Number: 
Introduction
to Computer Architecture 
110 

Description: 
Internal structure
of computers. Logic design: Boolean algebra, gates and flipflops,
synthesis of combinatorial networks, registers, serial and parallel
organization, control mechanisms. Number systems and arithmetic, two'scomplement
arithmetic. Operating cycle, data and control flow in a typical computer.
Interrupts, i/o devices, programmed i/o and DMA. 
Prerequisites:

Credits:

CSC 14,
CSC 16 
3 


Course: 
Course
Number: 
Computer
Architecture Laboratory 
110A 

Description: 
Provides handson
experience in using digital electronics by way of integrated circuits
without engineering bias. Offers practical construction, testing and
implementation of circuits useful in digital circuits and modules.
Same as ENGG 32B. 
Prerequisites:

Credits:

CSC 110,
ENGG 32B 
1 


Course: 
Course
Number: 
Assembly
Language Programming 
111 

Description: 
Organization
of a computer: memory, addressing; number systems and conversion.
Assemblers, base registers, relocation. Fixedpoint numeric processing,
string processing, indexing and iteration. Floatingpoint arithmetic
and Boolean operations. Subroutines, macros, i/o channel programming. 
Prerequisites:

Credits:

CSC 14,
CSC 16 or ENGG 10 or BCIS 50 
3 


Course: 
Course
Number: 
Computer
Operating System 
112 

Description: 
A study of the
internal design of operating systems. Topics include memory management,
multiprogramming, virtual memory, paging and segmentation. Job and
process scheduling; multiprocessor systems; device and file management;
thrashing, cache memory. 
Prerequisites:

Credits:

CSC 110,
CSC 120 
3 


Course: 
Course
Number: 
Algorithms
and Data Structures 
120 

Description: 
The study of
sequential and linked representations of data structures for linear
lists including stacks and queues, structures, arrays and trees. Fundamental
algorithms and their implementation using a blockstructured language
such as C relating to sorting, searching, merging, hashing, graph
theoretic models and recursive procedures. (Formerly Data Structures.) 
Prerequisites:

Credits:

CSC 14,
CSC 16 
3 


Course: 
Course
Number: 
Programming
Languages: Survey, Design and Implementation 
123 

Description: 
A study of the
fundamental principles that distinguish the major families of modern
programming languages. Syntax and the BNF, memory allocation and semantics
of static, stackbased and dynamic languages, abstract data types,
advanced control structures. Some programming in a logicbased language
such as PROLOG. (Formerly Algorithmic Languages.) 
Prerequisites:

Credits:

CSC 161 
3 


Course: 
Course
Number: 
Compiler
Construction 
124 

Description: 
Design and implementation
of compilers for C, Pascal and ALGOL type languages. Lexical scanning,
parsing techniques, semantic analysis and intermediate code generation,
optimization techniques, target code generation. Management of symbol
table; error handling. Programming required. 
Prerequisites:

Credits:

CSC 123 
3 


Course: 
Course
Number: 
Computational
Modeling 
132 

Description: 
Fundamental principles
of modeling and simulation. Methodology including model formation,
design of simulation experiments, analysis of generated data and validation
of results. Survey of applications. Project chosen from area of student's
interest. 
Prerequisites:

Credits:

CSC 15,
CSC or ENGG 185 
3 


Course: 
Course
Number: 
Projects
in Computer Science (1) 
143 

Description: 
Individual or
group projects on selected topics such as the design of computer software
or applications programs. 
Prerequisites:

Credits:

senior
standing & permission of project advisor 
3 


Course: 
Course
Number: 
Projects
in Computer Science (2) 
144 

Description: 
Individual or
group projects on selected topics such as the design of computer software
or applications programs. 
Prerequisites:

Credits:

senior
standing & permission of project advisor 
3 


Course: 
Course
Number: 
Special
Studies 
145 

Description: 
Topics are chosen
from areas of current interest that are not covered in existing course
offerings. Subjects are announced annually. May be repeated for credit
when topics vary. 
Prerequisites:

Credits:

junior
standing & requirement for current topic 
3 


Course: 
Course
Number: 
Unix and
C++ 
155 

Description: 
Introduction
to the UNIX System V. UNIX file systems, processes, commands, shells;
syntax and semantics of the C++ language; portability; C++ library;
CUNIX interface; programmer's workbench; documenters' workbench. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Introduction
to Artificial Intelligence 
158 

Description: 
Survey of concepts
and problems of computers performing tasks which traditionally require
human intelligence. Topics include heuristic search and robotics,
pattern recognition, game playing, theorem proving, questionanswer
systems and natural language processing. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Introduction
to Automata Theory 
161 

Description: 
Definition and
representation of various types of automata such as finite and probabilistic
automata. Representation of automata by state graphs, logical nets
and Turing machines. Computability theory and decision problems of
automata. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Computing,
Ethics, and Society 
163 

Description: 
Critical examnination
of ethical problems associated with computer technology. Discussion
of these problems is conducted within the framework of classical philosophical
ethical theories. Legal and quasilegal(i.e., policy and regulative)
issues are also considered. Topics addressed include the process of
ethical decisionmaking, privacy and confidentiality, computer crime,
professional codes and responsibilities, software piracy, the impact
of computers on society. No liberal arts credit. 
Prerequisites:

Credits:

PHIL 9;
CSC 4, CSC 5 or CSC 15 
1 


Course: 
Course
Number: 
Principles
of Database Management 
170 

Description: 
Introduction
to data modelling, databases, data management systems and query languages.
Hierarchical, network and relational models. The ANSI/SPARC architecture
and conceptual schemas. Entityattribute construction. Existing systems:
IMS, IDMS, DB2, FOCUS, ORACLE, Ingres, SQL; relational algebra and
normalization; database design. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Introduction
to Computer Graphics 
171A 

Description: 
Fundamentals
of twodimensional modern interactive graphics: hardware technologies,
software, data structures, mathematical manipulation of graphical
objects, the user interface and the fundamental implementation of
algorithms. 
Prerequisites:

Credits:

CSC 120,
MATH 19 
3 


Course: 
Course
Number: 
Principles
of Data Communication 
175 

Description: 
A technical introduction
to data communication. Topics include the OSI Reference Model, layer
services, protocols, LANs, packet switching and X.25, ISDN, File transfer,
virtual terminals, system management and distributed processing. 
Prerequisites:

Credits:

CSC 120,
MATH 19 
3 


Course: 
Course
Number: 
Methods
of Random Process 
185 

Description: 
Systematic development
of the concept of probability and random process theory. Topics include
probability and set theory, random variables, density and distribution
functions, multivariate distributions, sampling statistics and distributions,
central limit theorem, estimation and the philosophy of applied statistics.
The material covered is applied to problems in engineering and the
physical sciences. Same as ENGG 185. 
Prerequisites:

Credits:

MATH 20,
CSC 16 
3 


Course: 
Course
Number: 
Design
and Analysis Experiments 
186 

Description: 
Introduction
to the principles and economics of experimental design and statistical
analysis. Emphasis on designs and applications useful in scientific
research and management science. Topics include inferences concerning
one or more means, variances and proportions; regression and correlation;
stratified samplying and analysis of variance; non parametric testing
and factorial experiments. Computer solutions of problems are required.
Same as ENGG 186. 
Prerequisites:

Credits:

CSC 185,
CSC 15 
3 


Course: 
Course
Number: 
Linear
Programming 
187 

Description: 
Elements of matrix
algebra, vector spaces and convex sets pertinent to the theory and
application of linear programming (LP) models. Development of the
simplex method and duality theory. The nature of solutions to systems
of linear equations are related to LP complications and their resolution.
Applications are extended to include the generalized LP problem, transportation,
assignment and network problems. 
Prerequisites:

Credits:

MATH 20,
CSC 16 
3 


Course: 
Course
Number: 
Software
Engineering: Theory and Practice 
190 

Description: 
A capstone course
for computer science majors which applies concepts learned throughout
the curriculum. Students study the nature of the program development
task when many people, module and versions are involved in designing,
developing and maintaining a large program or system. Issues addressed
include program design, specification, version control, cost estimation
and management. Students work in small teams on the cooperative examination
and modification of existing systems. (Formerly Project in Software
Engineering.) 
Prerequisites:

Credits:

senior
status or permission of deparment chairperson 
3 


Course: 
Course
Number: 
Computer
Science Intership I 
195 

Description: 
Internship course
for qualified senior computer science majors. Students work approximately
one day per week with a participating industry or research concern
and are jointly supervised by department chairperson and is dependent
on student's record and availability of placement. 
Prerequisites:

Credits:

permission
of deparment chairperson 
3 


Course: 
Course
Number: 
Computer
Science Intership II 
196 

Description: 
Internship course
for qualified senior computer science majors. Students work approximately
one day per week with a participating industry or research concern
and are jointly supervised by department chairperson and is dependent
on student's record and availability of placement. 
Prerequisites:

Credits:

permission
of deparment chairperson 
3 


Course: 
Course
Number: 
Themes
of Computer Science 
200A 

Description: 
Designed as a
transition course for those students who wish to do graduate work
in computer science but who need additional preparation. Covers such
topics as theoretical foundations, logic, induction, scientific models
and formal aspects of programming. May not be taken on a Pass/Fail
basis. No credit toward the M.A. or M.S. degree in Computer Science. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Mathematical
Logic 
201A 

Description: 
The propositional
calculus: truth tables and axiomatizations. First order theories:
completeness theorem, formal number theory, Godel's incompleteness
theorem. Same as MATH 202. 
Prerequisites:

Credits:

MATH 145
or CSC 161 
3 


Course: 
Course
Number: 
Logic Application
to Software 
201B 

Description: 
Application of
predicate logic and nontruth functional logics to software design
and use. Logic programming (PROLOG), database and telecommunications
schemata, query analysis, correctness proofs for subroutines, operating
system kernels, security. Finite state machines and temporal logic
applied to protocol specification. 
Prerequisites:

Credits:

CSC 201A
or MATH 202 
3 


Course: 
Course
Number: 
Computability 
202 

Description: 
Mathematical
language of theoretical computer science (sets, ntuples, relations,
functions, languages, predicates, quantifiers, proof methods such
as induction, diagonalization and the pigeonhole principle). The equivalence
of various models of computation (Church's Thesis): Turing machines,
extended Turing machines, nondeterministic Turing machines, the mrecursive
functions. Primitive recursive functions, Godel numbering, the halting
problem, other unsolvable problems as time permits. Recursive sets
and recursively enumerable sets. 
Prerequisites:

Credits:

CSC 161 
3 


Course: 
Course
Number: 
Algorithms
I: Sorting and Searching 
204 

Description: 
Basic techniques
for estimating the efficiency of algorithms. Searching algorithms:
sequential, binary, Fibonacci, tree search, tries, hashing (study
of several hash functions). Sorting algorithms: heapsort, mergesort,
quicksort, binsort. Balanced trees: AVL trees, Hoffman's algorithm.
Equivalence relations and compressed balanced trees. Topological sorting.
External sorting: merge sorting, multiway merge, Btrees (23 trees,
5way trees). 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Algorithms
II: combinatorial Algorithms 
205 

Description: 
String and pattern
matching algorithms. Maximum flow. Other graph algorithms: spanning
trees, shortest path, transitive closure, biconnectivity, strong connectivity,
and the like. Fast median algorithm. Fast matrix multiplication. Fast
matrix inversion. 
Prerequisites:

Credits:

CSC
120 
3 


Course: 
Course
Number: 
Analysis
of Algorithms and Complexity Theory 
206 

Description: 
Asymptotics,
recurrence relations, lower bound theory including comparison trees
for sorting and searching. Oracles. Lower bounds on parallel computation.
Combinatorial optimization. Branch and bound: Knapsack problem, FFT
and applications. Integer and polynomial arithmetic. Analysis of divide
and conquer algorithms, dynamic programming, greedy algorithms, backtracking.
Nondeterministic algorithms. The classes P and NP. NP completeness.
Complexity hierarchy. 
Prerequisites:

Credits:

CSC 161 
3 


Course: 
Course
Number: 
Advanced
Data Structures 
207 

Description: 
Managing multiple
stacks and queues. Stack series. Permutations obtainable from stacks
and queues. Concatenatable queues. Locating repeated substrings: an
application of stacks. Stack and queue operation sequences. Set representation
methods. The unionfind algorithm. Trees: Robson traversal, Lindstrom
scanning, Siklossy traversal. Generalized lists. Mergeable heaps.
Files as a data structure. Storage compaction. Garbage collection. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Formal
Languages, Grammars and Automata 
208 

Description: 
Languages, the
grammars that generate them and the machines that accept them. Regular
languages. Finite automata deterministic and nondeterministic. Transition
functions and state diagrams. Contextfree languages and pushdown
automata. Contextfree grammars and compiler design. Contextsensitive
languages and linearbounded automata. Closure results. 
Prerequisites:

Credits:

CSC 161 
3 


Course: 
Course
Number: 
Database
Design II 
212 

Description: 
Advanced aspects
of the IMS data model and data sublanguage. A study of the network
database design including the COADASYL DBTG system. A comparative
analysis of the relational, hierarchical and network approaches to
database design. 
Prerequisites:

Credits:

CSC 254 
3 


Course: 
Course
Number: 
Computer
Modeling 
214 

Description: 
Construction
of models for computer simulation of real systems. Application of
probability and distribution theory, statistical estimation techniques,
Monte Carlo methods. Application of modeling to largescale political
and social systems. Implementation on computer using various simulation
languages. Pass/Fail option for nonmajors only. Credit given for this
course or CSC 132, not both. (Formerly Advanced Computer Modeling.) 
Prerequisites:

Credits:

CSC 16,
CSC 185 
3 


Course: 
Course
Number: 
Quantitative
Approaches to Decision Making 
216 

Description: 
The role of operations
research and management science in the decisionmaking process integrated
with the development and use of computer programs for problem solving.
Topics include network analysis, decision theory, inventory models,
waiting line models, dynamic programming, Markov processes, and parametric
and integer programming. No credit toward the M.S. degree in Computer
Science. 
Prerequisites:

Credits:

CSC 185 
3 


Course: 
Course
Number: 
Compiler
Construction II 
226 

Description: 
Formal grammars
and passing methods. Recursive descent, simple and higher order precedence,
LR (k) parsers. The mathematical theory of global program optimization.
Flow graphs, intervals, dataflow analysis dependency and redundancy
equations. Loop optimization. No credit toward the M.S. degree in
Computer Science. 
Prerequisites:

Credits:

CSC 185 
3 


Course: 
Course
Number: 
Survey
of Programming Languages 
252 

Description: 
Survey and comparative
analysis of highlevel languages such as PL/1, FORTRAN, SNOBOL, LISP,
APL, Pascal, ALGOL, C, Ada, SETL, with emphasis on special features.
Consideration of data types, control structures, storage allocation
and other programming language constructs. Credit given for this course
or CSC 123, not both. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Design
of Programming Languages 
253 

Description: 
Topics include:
libraries, subroutines, parameter transmission, data abstraction,
exception handling, design and implementation of Ada, Simula 67, SETL.
Concurrency, inputoutput, functional programming, dataflow programming
languages, VAL, objectoriented programming languages. 
Prerequisites:

Credits:

CSC 207,
CSC 252 or CSC 123 or CSC 120 
3 


Course: 
Course
Number: 
Database
Design 
254 

Description: 
Study current
methods of information system design. Data independence, data models
and sublanguages. An overview of the hierarchial, relational and network
approaches to database design. An indepth study of the relational
database design. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Database
Laboratory 
255 

Description: 
Engineering aspects
of database systems. Students create a database system using a data
definition language and manipulate it using a data manipulation language
(query language). 
Prerequisites:

Credits:

CSC 254 
3 


Course: 
Course
Number: 
Advanced
Operating Systems Design 
256 

Description: 
Analytical models
of operating systems. An examination of the major models that have
been used to study operating systems and the computer systems which
they manage. Petri nets, dataflow diagrams and other models of parallel
behavior are studied. Introduction to the fundamentals of queuing
theory. 
Prerequisites:

Credits:

CSC 112 
3 


Course: 
Course
Number: 
Compiler
Construction 
258 

Description: 
Design and implementation
of compilers for Pascal and ALGOLtype languages. Lexical scanning,
symbol tables, BNF grammars, parsing techniques. Error detection and
diagnostics. Data representation, data structures, runtime storage
organization and dynamic storage allocation. Semantic routines, internal
forms, code generation and optimization techniques. Credit given for
this course or CSC 124, not both. 
Prerequisites:

Credits:

CSC 110,
CSC 161 
3 


Course: 
Course
Number: 
Compiler
Construction Laboratory 
259 

Description: 
Handson experience
writing and debugging lexical analysis and parsing phases of compilers.
Memory management: stacks and heaps. Dataflow analysis, error handling
and patching. Highperformance compilers. 
Prerequisites:

Credits:

CSC 258 
3 


Course: 
Course
Number: 
Conbinatorics
and Graph Theory 
260 

Description: 
Study of combinatorial
and graphical techniques for complexity analysis including generating
functions, recurrence relations, Polya's theory of counting, planar
directed and undirected graphs, and NPcomplete problems. Applications
of the techniques to analysis of algorithms in graph theory, and sorting
and searching. 
Prerequisites:

Credits:

CSC 205 
3 


Course: 
Course
Number: 
Numerical
Methods I: Analysis 
265 

Description: 
Floatingpoint
arithmetic. Finitedifference calculus. Polynomial, inverse, spline
interpolation. Approximation: least squares, polynomial, Chebyshev,
rational functions. Numerical integration and differentiation. Solution
of nonlinear equations. Solution of ordinary differential equations.
Same as MATH 265. 
Prerequisites:

Credits:

CSC 102
or ENGG 101 or MATH 147 
3 


Course: 
Course
Number: 
Numerical
Methods II: Linear Algebra 
267 

Description: 
Review of linear
algebra. Direct methods for linear equations. Norms, condition numbers,
error analysis. Relaxation and iterative methods. Solution of eigenvalue
problems. Boundaryvalue problems and overdetermined systems. 
Prerequisites:

Credits:

CSC 265 
3 


Course: 
Course
Number: 
Computer
Graphics 
269 

Description: 
Survey of the
hardware, software and techniques used in computer graphics. Three
types of graphics hardware: refresh, storage and raster scan. Twodimensional
transformation, clipping, windowing, display files, input devices.
Three dimensional graphics covered as time permits. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Artificial
Intelligence I 
270 

Description: 
Goals of artificial
intelligence, statespace search methods, optimal search, chronological
backtracking, dependencydirected backtracking, BLOCKSWORLD, and/or
trees and goals, question answering, production systems, expert system
examples, minimaxing with alphabeta pruning and game playing. Control
paradigms, GPS, geometric analogies, SOUNDEX code, propagating numeric
constraints, inductive inference and computer learning, introduction
to mechanical theorem proving for the propositional logic. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Artificial
Intelligence II 
271 

Description: 
Rigorous study
of optimal search methods, decomposable and commutative production
systems, mechanical theorem proving for the predicate logic, skolem
functions, more on computer learning, introduction to LISP, pattern
matching, introduction to natural language processing, use of logic
in problemsolving and problem representation, readings from the literature. 
Prerequisites:

Credits:

CSC 270 
3 


Course: 
Course
Number: 
Natural
Language Processing 
274 

Description: 
Study of NLP
systems such as questionanswering systems, dialogue systems, paraphrasing
and summarizing systems, etc. Transformational grammars, augmented
transition networks, frames, semantics, logic in NLP. The computational
applicability of various linguistic frameworks. 
Prerequisites:

Credits:

CSC 270 
3 


Course: 
Course
Number: 
Pattern
Recognition 
275 

Description: 
Feature evaluation,
selection and extraction; similarity measures and classifications.
Maximum likelihood, minimax procedures. Data structures for recognition.
Applications to image and character recognition, chemical analysis,
speech and voice recognition, automated medical diagnosis. 
Prerequisites:

Credits:

CSC 120 
3 


Course: 
Course
Number: 
Robotics 
276 

Description: 
Surveys geometrical,
kinematic, dynamic and software issues relating to the design and
use of robot manipulators. Motion in threedimensional space, force
sensors, LED sensors, robot programming languages, (e.g., AML) and
parts assembly using robots. Experimental research involving robot
sensors of various kinds. 
Prerequisites:

Credits:

MATH 29,
CSC 120 
3 


Course: 
Course
Number: 
Expert
Systems 
278 

Description: 
Survey of existing
expert systems and the principles that underlie them. Production systems,
problemsolving systems. Representation of knowledge, including data
structures for knowledge representation. Machine learning; reasoning
about problems. Programming techniques; introduction to Prolog and
LISP languages; expertsystem generators. 
Prerequisites:

Credits:

CSC 270 
3 


Course: 
Course
Number: 
Computer
Vision 
279 

Description: 
Surveys the tools
used in image formation, mathematical foundations of the Canmar processing
method. Segmented images, texture, pattern recognition, matching,
inference, 2D and 3D structures, relaxation labelling, enhancements
and deblurring. 
Prerequisites:

Credits:

CSC 270 
3 


Course: 
Course
Number: 
Logic Design
and Switching Theory 
280 

Description: 
Review of Boolean
algebra and combinatorial circuits. Karnaugh maps. Finitestate transducers.
Deterministic and nondeterministic finitestate automata. State minimization,
incompletelyspecified machines, testing sequences. Lattices, regular
sets. 
Prerequisites:

Credits:

CSC 110 
3 


Course: 
Course
Number: 
RealTime
Systems 
282 

Description: 
A comprehensive
examination of realtime systems from inception to implementation,
focusing on introductory hardware and software concepts, design of
applications programs, function and structure of online operating
systems, organization of files and databases. Testing of online systems.
Basic theory of data transmission and telecommunications access methods. 
Prerequisites:

Credits:

CSC 110,
CSC 112 
3 


Course: 
Course
Number: 
Computer
Communication Networks and Distributed Processing 
284 

Description: 
Introduction
to data communication. Standard protocols and methods. Detailed study
of an existing network (e.g., AR Panet). Problems, techniques and
performance measurements. Problems and methods for distributed processing
and distributed databases. 
Prerequisites:

Credits:

CSC 112 
3 


Course: 
Course
Number: 
Computer
Organization I 
286 

Description: 
A comparative
analysis of the design and capability of microprocessors, minicomputers
and large scale systems. Multiprocessor systems, distributed systems,
LSI technology, emulators and microprogramming, high speed buffer
storage, parallelisms, pipeline computers. A review of current and
future trends in computer design. 
Prerequisites:

Credits:

CSC 110,
CSC 112 
3 


Course: 
Course
Number: 
Computer
Organization II 
287 

Description: 
Design and evaluation
of computer system models. Modelling languages and simulation. Design
automation of digital systems. Memory hierarchies and I/O processing.
Highly parallel architectures; array processors. Use of pipelining
in computer architectures. Highlevellanguage machines. 
Prerequisites:

Credits:

CSC 286 
3 


Course: 
Course
Number: 
Seminar:
Special Topics 
290 

Description: 
Topics are chosen
from areas of current interest such as microprocessors, minicomputers,
structured programming, computerresource management, newly released
computer systems, new programming languages, heuristic programming,
automaticdeductive systems, parsing methods, compiler optimization,
theory of computability, formal languages and automata. May be repeated
when topics vary. 
Prerequisites:

Credits:

permission
of department 
3 


Course: 
Course
Number: 
Independent
Projects 
300 

Description: 
Credit given
for this course or CSC 301302, not both. 
Prerequisites:

Credits:


3 


Course: 
Course
Number: 
Thesis
(1) 
301 

Description: 
Advanced project
carried out by the student, under supervision of a faculty member.
An oral presentation is required as well as a written thesis. Credit
given for CSC 300 or 301302, not both. 
Prerequisites:

Credits:


3 


Course: 
Course
Number: 
Thesis
(2) 
302 

Description: 
Advanced project
carried out by the student, under supervision of a faculty member.
An oral presentation is required as well as a written thesis. Credit
given for CSC 300 or 301302, not both. 
Prerequisites:

Credits:


3 

