Kenneth Wiggins, Chair; Larry Aamodt, Jonathan Duncan, James Klein.
Computer science is the study of the representation, storage, and manipulation of information. The Department of Computer Science prepares its students for both graduate study and careers in computer science, system analysis and design, software engineering, and networking.
The department offers programs leading to the Bachelor of Arts, Bachelor of Science and Associate of Science degrees. The department cooperates with the School of Engineering in offering a computer engineering concentration in the Bachelor of Science in Engineering Degree. The School of Business and The Department of Computer Science jointly offer a major in information systems (B.S.).
The Bachelor of Science degree will prepare students for careers or graduate study in computer science. The Bachelor of Arts degree will prepare students for careers in fields applying computer information and technology. The Bachelor of Science in Engineering with a concentration in computer engineering will prepare students for careers or graduate study in both computer science and computer engineering.
A student majoring in computer science must complete 47 quarter hours in the major, the required cognates, the general studies program, and all baccalaureate degree requirements as outlined in this bulletin. Senior students are required to take the MFT exam in computer science. Students planning to go to graduate school in computer science should also take the Graduate Record Examination, general and subject (Computer Science) sections.
Major Requirements:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms and Objects |
4, 4 |
|
CPTR |
Assembly Language Programming |
3 |
|
CPTR |
Programming Languages |
4 |
|
CPTR |
Theory of Computation |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Design and Analysis of Algorithms |
4 |
|
|
|
Electives (8 must be upper division) |
16 |
*Electives must be chosen in consultation with and approved by the academic adviser and will typically have one of the following prefixes: CIS, CPTR, ENGR, or MATH. |
47 |
||
Cognates:
ENGR |
Digital Logic |
3 |
|
MATH |
Survey of Calculus |
|
|
|
or |
|
4 |
MATH |
Analytic Geometry and Calculus I |
|
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
|
MATH |
Applied Statistics |
|
|
|
or |
|
4 |
MATH |
Probability and Statistics |
|
A student majoring in computer science must complete the major core requirements, major cognate requirements, the general studies program, and all baccalaureate degree requirements as outlined in this bulletin. In addition, students must choose to complete one of three options. Senior students are required to take the Major Field Test. Students planning to go to graduate school in Computer Science should also take the Graduate Record Examination, general and subject (Computer Science) sections.
Core Requirements:
CPTR |
Introduction to Programming |
4 |
|
CPTR |
Data Structures, Algorithms, and Objects |
4, 4 |
|
CPTR |
Assembly Language Programming |
3 |
|
CPTR |
Programming Languages |
4 |
|
CPTR |
Theory of Computation |
4 |
|
CPTR |
Operating System Design |
4 |
|
CPTR |
Design and Analysis of Algorithms |
4 |
|
CPTR |
Seminar |
3 |
|
|
|
|
34 |
Cognates:
ENGR |
Digital Logic |
3 |
|
MATH |
Analytical Geometry and Calculus I-III |
12 |
|
MATH |
Applied Statistics |
|
|
|
or |
|
4 |
MATH |
Probability and Statistics |
|
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
The Embedded Systems Concentration serves students who want a career that is focused on developing computer-based devices.
CPTR |
Computer Architecture |
4 |
|
CPTR |
Software Engineering |
4 |
|
ENGR |
Circuit Analysis |
4 |
|
ENGR |
Embedded System Design |
4 |
|
ENGR |
Digital Design |
4 |
|
|
|
*Electives (Must be CPTR) |
8 |
|
|
|
28 |
The Software Systems Concentration serves students who want a career as software developers and who want to become expert at developing large scale software, working in teams, and producing products that meet customer needs.
CPTR |
Web Application Development |
4 |
|
CPTR |
Java and Object-Oriented System Design |
4 |
|
CPTR |
Introduction to Database Systems |
4 |
|
CPTR |
Software Engineering |
4 |
|
|
|
Electives (4 must be upper-division CPTR) |
12 28 |
The Preparation for Graduate Study Concentration serves students who want to prepare to enter professional training in a graduate program.
CPTR |
Computer Architecture |
4 |
|
CPTR |
Introduction to Networking and Computer I/O |
4 |
|
CPTR |
Introduction to Artificial Intelligence |
4 |
|
|
|
*Electives (4 must be upper-division CPTR) |
16 28 |
|
*Electives must be chosen in consultation with and approved by the academic adviser and will typically have one of the following prefixes: CIS, CPTR, ENGR, or MATH. |
|
|
See the computer engineering concentration in the School of Engineering section of this bulletin.
The information systems major is a joint program offered by the School of Business and the Computer Science Department. See the Interdisciplinary Programs section of this bulletin.
A student specializing in computer programming must complete the area requirements, the required cognates, the general studies program, and all associate degree requirements as outlined in this bulletin.
Area Requirements:
CPTR |
Introduction to Programming |
4 |
||
CPTR |
Data Structures, Algorithms and Objects |
8 |
||
CPTR |
Assembly Language Programming |
3 |
||
CPTR |
Web Application Development |
4 |
||
CPTR |
Java and Object-Oriented System Design |
4 |
||
|
|
*Electives |
30 |
|
|
53 |
|||
|
*Electives must be chosen in consultation with and approved by the academic adviser and will typically have one of the following prefixes: CIS, CPTR, ENGR, or MATH. |
|
||
Cognates:
MATH |
Survey of Calculus |
|
|
|
or |
|
4 |
MATH |
Analytical Geometry and Calculus I |
|
|
MATH |
Applied Statistics |
4 |
|
MATH |
Discrete Mathematics |
4 |
|
MATH |
Linear Algebra and Its Applications |
3 |
A student minoring in computer science must complete 30 quarter hours chosen in consultation with and approved by the academic adviser from the following prefixes: CIS, CPTR, ENGR, MATH. Four credits must be upper division.
The information systems minor is a joint program offered by the School of Business and the Computer Science Department. See the Interdisciplinary Programs section of this bulletin.
CPTR 110 PRINCIPLES OF COMPUTING 2
An introduction to the field of computing including the history and current trends of computing; social and ethical issues; hardware and software concepts; language, spreadsheet, and database applications; and the internet. Does not apply to major or minor in computer science. Does not apply toward a major in computer science.
CPTR 141 INTRODUCTION TO PROGRAMMING 4
Programming-in-the-small, introducing computer science principles and software engineering concepts for designing, coding, executing, and debugging within the C family of programming languages. Laboratory work required.
CPTR 142, 143 DATA STRUCTURES, ALGORITHMS AND OBJECTS 4, 4
Topics include lists, stacks, queues, trees, graphs, searching, sorting, and hashing using concepts of object-oriented programming, space-time efficiency, and software engineering. Team projects and 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 WEB APPLICATION DEVELOPMENT 4
Introduction to web application development including UNIX systems software, web servers, database management systems, server - and client - side scripting languages, mark-up languages, and GUI design. Laboratory work and project required. Prerequisite: CPTR 141 or other programming experience. Offered even years only.
CPTR 301 JAVA AND OBJECT-ORIENTED SYSTEM DESIGN 4
Software design and construction in the context of Object-Oriented Programming libraries. Laboratory work required. Prerequisite: CPTR 143. Offered odd years only.
CPTR 316 PROGRAMMING LANGUAGES 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. Laboratory work required. Prerequisites: CPTR 143.
CPTR 345 THEORY OF COMPUTATION 4
Study of the basic theoretical principles of computer science. Areas covered include Chomsky's Hierarchy of formal languages, grammars, and machines; computability by Turing machines and recursive functions, non-computability, and computational complexity. Emphasis on practical implications. Offered even 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
Principles of operating systems, process management, memory management, file system management, device management, resource allocation, security and protection. Laboratory work required. Prerequisite: CPTR 143, 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 affine matrix transformations to manipulate these objects. Subtopics include fractals and interated function systems (IFS tables), graftals, Beziér curves, stereopsis, animation and morphing. Pair programming and laboratory work required. Prerequisites: CPTR 141; MATH 117 or equivalent. Offered even years only.
CPTR 415 INTRODUCTION TO DATABASE SYSTEMS 4
Fundamental concepts, system organization, and implementation of database systems. The Relational data model, query languages; database design and normal forms. Laboratory work required. Prerequisites: CPTR 143, MATH 250. Offered odd years only.
CPTR 425 INTRODUCTION TO NETWORKING AND COMPUTER I/O 4
Concepts, principles, and implementation of modern computer I/O; networks, protocol layers, networking algorithms, and I/O programming. Laboratory work required. Prerequisite: CPTR 352.
CPTR 435 SOFTWARE ENGINEERING 4
Fundamentals of software engineering using a group project as the basic vehicle. Topics covered include software quality characteristics, the software engineering process, life cycles, and tools; the issues involved in building large software systems, professionalism, and ethics. Laboratory work required. Prerequisites: CPTR 143.
CPTR 445 INTRODUCTION TO ARTIFICIAL INTELLIGENCE 4
A survey of key concepts and applications of artificial intelligence (AI) with languages commonly used for building AI systems. Subtopics include propositional logic, knowledge representation, state space/searching, heuristic search, expert systems, expert system shells, natural language processing, and cognitive learning models. Team project and laboratory work required. Prerequisite: CPTR 143. Offered odd years only.
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 analyzing and implementing algorithms. Proof-of-correctness methods are presented. Examples of NP-complete and NP-hard problems are discussed. Laboratory work required. Prerequisites: CPTR 143 and MATH 250. Offered odd years only.
CPTR 460 PARALLEL AND DISTRIBUTED SYSTEMS 4
Concepts of distributed and parallel systems; parallel and distributed architectures, parallel programming languages, parallel algorithms. Programming in one or more high-level parallel language. Laboratory work required. Prerequisites: CPTR 143, MATH 289. Offered even years only.
CPTR 464 COMPILER DESIGN 4
Fundamentals of compilers and interpreters; symbol tables; lexical analysis, syntax analysis, semantic analysis, code generation, and optimization for general purpose programming languages. Laboratory work required. Prerequisite: CPTR 143, CPTR 215. Offered even years only.
CPTR 494 COOPERATIVE EDUCATION 0-2; 8
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. Required each quarter of all Junior and Senior CS majors. Graded S or NC.
CPTR 496, 497, 498 SEMINAR 1, 1, 1
Presentation and discussion of current topics of interest within 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 250 SYSTEM SOFTWARE 1; 8
Study of system software from a user and/or administrative perspective. Topics vary and may be repeated for credit. Prerequisite: Permission of instructor.