CPS - 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. Recommended: MTH 107 or equivalent. (University Program Group II-A: Descriptive Sciences)
Credits
3(3-0)
Prerequisites
None.
Corequisites
None.
Introduction to word processing and desktop publishing concepts. Use of beginning and advanced features in a modern word processing application such as Microsoft Word.
Credits
1(1-0)
Prerequisites
None.
Corequisites
None.
Introduction to spreadsheets and report generation concepts. Use of beginning and advanced features in a modern spreadsheet application such as Microsoft Excel.
Credits
1(1-0)
Prerequisites
None.
Corequisites
None.
Introduction to databases and report generation concepts. Use of beginning and advanced features in a modern database application such as Microsoft Access.
Credits
1(1-0)
Prerequisites
None.
Corequisites
None.
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.
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.
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.
Design and development of computer programs in the Python programming language. Introduction to basic programming control structures and elementary data processing. (University Program Group II-B: Quantitative and Mathematical Sciences.)
Credits
3(3-0)
Prerequisites
None.
Corequisites
None.
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.
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.
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.
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 CPS 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
CPS 254
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.
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.
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.
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 or CPS 190.
Credits
3(3-0)
Design, build, and deploy event-driven mobile applications using current patterns, frameworks, and tools. Combine local and remote sensing/actuating, execution, and persistency. Prerequisite: CPS 181 or CPS 191.
Credits
3(3-0)
Prerequisites
CPS 181 or CPS 191.
Corequisites
None.
Selected technical 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)
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.
Study and application of tools and processes for software development. Prerequisite: CPS 180 or CPS 190. Recommended: CPS 240.
Credits
3(3-0)
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.
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 or CPS 280. Pre/Co-requisite: MTH 321.
Credits
3(3-0)
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.
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.
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.
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.
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)
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.
Selected technical 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)
Software specification, design methods, programming and testing techniques and CASE tools. Design a large software system 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)
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.
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.
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.
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.
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.
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.
Automated reasoning, search strategies, knowledge representation, expert systems, reinforcement learning, machine learning and perception; applications. Prerequisite: CPS 285 or CPS 340.
Credits
3(3-0)
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.
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.
Continuation of senior capstone experience. This course integrates design methods and software engineering techniques to finalize development of a large software system. Prerequisite: CPS 410.
Credits
3(2-2)
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. Prerequisite: Senior or graduate standing.
Credits
3(3-0)
Prerequisites
Senior or graduate standing
Corequisites
None.
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.
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.
Introduction to modern large language models including their architecture, training, applications and implications. Exploration of their capabilities, limitations, and ethical and societal impacts. Prerequisite: CPS 480 or CPS 580 or admitted to the Master of Science in Computer Science program.
Credits
3(3-0)
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.
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.
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.
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.
This course covers practical innovations in computer vision, focusing on image enhancement, feature extraction, and deep learning techniques for real-world applications. Prerequisite: CPS 280 or CPS 580 or graduate standing.
Credits
3(3-0)
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.
Study of data engineering concepts and techniques, including data collection, cleaning, transformation, security and storage. Construction of a data pipeline in an applied setting. Prerequisites: CPS 181; CPS 240 or CPS 280 or CPS 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.
Overview of the implications and application of artificial intelligence to a developed computing solution. Culminating experience for minor in Applied Artificial Intelligence. Pre/Co-requisites: CPS 480, CPS 580.
Credits
2(2-0)
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)
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)