This is an archived copy of the 2016-2017 catalog. To access the most recent version of the catalog, please visit

Computer Science

Interdisciplinary Major and Minor
(Bachelor of Science)

The field of computer science is undergoing great changes as technology advances and the need for computer software increases. Students entering this field must not see a bachelor’s degree in computer science as the culmination of study in the field. Rather, they must see it as the first step in a continuing education process that will last as long as they choose to stay in the field. The goal of the Computer Science major is to provide students with a strong foundation upon which they can continue to build as the field changes. Students can receive instruction in areas such as software design and project management, object-oriented programming, design of algorithms, operating systems, database management systems, neural networks, computer graphics, network programming, and more.

Computer science courses are often mistaken for programming courses. In reality, they require much more than learning and mastering a programming language. The heart of software design is not the language, but the ability to define a problem, analyze various components, and project and evaluate potential solutions, all of which must be scalable and robust. This must also be done under the constraint that they are subject to limitations and constraints inherent in a given computer. Students must understand that in industry there must be more than just a working program. Good software must not only work but must be fully documented, clearly written, easily modifiable to meet changing and more extensive requirements, and engineered for stability, security, and correctness.

Equally important, the program provides a theoretical base for computer science and helps students understand there is more to computer science than software development. Students develop skills they can use upon graduation but they must be prepared to enter a field which is both diverse and rapidly changing and they must be able to adapt to new technologies. This requires a solid theoretical foundation with knowledge of how computers work and how they carry out tasks specified in applications software. It requires that students think beyond writing software and explore areas such as neural networks, computer graphics, algorithm analysis, or scientific applications. This knowledge is an important ingredient to professional development as it gives them the tools they need to analyze efficiency and evaluate various programming and data design options and to see the possible futures as computer science evolves. Simply providing them with skills necessary to enter the computing profession is not sufficient. Each student must be prepared to apply what he or she has learned in order to adapt to the inevitable changes that will occur. Each must also have the ability to learn new ideas and apply them.

Graduates of the Computer Science program are prepared to continue their education at the graduate level or to apply for entry-level positions in industry. Typical entry-level jobs are programmer or programmer/analyst positions.

Students interested in computing have several options. The interdisciplinary major in Computer Science offers an expanding array of theoretical and applied work that prepares software engineers ready to enter the job market or pursue graduate work. The minor in Computer Science offers ground in basic skills and an upper-level flexible approach that can be used to augment many majors, from business to the design arts and humanities. The Information Technology emphasis of the Information Sciences major prepares students for careers as IT professionals. Supporting courses in all these programs overlap so that students may explore their options without adding time to graduation.

All registered students have access to the University’s computing facilities. Student accounts allow students to access a wide variety of both PC-compatible and Macintosh computers, Linux and database servers (for select courses), various software developer environments, and of course the internet. Also, because of the department’s participation in the Microsoft Academic Alliance, those enrolled in Computer Science courses are also entitled to home-use rights for a variety of Microsoft products. Labs are open seven days per week and are staffed by consultants who provide assistance in using the facilities. Classrooms also have network connections which allow demonstrations of software and internet applications to be integrated with classroom lectures. There is also a Computer Science teaching lab with 28 workstations and display facilities that support Computer Science instruction.

Computer Science courses have a strict prerequisite structure. It is imperative that students learn what courses are prerequisites for others and when they are offered. Students are strongly encouraged to talk to an adviser very early in their college career.

Students seeking information on teacher certification should contact the Education Office.

The following is only an example of a four-year Computer Science degree program and is subject to change without notice. Students should consult a Computer Science program advisor to ensure that they have the most accurate and up-to-date information available about a particular four-year degree option.

Computer Science Curriculum Guide

Phillip G Clampitt; Professor; Ph.D., Kansas, chair

Ankur Chattopadyay; Assistant Professor; Ph.D., University of Colorado at Colorado Springs

Benjamin Jay Geisler; Lecturer; M.S., UW-Madison


COMP SCI 201. Introduction to Computing & Internet Technologies. 4 Credits.

Introduction to the history of computing, overview of computers, how they work, and relevant applications, especially to web site creation. Introduction to procedural programming and an emphasis on ASP.NET using Microsoft Web Development tools part of the Microsoft Visual Studio.NET programming environment, the basics of HTML, CSS, and JavaScript.
Fall and Spring.

COMP SCI 221. Database Design & Management. 3 Credits.

This introductory course focuses on how databases and database systems work and how they are used in various data-driven applications. The course covers relational databases, SQL, different ways of designing databases, and management of databases. The course provides hands-on experience with exercises using SQL Server and Microsoft Access and includes group discussions. The course also introduces some advanced topics, including database security, data privacy, data analytics, and big data. Working knowledge of Microsoft Office suite and Windows is required for this course.
Fall Only.

