2002-03 Bulletin
See disclaimer

COMPUTER SCIENCE


COMPUTER SCIENCE (CPTR)


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.
 

INFORMATION TECHNOLOGY (INFO)


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