|
| CPTR 141 INTRODUCTION TO PROGRAMMING | 4 |
Introduction to software engineering principles, computer science and
the C family of programming languages. Laboratory work required.
|
|
|
| CPTR 142, 143 DATA STRUCTURES AND ALGORITHMS | 4, 4 |
Topics include lists, stacks, queues, trees, graphs, ADTs, sorting and
searching, efficiency notations, and hashing. Laboratory work
required. Prerequisite: CPTR 141.
|
|
|
| CPTR 215 ASSEMBLY LANGUAGE PROGRAMMING | 3 |
Introduction to computer architecture, machine language, and assembly
language. Laboratory work required. Prerequisite:
CPTR 141.
|
|
|
| CPTR 235 SYSTEM SOFTWARE AND PROGRAMMING | 4 |
Introduction to Unix, system administration, system software including
database management systems and web servers, and system programming.
Prerequisite: CPTR 141 or
CIS 130.
|
|
|
| CPTR 245 OBJECT-ORIENTED SYSTEM DESIGN | 4 |
Software design and construction in the context of Object-Oriented
Programming libraries. May be taught in C++ or Java. Prerequisite:
CPTR 143.
|
|
|
| CPTR 316 PROGRAMMING PARADIGMS | 3-4 |
Introduces a variety of programming language paradigms and their
implementations. Computer science majors must take four hours.
Computer engineering majors may take three hours. Prerequisites:
CPTR 143, MATH 250
.
|
|
|
| CPTR 345 THEORY OF COMPUTATION | 4 |
Study of the basic theoretical principles of computer science. Areas
covered include automata and formal languages, computability by Turing
machines and recursive functions, uncomputability, and computational
complexity. Emphasis on practical implications. Prerequisite:
MATH 250. Offered odd years only.
|
|
|
| CPTR 350 COMPUTER ARCHITECTURE | 4 |
Study of the organization and architecture of computer systems with
emphasis on the classical von Neumann architecture. Topics include
instruction processing, addressing, interrupt structures, memory
management, microprogramming, procedure call implementations, and
multiprocessing. Laboratory work required. Prerequisites:
CPTR 215, ENGR 354
.
|
|
|
| CPTR 352 OPERATING SYSTEM DESIGN | 4 |
History, evolution, and philosophies; tasking and processes; process
coordination and synchronization; scheduling and dispatch; physical
and virtual memory organization; device management; file systems and
naming; security and protection; communications and networking;
distributed operating systems; and real-time concerns. Laboratory work
required. Prerequisite: CPTR 215.
|
|
|
| CPTR 355 COMPUTER GRAPHICS | 4 |
Introduction to the production of graphical representations of 2- and
3-dimensional objects using the computer. Theory and application of
matrix transform methods to manipulate 2- and 3-dimensional data
structures. Graphical operations include scaling, translation,
rotation, and reflection. Prerequisites:
CPTR 141;
MATH 117 or equivalent. Offered even years only.
|
|
|
| CPTR 415 INTRODUCTION TO DATABASES | 4 |
Introduction to the design, use, and programming of database systems,
and database management system implementation. Prerequisites:
CPTR 143, MATH 250
.
|
|
|
| CPTR 425 INTRODUCTION TO NETWORKING | 4 |
A study of networking algorithms, network architecture, network
elements, data link, switching and routing, end-to-end protocols, data
security, and programming. Prerequisite:
CPTR 352.
|
|
|
| CPTR 435 SOFTWARE ENGINEERING | 4 |
Study of the issues involved in building large software systems.
Topics include the methods, languages, and tools used in contemporary
software development, including process models, project management,
metrics, analysis and design, verification and validation,
reliability, object-oriented concepts, professionalism and ethics.
Prerequisites: CPTR 143,
221.
|
|
|
| CPTR 445 INTRODUCTION TO ARTIFICIAL INTELLIGENCE | 4 |
A survey of key concepts and applications of artificial intelligence
(AI) and an in-depth experience with a language commonly used for
building AI systems. Subtopics include: knowledge representation,
state space/searching, heuristic search, expert systems, expert system
shells, natural language processing, propositional logic, learning,
cognitive models and vision. Prerequisite:
CPTR 143.
|
|
|
| CPTR 454 DESIGN AND ANALYSIS OF ALGORITHMS | 4 |
Application of techniques using asymptotic notations, unit costs, and
recurrence relations to the analysis of algorithms. Covers basic
design strategies by studying the various kinds of classical
algorithms. Proof-of-correctness methods are presented. Examples of
NP-complete and NP-hard problems are discussed. Prerequisites:
CPTR 143 and
MATH 250.
|
|
|
| CPTR 460 PARALLEL AND DISTRIBUTED COMPUTATION | 4 |
Concurrency and synchronization; architectural support; programming
language constructs for parallel computing; parallel algorithms and
computability; messages vs. remote procedure calls vs. shared memory
models, structural alternatives; coupling; naming and winding;
verification, validation, and maintenance issues, fault tolerance and
reliability; replication and avoidability; security; standards and
protocol; temporal concerns; data coherence; load balancing and
scheduling; appropriate applications. Prerequisites:
CPTR 143, MATH 289
. Offered odd years only.
|
|
|
| CPTR 464 COMPILER DESIGN | 4 |
Study of the techniques of translating conventional programming
language source into executable machine codes. Topics include lexical
analysis, syntactic analysis and parsing, static and runtime storage
management, and code generation. Prerequisite:
CPTR 143. Offered even years only.
|
|
|
| CPTR 494 COOPERATIVE EDUCATION | 0-2 |
Individual contract arrangement involving students, faculty, and
cooperating businesses to gain practical experience in an off-campus
setting. Prerequisite: CPTR 143 and
approval of major adviser one quarter in advance of registration.
Graded S or NC.
|
|
|
| CPTR 495 COLLOQUIUM | 0 |
Presentation and discussion of current topics of interest within the
computer science profession. Computer science degree candidates must
satisfactorily complete four quarters, at least one of which must be
during the senior year. Graded S or NC.
|
|
|
| CPTR 496, 497, 498 SEMINAR | 1, 1, 1 |
Presentation and discussion of current topics of interest with
computer science. Each student is required to conduct an approved
design project from conception to final oral and written reports.
Prerequisite: Senior standing in computer science.
|
|
|
| INFO 105 PERSONAL COMPUTING | 3 |
An introduction to personal computing including hardware, operating
system, office applications (word processing, spreadsheets, and
databases) and the Internet. Does not apply toward a major or minor in
computer science. (Course fee $75)
|
|
|
| INFO 150 SOFTWARE APPLICATION | 1 |
Study of application software from a user perspective. Topics vary and
may be repeated for credit when topics vary. Prerequisites vary
depending on the software package and level. See Class Schedule.
|
|
|
| Info 240 WEB TECHNOLOGY | 1 |
Study of web technologies from a web development perspective. Topics
vary and may be repeated for credit. Prerequisite: Permission of
instructor.
|
|
|
| INFO 250 SYSTEM SOFTWARE | 1 |
Study of system software from a user and/or administrative
perspective. Topics vary and may be repeated for credit when topics
vary. Prerequisite: Permission of instructor.
|
|
|
COMPUTER INFORMATION SYSTEMS (CIS)
|
|
See the Business section of this bulletin.
|
|
| CIS 301 MANAGEMENT INFORMATION SYSTEMS | 4 |
|
|
|
|
| CIS 315 SYSTEMS ANALYSIS AND DESIGN | 4 |
|
|
|
|
| CIS 390 INTERMEDIATE NETWORK ADMINISTRATION | 4 |
|
|
|
|
| CIS 440 DATABASE MANAGEMENT SYSTEMS | 4 |
|
|
|
|
| CIS 494 COOPERATIVE EDUCATION/INTERNSHIP | 1-4 |
|
|
|
|
|