Print this page

Bulletins

CPS - Computer Science

CPS 101 A First Byte of Computer Science

Introduction to the principles underlying the programmable world around us and the interplay of the different system components that drive the information society. This course may be offered in an online format. Recommended: MTH 107 or equivalent. (University Program Group II-A: Descriptive Sciences)

Credits
3(3-0)

Prerequisites

None.

Corequisites

None.

CPS 105 Word Processing Concepts

Introduction to word processing and desktop publishing concepts. Use of beginning and advanced features in a modern word processing application such as Microsoft Word. This course may be offered in a hybrid format.

Credits
1(1-0)

Prerequisites

None.

Corequisites

None.

CPS 106 Spreadsheet Concepts

Introduction to spreadsheets and report generation concepts. Use of beginning and advanced features in a modern spreadsheet application such as Microsoft Excel. This course may be offered in an online format.

Credits
1(1-0)

Prerequisites

None.

Corequisites

None.

CPS 107 Database Concepts

Introduction to databases and report generation concepts. Use of beginning and advanced features in a modern database application such as Microsoft Access. This course may be offered in a hybrid format.

Credits
1(1-0)

Prerequisites

None.

Corequisites

None.

CPS 165 Modern Website Design

Design and development of dynamic and interactive user-friendly websites. Maintain a web portfolio. Learn about web publishing best practices with consideration of social media.

Credits
3(3-0)

Prerequisites

None.

Corequisites

None.

CPS 180 Principles of Computer Programming

Algorithm development and problem solving methods. Design and development of computer programs in a structured programming language. Pre/Co-requisite: One of MTH 130, MTH 132, MTH 133, MTH 217. (University Program Group II-B: Quantitative and Mathematical Sciences)

Credits
3(3-0)

Prerequisites

None.

Corequisites

None.

CPS 181 Introduction to Data Structures

Continuation of CPS 180; Abstract Data Types using core programming library classes (such as stacks, queues, linked lists, and binary trees); Recursion; Sorting and Searching. Prerequisite: CPS 180; Recommended: MTH 132, MTH 175 or MTH 217.

Credits
3(3-0)

Prerequisites

CPS 180

Corequisites

None.

CPS 191 Python Programming II

Continuation of CPS 190. Design and development of computer programs to access data, automate tasks, and perform event handling. Prerequisite: CPS 190.

Credits
3(3-0)

Prerequisites

CPS 190

Corequisites

None.

CPS 210 Computer Organization and Communications

Introduction to computer organization, machine representation of information, models of computer architecture, remote application programming interfaces. Pre/Co-requisite: CPS 181; Recommended: MTH 132.

Credits
3(3-0)

Prerequisites

None.

Corequisites

None.

CPS 240 Object-Oriented Programming, Analysis and Design

Detailed coverage of the object-oriented programming paradigm and concepts, design patterns, distributed objects, graphical user interfaces and event handling. Software design in teams. Prerequisite: CPS 181 with a C or better.

Credits
3(3-0)

Prerequisites

CPS 181 with a C or better

Corequisites

None.

CPS 254 Data Visualization and Programming Using Python

Introduce Python programming language for data science. Topics include data wrangling, management, manipulation, visualization and exploration using Python. This is one-credit, five-week course. Identical to DAS 254. Credit may not be earned in more than one of these courses. Prerequisite: One of: BIO 500, DAS 150QR, ECO 285, GEO 512, HSC 544, PSY211QR, SOC 200QR, STA 282QR, STA 382QR, STA 392.

Credits
1(1-1)

Prerequisites

One of: BIO 500, DAS 150QR, ECO 285, GEO 512, HSC 544, PSY211QR, SOC 200QR, STA 282QR, STA 382QR, STA 392.

Corequisites

None.

Cross Listed Courses

DAS 254

CPS 270 Computational Analysis and Simulation

Modeling and simulation via computing and numerical calculations. Emphasis will be on implementing algorithms in a high-level programming language and the associated implications. Prerequisites: CPS 181; MTH 132.

Credits
3(3-0)

Prerequisites

CPS 181; MTH 132

Corequisites

None.

CPS 280 Alternative Programming Languages

Intensive study of one or more selected object-oriented programming languages. Languages presented will be announced in Course Search and Registration. Students may not earn credit for a language in which they already have credit in one of the primary programming sequences. Prerequisite: CPS 181.

Credits
3(3-0)

Prerequisites

CPS 181

Corequisites

None.