COMP SCI 231. Introduction to IT Operations. 3 Credits.

This course covers the basic knowledge and skills needed to plan, design, control and monitor Information Technology services and infrastructure. Topics include the fundamentals of asset management, service provisioning, and functional operations. This course serves as an introduction to careers in the IT field.
Fall Only.

COMP SCI 232. Introduction to Mobile Platforms and Apps. 3 Credits.

An introduction and survey to the world of mobile computing. Each student will design, develop and produce their own app. Topics covered will include areas such as models of mobile information, GPS services, social networking, casual gaming, networked games, business apps, and information gathering -- all from the perspective of mobile platforms.
Fall Only.

COMP SCI 240. Discrete Mathematics. 4 Credits.

Study of topics in mathematics that do not depend upon the limit process, including: number systems, set theory, logic, counting techniques, matrix manipulation, recursion, mathematical induction, graph theory, recurrence relations, and finite state machines. Techniques, computations, and data representations to facilitate problem-solving by hand and by computer.
P: MATH 104 with at least a C grade or Math Placement of MATH 202 or greater
Fall and Spring.

COMP SCI 256. Introduction to Software Design. 4 Credits.

Students will learn a language common to software design and be introduced to software design techniques. This includes the problem statement, solution design, program testing, implementation, debugging, and final documentation.
P: COMP SCI 201 with at least a C grade and MATH 104 or Math Placement of MATH 202 or greater.
Fall and Spring.

COMP SCI 299. Travel Course. 1-4 Credits.

Travel courses are conducted to various parts of the world and are led by one or more faculty members. May be repeated to different locations.
P: cons of instr & prior trip arr & financial deposit.

COMP SCI 316. Advanced Software Design. 4 Credits.

A continuation of COMP SCI 256, this course deals with larger projects, more complex problems, and group work. It introduces linear data structures and their implementations. It also develops the object oriented design paradigm to include inheritance and polymorphism.
P: COMP SCI 256 with at least a C grade.
Fall and Spring.

COMP SCI 331. Internet Programming. 3 Credits.

The purpose of the course is to familiarize students with current Internet technologies to create dynamic database-driven web sites. The emphasis is on server-side programming and on practical Web development techniques and skills.
P: COMP SCI 201 and 316 with at least a C grade.

COMP SCI 351. Data Structures. 4 Credits.

Concepts involved in storage, retrieval and processing data. Emphasis is on the design of software with complex data retrieval needs and on non-linear structures such as generalized lists, trees, and graphs.
P: COMP SCI 240 with a C grade or better AND COMP SCI 371 with a C grade or better

COMP SCI 352. Computer Graphics and Animation. 3 Credits.

Basic techniques of computer graphics, such as point and line plotting, clipping and windowing using the OpenGL platform. Use of graphics hardware; construction of graphics packages. Basic animation techniques.
P: COMP SCI 240 with at least a C grade and COMP SCI 316 with at least a C grade
Fall Odd.

COMP SCI 353. Computer Architecture and Organization. 3 Credits.

Data representation, assembly language, procedure call protocols, memory, cache, and bus organizations, comparison of processor architectures, I/O systems, logic circuits, Boolean algebra.
P: COMP SCI 240 and 316 with a C grade or better.
Fall Only.

COMP SCI 358. Data Communication and Computer Networks. 3 Credits.

Transmission media, analog and digital signals, modulation, compression, error detection methods, security and encryption protocols, Ethernet standards, TCP/IP protocols, routing algorithms, Internet and steraming applications.
P: COMP SCI 316 with at least a C grade.
Spring Odd.

COMP SCI 360. Systems Analysis and Project Management. 3 Credits.

This course explores both traditional and new emerging approaches to systems development, analysis, design, and project management, and also discusses professional and ethical responsibilities.
P: COMP SCI 221 and 371 with at least a C grade
Fall Only.

COMP SCI 361. Information Assurance and Security. 3 Credits.

An exploration of the fundamentals of information assurance and security (IAS). The course will introduce the underlying concepts of IAS in context of today's society. It will explore the security & ethical issues in information and computing from the perspective of today's computing world. It will discuss the appropriate remedies and defense strategies in the wake of today's security threats and attacks. Class topics will focus on physical security, cyber security, network security and software security through lectures and hands on experiments. This course will be of interest to students, who wish to obtain an understanding of the basic principles and practices in IAS. It will cover the fundamental concepts in IAS necessary for understanding the threats to security as well as various defenses against those threats.
Fall Odd.

COMP SCI 371. Advanced Object-Oriented Design. 4 Credits.

