Courses

Required - Non-Required

CS108 - Applied Computer Concepts

Computer skills course which assumes no prior experience with computers. Introduces computer concepts and word processing; spreadsheets and database software; and examines societal issues. Graduation credit may be earned for CS 108 or CMIS 108; but not for both. Prerequisite: Two years of college preparatory mathematics in high school.

CS111 - Concepts of Computer Science

Broad view of computer science: hardware; operating systems; software design and development; algorithms; networks; and applications.

CS140 - Introduction to Computing I

Programming course that assumes basic computer literacy. Introduces a high-level programming language and basic problem solving. Three lecture hours and two laboratory hours per week. Prerequisite: MATH120 or three years of college-preparatory mathematics in high school.

CS145 - Intro to Computing for Engineers

Introduces C++ programming and basic problem solving. Focuses on computer applications in engineering, science and numeric methods. Prerequisite: Basic computer literacy.

CS150 - Intro to Computing II

Algorithmic problem solving with a modern programming language. Language syntax; basic design methods; algorithms; and abstraction. Prerequisite: CS140

CS198 - Computer Science Work Experience I

Supervised work experience with agency employing computer scientists or information specialists. For students with part time cooperative jobs. Limited to students enrolled in more than 6 hours.

CS199 - Computer Science Cooperative Education Experience I

Supervised work experience with agency employing computer scientists or information specialists. First work period of 5-year academic/work experience program.

CS1XX - 100-Level Computer Science

CS234 - Database and Web System Development

An introduction to multi-tier software systems and database programming and their application to web-based information storage and retrieval systems. Prerequisite: CS150

CS240 - Intro to Computing III

Basic software engineering concepts, elementary data structures and algorithms, fundamentals of object-oriented programming. Prerequisite: CS150

CS286 - Introduction to Computer Organization and Architecture

Processor, memory, I/O structure of computer systems, data representations, instruction set architecture of typical processor as hardware/software interface, processor implementation, performance evaluation methods. Prerequisite: CS150

CS298 - Computer Science Work Experience II

Supervised work experience with agency employing computer scientists or information specialists. For students with part-time cooperative jobs. Limited to students enrolled in more than 6 credit hours.

CS299 - Computer Science Cooperative Education Experience II

Supervised work experience with agency employing computer scientists or information specialists. Second work period of 5-year academic/work experience program.

CS2XX - 200-Level Computer Science

CS314 - Operating Systems

Processes, threads, and synchronization; I/O and memory management at the hardware and OS levels; file systems; and implementation of basic OS abstractions, concurrent programming. Prerequisite: CS240

CS321 - Human-Computer Interaction Design

Design of interactions between people and computers. Interface design, conceptual models, design methods, software evaluation and ethical concerns. Software design project. Prerequisite: CS234 and STAT 244 or STAT 380

CS325 - Software Engineering

Introduction to the concepts and techniques required to develop complex software systems and manage software projects. Emphasis on object-oriented methodologies and modeling via UML. Prerequisite: CS234, CS240

CS330 - Programming Languages

Design, appropriateness and linguistics issues associated with different programming languages and programming paradigms. Covers syntax and semantics of languages, including BNF Notation. Prerequisite: CS286

CS340 - Algorithms and Data Structures

Considers appropriate choice of data structures, comparisons of algorithms, recursive algorithms, complexity, and introduction to parallel algorithms. Prerequisite: CS240; MATH150, MATH224

CS360 - Ethical and Social Implications of Computing

An introduction to the social, ethical, legal, and professional contexts in which software systems are developed and utilized. Prerequisite: CS234

CS382 - Game Design, Development, and Technology

Introduction to the entire process of game development, including history, social impact, design, programming, software engineering, math, physics, graphics, animation, audio, AI, and hardware. Prerequisite: CS286, CS321

CS390 - Topics in Computer Science

Selected topics in computer science. May be repeated to a maximum of 6 hours for different topics.

CS398 - Computer Science Work Experience III

Supervised work experience with agency employing computer scientists or information specialists. For students with part-time cooperative jobs. Limited to students enrolled in more than 6 credit hours.

CS399 - Computer Science Cooperative Education Experience III

Supervised work experience with agency employing computer scientists or information specialists. Third work period of 5-year academic/work experience program.

CS3XX - 300-Level Computer Science

CS423 - Compiler Construction

Translation of programming languages. Emphasis on techniques used in construction of compilers, including lexical analysis, syntactical analysis, type checking, and code generation. Prerequisite: CS330

CS425 - Senior Project: Software Design

First part of a two-semester sequence in which teams complete the design and planning stages of a software development project. Selected topics in software development, group dynamics, and project management. Not for Graduate credit. Prerequisite: CS314, CS321, CS325, CS340, CS360

CS434 - Database Management Systems

Database management system concepts, models, languages. Entity/relationship, relational and object-oriented data models; relational database design and implementation including SQL; and object databases.Prerequisite: CS234, CS240

CS438 - Artificial Intelligence

Principles and programming techniques of artificial intelligence. Intelligent agents, heuristic programming, knowledge representation, expert systems, and machine learning. Prerequisite: CS340

CS447 - Networks and Data Communications

Concepts of networks and data communications. Networking protocols and architecture; data encoding and transmission; network management; and distributed applications. Prerequisite: CS314, CS340