CPS 282 Introduction to Multimedia Design

Introduction to multimedia concepts. Survey of multimedia applications in fields such as education, business and entertainment. Introduction to multimedia authoring tools. Hands-on projects.

Credits
3(3-0)

Prerequisites

None.

Corequisites

None.

CPS 285 Programming for Data Science

Overview of tools and techniques to process data with the aim of producing actionable insights. Introduction to the cleaning, filtering, transforming and querying of data. Prerequisite: CPS 180.

Credits
3(3-0)

Prerequisites

CPS 180

Corequisites

None.

CPS 294 Foundation of Mobile Application Development

Design, build, and deploy a multi-screen mobile application using best- practice patterns, frameworks, and tools. Combine local and remote sensing/actuating, execution and persistency. Prerequisite: CPS 181.

Credits
3(3-0)

Prerequisites

CPS 181

Corequisites

None.

CPS 296 Special Topics in Computer Science

Selected technical topics of the latest developments in the field. These topics are normally not covered in existing courses. Topic(s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Prerequisite: 24 credit hours completed.

Credits
1-6(Spec)

Prerequisites

24 credit hours completed

Corequisites

None.

CPS 301 Social Issues of Computing and Professional Practice

Surveys the central ethical, legal and social issues intrinsic to the discipline of computing. Introduces common professional development schemes used in the computing industry. Prerequisites: 26 hours completed. Recommended: ENG 201.

Credits
1(1-0)

Prerequisites

26 hours completed

Corequisites

None.

CPS 321 Human Computer Interaction

User interface design and human-computer interaction. Understanding the user. Design and prototyping of highly usable interfaces. Event-driven programming language for rapid prototyping. Prerequisites: CPS 240 or CPS 280.

Credits
3(3-0)

Prerequisites

CPS 240 or CPS 280.

Corequisites

None.

CPS 333 Introduction to Computer Security and Cryptography

Introduction to computer and network security, cybersecurity, confidentiality, integrity, availability, authentication, authorization, accountability, access control, security/threat models, cryptography, encryption, decryption, signatures. Prerequisite: CPS 240 and MTH 321.

Credits
3(3-0)

Prerequisites

CPS 240 and MTH 321.

Corequisites

None.

CPS 340 Advanced Data Structures and Algorithms

Theory of advanced techniques for representing information: lists, trees, graphs. Analysis of algorithms: sorting, searching and hashing techniques. Prerequisites: CPS 181 with a grade of C- or better; CPS 210 or EGR 396. Pre/Co-requisite: MTH 223 or MTH 232. Recommended: CPS 240.

Credits
3(3-0)

Prerequisites

CPS 181 with a grade of C- or better; CPS 210 or EGR 396.

Corequisites

None.

CPS 360 Computer Design and Architecture

Design and analysis of digital circuits, processor datapath, instruction set architecture, cache memory, pipelined instruction execution, virtual memory. Prerequisite: CPS 210.

Credits
3(3-0)

Prerequisites

CPS 210

Corequisites

None.

CPS 373 Network Security

Security in computer, mobile and communication networks; confidentiality, integrity, availability, access controls in networks; security in network protocols and applications at layers in OSI model. Prerequisites: ITC 265 and CPS 333.

Credits
3(3-0)

Prerequisites

ITC 265 and CPS 333.

Corequisites

None.

CPS 375 Social Engineering, Cybersecurity Law, Policy and Ethics

Data and privacy in the context of the human factor and society, including social engineering security, cybersecurity law, cybersecurity ethics, cybersecurity policy, and cybersecurity privacy. Prerequisite: CPS 333.

Credits
3(3-0)

Prerequisites

CPS 333

Corequisites

None.

CPS 382 Advanced Multimedia Design

Design interactive multimedia projects using advanced authoring tools and discuss issues concerning representation, storage, compression, transmission, and manipulation of various multimedia components. Prerequisite: CPS 240 or CPS 282.

Credits
3(3-0)

Prerequisites

CPS 240 or CPS 282

Corequisites

None.

CPS 395 Internship in Computer Science

Supervised work experience in computer science. Only 3 hours may count toward the major. Any additional hours must provide a significantly different educational experience. CR/NC only. Prerequisites: CPS 210 or ITC 191; permission of department chairperson.

Credits
1-9(Spec)

Prerequisites

CPS 210 or ITC 191; permission of department chairperson

Corequisites

None.

CPS 396 Special Topics in Computer Science

Selected technical topics of the latest developments in the field. These topics are normally not covered in existing courses. Topic(s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Prerequisite: 40 credit hours completed.

Credits
1-6(Spec)

Prerequisites

40 credit hours completed

Corequisites

None.

CPS 410 Senior Design I

Software specification, design methods, programming and testing techniques and CASE tools. Developing large software systems in a group environment using modern software engineering techniques. Prerequisites: CPS 301, CPS 340, CPS 360. Must be 2nd semester junior or 85+ credit hours.

Credits
3(3-0)

Prerequisites

CPS 301, CPS 340, CPS 360. Must be 2nd semester junior or 85+ credit hours.

Corequisites

None.

CPS 420 Web Application Development - Web Services SOA

Web-based applications focusing on server-side processing, data persistence, use of web services, Service Oriented Architecture, remote procedure calls, asynchronous messaging, transactions and security considerations. Prerequisite: CPS 340 or ITC 320. Recommended: ITC 341.

Credits
3(3-0)

Prerequisites

CPS 340 or ITC 320

Corequisites

None.

CPS 450 Programming Language Concepts

Formal definition of programming languages including specification of syntax and semantics. Prerequisites: CPS 240, CPS 340.

Credits
3(3-0)

Prerequisites

CPS 240, CPS 340

Corequisites

None.

CPS 463 Hardware Security

Hardware security; Trojan Horse, Supply Chain Attacks, IP Piracy, Side- Channel Attacks, Reverse Engineering, and Countermeasures. Prerequisites: CPS 333, CPS 360.

Credits
3(3-0)

Prerequisites

CPS 333, CPS 360

Corequisites

None.

CPS 470 Introduction to Operating Systems

Operating systems as resource manager. Study of the strategies used to manage system resources such as devices, files, memory, processors. Prerequisites: CPS 340, CPS 360.

Credits
3(3-0)

Prerequisites

CPS 340, CPS 360

Corequisites

None.

CPS 475 Software, Database, and Operating System Security

Software and operating system security, including holistic approach, static and dynamic testing, buffer-overflow exploits and defense, database security, SQL injection attacks, and virtualization. Prerequisites: CPS 333, CPS 470.

Credits
3(3-0)

Prerequisites

CPS 333, CPS 470

Corequisites

None.

CPS 477 Security Informatics: AI and Visualization

AI for security, trustworthiness of AI, security and privacy of data mining/machine learning based applications, adversarial machine learning, security visualization, anomaly detection. Prerequisites: CPS 333, CPS 480.

Credits
3(3-0)

Prerequisites

CPS 333, CPS 480

Corequisites

None.

CPS 480 Introduction to Artificial Intelligence

Automated reasoning, search strategies, knowledge representation, game playing, expert systems, machine learning and perception; applications. Prerequisites: CPS 340.

Credits
3(3-0)

Prerequisites

CPS 340

Corequisites

None.

CPS 496 Special Topics in Computer Science

Selected technical topics of the latest developments in the field. Topic (s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Prerequisite: See course search and registration.

Credits
1-6(Spec)

Prerequisites

See course search and registration

Corequisites

None.

CPS 497 Independent Study

Open to students with permission of instructor. May be taken for credit more than once, total credit not to exceed 6 hours. Prerequisite: Permission of instructor.

Credits
1-6(Spec)

Prerequisites

Permission of instructor

Corequisites

None.

CPS 498 Senior Design II

Senior design course for CPS major. This course integrates design methods and software engineering techniques in the context of a realistic information processing system-based project. Prerequisite: CPS 410.

Credits
3(2-2)

Prerequisites

CPS 410

Corequisites

None.

CPS 498 Senior Design I

Senior design course for CPS major. This course integrates design methods and software engineering techniques in the context of a realistic information processing system-based project. Prerequisite: CPS 410.

Credits
3(2-2)

Prerequisites

CPS 410

Corequisites

None.

CPS 501 Survey of Computer Science

Overview of computer organization, programming languages, various computer applications, information management systems and ethical implications of computing. Does not count toward CPS major or minor or the MS in Computer Science. This course may be offered in an online format. Prerequisite: Senior or graduate standing.

Credits
3(3-0)

Prerequisites

Senior or graduate standing

Corequisites

None.

CPS 510 Software Systems Engineering

Covers requirements analysis and techniques to develop a system from those requirements. Credit will not be given for both CPS 410 and CPS 510. Does not count for the M.S. in Computer Science. This course is approved for offering in a distance learning format. Prerequisites: CPS 340; MTH 175.

Credits
3(3-0)

Prerequisites

CPS 340; MTH 175

Corequisites

None.

CPS 520 Software Architecture

Study of software architecture styles and quality attributes; achieving software quality; designing, documenting, and restructuring software architecture evaluation; tools for architectural design. Prerequisite: CPS 410 or graduate status.

Credits
3(3-0)

Prerequisites

CPS 410 or graduate status

Corequisites

None.

CPS 525 Introduction to Text Mining

Overview of tools and techniques to process text data with the aim of production actionable insights. Introduction to the cleaning, filtering, transforming and querying of text data. Prerequisites: CPS 181, CPS 240 or CPS 280 or CPS 285; or admitted to the Master of Science in Computer Science program.

Credits
3(3-0)

Prerequisites

CPS 181, CPS 240 or CPS 280 or CPS 285; or admitted to the Master of Science in Computer Science program

Corequisites

None.

CPS 531 Distributed Programming

Study of design and implementation issues in distributed programming, including event model, client/server, distributed data processing, remote objects, network services, and security. Prerequisite: CPS 340 or admission into CPS graduate program.

Credits
3(3-0)

Prerequisites

CPS 340 or admission into CPS graduate program

Corequisites

None.

CPS 541 Modern Databases

Relational databases, data modeling, NoSQL databases, and data warehousing. Design and develop databases for various applications. Prerequisites: CPS 340 or ITC 341 or graduate standing.

Credits
3(3-0)

Prerequisites

CPS 340 or ITC 341 or graduate standing

Corequisites

None.

CPS 542 Analysis and Design of Algorithms

Analysis of algorithms including computing time and space requirements. Efficient algorithm design techniques. Introduction to parallel algorithms and computational complexity classes. Prerequisite: CPS 340 or admitted to the Master of Science in Computer Science program.

Credits
3(3-0)

Prerequisites

CPS 340 or admitted to the Master of Science in Computer Science program.

Corequisites

None.

CPS 580 Supervised Machine Learning

Theory and tools for supervised machine learning. Overview and application of architectures and training techniques applicable to image classification, object recognition and text generation. Prerequisites: CPS 340 or ITC 510 or CPS 285, DAS 450.

Credits
3(3-0)

Prerequisites

CPS 340 or ITC 510 or CPS 285, DAS 450

Corequisites

None.

CPS 581 Introduction to Biocomputing and Evolutionary Computation

Use of elementary automata theory, limits on computation, cellular automata, neuron models, evolutionary (genetic) algorithms and learning, and Artificial Immune Systems, DNA, and quantum computing. Prerequisites: CPS 340 or graduate standing.

Credits
3(3-0)

Prerequisites

CPS 340 or graduate standing

Corequisites

None.

CPS 583 Nonlinear Dynamics and Learning

Elementary nonlinear dynamics and chaos theory. Correlation dimension. Approximate, Sample, and Multiscale entropies. Cellular automaton dynamics. Entropy analysis and learning in time series data. Prerequisites: CPS 340 or graduate standing.

Credits
3(3-0)

Prerequisites

CPS 340 or graduate standing

Corequisites

None.

CPS 585 Applied Data Engineering

Study of data engineering concepts and techniques, including data collection, cleaning, transformation, security and storage. Construction of a data pipeline in an applied setting. This course may be offered in an online or hybrid format. Prerequisites: CPS 181; CPS 240 or 280 or 285; or admitted to the Master of Science in Computer Science program. Recommended: ITC 341.

Credits
3(3-0)

Prerequisites

CPS 181; CPS 240 or CPS 280 or CPS 285; or admitted to the Master of Science in Computer Science program

Corequisites

None.

CPS 596 Special Topics in Computer Science

Selected topics in computer science not otherwise available in a course regularly offered. Topic(s) are listed in Course Search and Registration. Repeatable up to 6 credits when content does not duplicate previous special topic studies. Prerequisite: See Course Search and Registration. Determined by the specific topics presented.

Credits
1-6(Spec)

Prerequisites

See Course Search and RegistrationDetermined by the specific topics presented

Corequisites

None.

CPS 597 Independent Study

Exploration of topics in Computer Science agreed upon by student and instructor. May be taken for credit more than once, total credit not to exceed six hours. Prerequisite: Permission of instructor.

Credits
1-6(Spec)

Prerequisites

Permission of instructor

Corequisites

None.