Advanced object oriented design techniques in C++ and C#, including: collection classes, class design and class relationships, inheritance, and polymorphism. Additional coverage of C/C++ topics such as pointers and pointer arithmetic, C strings, dynamic memory management, memory leaks, exception handling and operator overloading. Coverage of C# specific constructs such as properties, events, delegates and the use of the .NET framework.
P: COMP SCI 316 with at least a C grade.
Fall Only.

COMP SCI 372. Software Engineering. 3 Credits.

Design and programming techniques for large and complex data-driven projects, using C++. Design based on Design Patterns. Use of Software Engineering metrics and formal methodologies. Fundamentals of component-based software development and software deployment techniques.
P: COMP SCI 221, 316 AND 371 with at least a C grade.

COMP SCI 441. Human Computer Interaction. 3 Credits.

This course will introduce computer science students to the theory and practice of developing user interfaces. Practical concerns will be balanced by discussion of relevant theory from the literature of computer science (graphics, software engineering, multimedia), cognitive psychology, and industrial design. Students will also participate in group projects to design, implement, and evaluate user interfaces. Students who take this class will (a) develop practical user interface design skills, (b) develop an understanding of the human side of computing, (c) understand the significance of historical case studies, (d) learn about future directions in HCI.
Spring Odd.

COMP SCI 450. Theory of Algorithms. 3 Credits.

Design, analysis and comparison of algorithms; divide and conquer techniques, greedy method, dynamic programming and smart searching. Applications to optimization with constraints and decision problems. Theory of computability including examples of NP-complete problems such as the "traveling salesman" problem.
P: COMP SCI 240 and 371 and MATH 202, all with at least a C grade.
Fall Odd.

COMP SCI 451. Database Systems and Big Data Processing. 3 Credits.

This course covers advanced relational database concepts, data warehousing, and distributed database management systems. It introduces students to unstructured data and NoSQL databases and discusses the basics of real-time storage and processing of massive datasets using Hadoop ecosystems. The course includes hands-on exercises with Hadoop ecosystem and SQL Server.

COMP SCI 452. Operating Systems Using Linux. 3 Credits.

Methods and philosophies behind management of computing resources, including: memory management, process management, scheduling, process signaling, process synchronization, mutual exclusion; interprocess communication, introduction to the Linux Operating System and environment, shell scripting, C programming, process management, and message passing.
P: COMP SCI 240, 316 and 371 with at least a C grade

COMP SCI 464. Artificial Intelligence. 3 Credits.

Study of the fundamental types of artificial intelligence, their principal applications, and implementation of simulations on a conventional computer. These include inference systems, expert systems, artificial neural networks, swarm intelligence, genetic programming, evolutionary computing and reinformcement learning.
P: COMP SCI 240 with at least a C grade and COMP SCI 316 with at least a C grade
Fall Even.

COMP SCI 474. Game Engines. 3 Credits.

This course provides students with an introduction to the theory and practice of video game programming. Students will participate in individual hands-on lab exercises, and also work together like a real game development team to design and build their own functional game using an existing game engine (e.g. Unity, Ogre).
P: COMP SCI 240, COMP SCI 232 (or INFO SCI 332) , COMP SCI 316
Spring Odd.

COMP SCI 478. Honors in the Major. 3 Credits.

Honors in the Major is designed to recognize student excellence within interdisciplinary and disciplinary academic programs.
P: min 3.50 all cses req for major and min gpa 3.75 all UL cses req for major.
Fall and Spring.

COMP SCI 490. Capstone Essay in Computer Science. 1-3 Credits.

A project course in which a student does reading in computer science journals and produces a major research paper.
P: 18 earned upper level cr in Comp Sci.
Fall and Spring.

COMP SCI 497. Internship. 1-12 Credits.

Supervised practical experience in an organization or activity appropriate to a student's career and educational interests. Internships are supervised by faculty members and require periodic student/faculty meetings.
P: jr st.
Fall and Spring.

COMP SCI 498. Independent Study. 1-4 Credits.

Independent study is offered on an individual basis at the student's request and consists of a program of learning activities planned in consultation with a faculty member. A student wishing to study or conduct research in an area not represented in available scheduled courses should develop a preliminary proposal and seek the sponsorship of a faculty member. The student's advisor can direct him or her to instructors with appropriate interests. A written report or equivalent is required for evaluation, and a short title describing the program must be sent early inthe semester to the registrar for entry on the student's transcript.
P: fr or so st with cum gpa > or = 2.50; or jr or sr st with cum gpa > or = 2.00.
Fall and Spring.

COMP SCI 499. Travel Course. 1-6 Credits.

Travel courses are conducted to various parts of the world and are led by one or more faculty members. May be repeated to different locations.
P: cons of instr & prior trip arr & financial deposit.