CS454 - Theory of Computation

Theoretical foundations of computer science, including a theory of automata: pushdown automata, Turing machines; and formal languages. Prerequisite: CS330, MATH224; or graduate standing. Prerequisite: CS340

CS456 - Advanced Algorithms

Advanced algorithms and data structures; basic complexity theory; and approximation algorithms for NP-hard problems. Prerequisite: CS340

CS482 - Computer Graphics

Introduction to2D and 3D graphics, graphics hardware, scan conversion, anti-aliasing, hidden components, transformations, projections, ray tracing, curve and surface modeling, and animation. Prerequisite: CS240, CS286; MATH152

CS490 - Topics in Computer Science

Selected topics in computer science. May be repeated to a maximum of 6 hours for different topics. Requires consent of instructor.

CS495 - Independent Study

Reading and research in specific areas of computer science. May be repeated for a maximum of 6 hours. Requires consent of department chair or program director.

CS499 - Senior Project: Software Implementation

Second part of a two-semester sequence in which teams implement, test, and deploy software development project that was planned and designed in CS 425. Includes a formal presentation to the computer science faculty.

CS4XX - 400-Level Computer Science

CS500 - Grad Seminar in Computer Science

Research topics of faculty; exploration of research facilities and resources; and examination of plagiarism and academic integrity. Requires Graduate standing.

CS501 - Intensive Computer Science Fundamentals

An intensive examination of object oriented design, data structures, algorithm analysis, software engineering, and programming in preparation for graduate study in Computer Science.

CS514 - Operating Systems

Concurrent programming; support for distributed systems including transaction processing systems; support for high-volume, high-availability applications; scalable programming; and trends.

CS516 - Computer Architecture

Instruction sets; instruction-level parallelism; memory systems; storage systems; I/O; multiprocessors and multicomputers; and trends.

CS525 - Principles of Simulation

Survey of systems modeling and simulation techniques; data generation and testing; construction of simulation models; Petri nets and applications; and model experimentation and optimization.

CS530 - Software and Systems Management

Management principles for software engineering and for project and systems development. Includes management of resources and understanding the needs of customers and management.

CS534 - Advanced Database Management Systems

Study of advanced database management system topics such as programmatic SQL, database administration issues, object databases, distributive databases, semi-structured data and XML, and data warehousing.

CS535 - Software Engineering

Principles for software development: object-oriented methodologies; advanced topics such as formal methods; component-based, client-server, and computer-aided software engineering; and web engineering.

CS537 - Introduction to Expert Systems

Design and implementation of expert systems: architecture, knowledge representation, inference methods, uncertainty handling, and knowledge acquisition. Introduction to logic programming and prolog.

CS547 - Network Programming

Design and implementation of application software for computer networks, including case studies of existing network applications with an emphasis on TCP/IP.

CS548 - Network Security

Fundamentals in network security to develop skills for preventing security hazards with focus on practical aspects in network security as well as concepts and theories.

CS550 - Object-Oriented Design and Programming

Object-oriented programming and design with emphasis on distributed objects. Uses C++ and JAVA, and covers middleware platforms such as cobra. Requires consent of instructor.

CS560 - Information Discovery in Electronic Healthcare Records

Analytical techniques for discovering information in electronic healthcare record systems through data mining, text mining, and visual analytics techniques.

CS582 - Advanced Computer Graphics

Advanced rendering techniques; global illumination and radiosity; volume rendering; shadows; reflection detection; fractals; and particle systems.

CS583 - Topics in Programming Languages

Topics including functional programming, semantic theory of programming language, formal language theory and functional language ML. May be repeated to 6 hours if topics differ.

CS584 - Topics in Artificial Intelligence

Selected topics in AI, such as machine learning, model-based reasoning, and intelligent agents. May be repeated up to 6 hours provided no topic is repeated. Requires consent of instructor.

CS587 - Topics in Computer Networking

Selected topics in computer networking, such as high performance and optical computer networks. May be repeated to a maximum of 6 hours provided no topic is repeated.

CS590 - Topics in Computer Science

Topics dealing with computer science concepts that are not emphasized in current courses. May be repeated to a maximum of 9 hours if topics differ. Prerequisite: Consent of instructor.

CS595 - Independent Study

Students organize a program of study and obtain approval for supervision of the study from a member of the computer science faculty. May be taken for a maximum of 6 hours. Requires consent of instructor.

CS595 - Independent Study

Students organize a program of study and obtain approval for supervision of the study from a member of the computer science faculty. May be taken for a maximum of 6 hours. Requires consent of instructor.

CS596 - Master's Project

Special software project, under supervision of the student's project committee. Written and oral project reports are required. Satisfies program exit requirements. Requires consent of student's project committee.

CS596A - Capstone I

The student will initiate the information systems design project which includes a feasibility study to determine the project scope and objectives, alternative design options, and cost-effectiveness.

CS596B - Capstone II

The student will develop the requirements for the design project including detailed analysis of the existing system and logical systems design for the proposed system.

CS596C - Capstone III

The student will implement the information systems design project focusing on detailed systems design, including program design, configuration, and test planning, and systems implementation.

CS599 - Thesis

Directed research to satisfy thesis requirement. May be repeated for a maximum of 6 hours. Requires consent of advisor.

CS5XX - 500-Level Computer Science

XXXX - General Computer Science