Computer Science (CS)

NOTE: All prerequisites for Computer Science (CS) courses must be completed with a grade of “C-” or better.

Computer Science (CS) Courses

CS 1063. Introduction to Computer Programming I. (3-0) 3 Credit Hours.

Prerequisite: Completion of or concurrent enrollment in MAT 1073 or the equivalent. An introduction to computer programming using a modern object-oriented computer language. Topics include assignment, decisions, loops, methods, and arrays using objects. Generally offered: Fall, Spring, Summer. Course Fee: IUCS $45; LRS1 $46.20; STSI $21.60; DL01 $75.

CS 1083. Programming I for Computer Scientists. (3-0) 3 Credit Hours. (TCCN = COSC 1336)

Prerequisite: Completion of or concurrent enrollment in MAT 1073 or the equivalent. An introduction to computer programming emphasizing structured programming, problem-solving, and algorithmic thinking. Topics include assignments, decisions, loops, methods, and arrays. Students intending to major or minor in Computer Science should take this course instead of CS 1063. Generally offered: Fall, Spring, Summer. Course Fee: IUCS $45; LRS1 $46.20; STSI $21.60; DL01 $75.

CS 1153. Game Programming. (3-0) 3 Credit Hours.

Prerequisite: Computer literacy. Introduction to game design and programming. Common practices used in the video game industry today will also be introduced. Students will learn the basics of creating a PC game through lecture material, hands-on laboratories, and a final project in which the students will build a simple game. Generally offered: Fall. Course Fees: IUCS $45; LRS1 $46.20; STSI $21.60.

CS 1173. Data Analysis and Visualization. (3-0) 3 Credit Hours.

Prerequisite: MAT 1023. Introduction to computation for data analysis and visualization in a programming language such as MATLAB or R. Programming concepts including functions, scripting, loops and logic, handling of vectors, and structured data are explored in the context of working with and plotting real data. May be applied toward the Mathematics Core Curriculum requirement. (Formerly titled "Computation for Scientists and Engineers.") Generally offered: Fall, Spring, Summer. Course Fee: DL01 $75; IUCS $45; LRC1 $12; LRS1 $46.20; STSI $21.60.

CS 2073. Computer Programming with Engineering Applications. (3-0) 3 Credit Hours. (TCCN = ENGR 2304)

Prerequisite: MAT 1213 (or MAT 1214 in previous catalogs), and completion of or concurrent enrollment in MAT 1223 (or MAT 1224 in previous catalogs). Algorithmic approaches to problem solving and computer program design for engineers. Engineering and mathematically-oriented problem sets will be emphasized, including nonnumeric applications. Searching, sorting, linked lists, and data typing will be introduced. May not be applied toward a major in computer science. Generally offered: Fall, Spring. Course Fee: IUCS $45; LRS1 $46.20; STSI $21.60.

CS 2113. Fundamentals of Object-Oriented Programming. (3-0) 3 Credit Hours. (TCCN = COSC 1337)

Prerequisite: CS 1083. Extended programming concepts, including multidimensional arrays, file input/output, and recursion. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering. Course Fee: IUCS $45; LRS1 $46.20; STSI $21.60; DL01 $75.

CS 2123. Data Structures. (3-0) 3 Credit Hours. (TCCN = COSC 2336)

Prerequisite: CS 2113. Abstract data structures (stacks, queues, lists, trees), recursion, sorting, and searching. Implementation of data structures using explicit memory management and introduction to abstract data type design and encapsulation. The course includes 3 hours of lecture per week. (Formerly CS 1723 and CS 2124. Credit can only be earned for one of the following courses: CS 2124, CS 1723, or CS 2123.) Generally offered: Fall, Spring, Summer. Course Fee: LRS1 $46.20; STSI $21.60; DL01 $75; IUCS $45.

CS 2233. Discrete Mathematical Structures. (3-0) 3 Credit Hours. (TCCN = MATH 2305)

Prerequisites: MAT 1093 and one of the following: CS 1083, CS 1063, CS 2073, CPE 2073. Survey and development of theoretical tools suitable for describing algorithmic applications. Propositional and predicate calculus, proofs, induction, order notation, recurrences, and discrete structures. (Formerly CS 3233. Credit cannot be earned for both CS 2233 and CS 3233.) Generally offered: Fall, Spring. Course Fees: IUCS $45; LRS1 $46.20; STSI $21.60; DL01 $75.

CS 2713. Computer Programming in C. (3-0) 3 Credit Hours.

Prerequisite: CS 2113. Extended programming concepts, including multidimensional arrays, pointers, dynamic memory allocation/deallocation, and recursion. Problem-solving methods, algorithm development, and implementation. The course includes 3 hours of lecture per week. (Formerly CS 1714 and CS 1713. Credit can only be earned for one of the following: CS 2713, CS 1714, or CS 1713.) Generally offered: Fall, Spring, Summer. Differential Tuition: $150. Course Fee: LRS1 $46.20; STSI $21; DL01 $75; IUCS $45.

CS 3113. Principles of Cybersecurity. (3-0) 3 Credit Hours.

Prerequisite: CS 2713 and completion of or concurrent enrollment in CS 2123. An introductory course in Cybersecurity, including an examination of the fundamental principles underlying cybersecurity, how these principles interrelate, and how they are typically employed to secure computer systems and networks. The course will also examine how failures in fundamental security design principles can lead to system vulnerabilities that can be exploited and will also examine the legal issues governing cyber law and cyber operations. (Formerly CS 2433. Credit cannot be earned for both CS 3113 and CS 2433.) Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3333. Mathematical Foundations of Computer Science. (3-0) 3 Credit Hours.

Prerequisite: CS 2233 and MAT 1213 (or MAT 1214 in previous catalogs). Survey and development of mathematical and statistical tools suitable for describing algorithmic applications. Probability, statistical models, number theory, and combinatorics. Generally offered: Fall, Spring, Summer. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3343. Design and Analysis of Algorithms. (3-0) 3 Credit Hours.

Prerequisite: CS 2123, CS 2233, and CS 3333. Analysis of the performance of algorithms; discussion of programming techniques and data structures used in the writing of effective algorithms. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3423. Systems Programming. (3-0) 3 Credit Hours.

Prerequisite: CS 2123 and CS 2713. A study of systems-level programming in a specific system (at present, Unix). Focus on concepts and tools to support the construction of systems programs. The course includes 3 hours of lecture per week. (Formerly CS 2413 and CS 3424. Credit can only be earned for one of the following courses: CS 3424, CS 2413, and CS 3423.) Generally offered: Fall, Spring, Summer. Differential Tuition $150. Course Fee: DL01 $75; IUCS $45.

CS 3433. Computer and Information Security. (3-0) 3 Credit Hours.

Prerequisite: CS 3423 and consent of instructor. An introduction to the protection of computer systems and networks. Topics will include authentication, access controls, malicious software, formal security methods, firewalls, intrusion detection, cryptography and information hiding, risk management, computer forensics, and ethics. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3443. Application Programming. (3-0) 3 Credit Hours.

Prerequisite: CS 2123. Advanced application development in a current object-oriented language. Introduction to the software life cycle, best programming practices, and modern development tools. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3523. Windows Systems Programming. (3-0) 3 Credit Hours.

Prerequisite: CS 2123 and CS 2713. A study of systems-level programming in the Windows Operating System. Focus on concepts and tools to support the construction of Windows systems programs. Learn and use tools like Powershell, Python, and command prompt. Understand in detail how the registry works, how to audit and log system changes, how to create new users, how to manipulate access control lists, etc. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3723. Programming Languages. (3-0) 3 Credit Hours.

Prerequisite: CS 2713, CS 2233, and CS 3443. An introduction to high-level procedural, functional, and object-oriented programming languages, their theoretical foundations, organization, and implementation. Topics include formal syntax, compilers and interpreters, type systems, scoping and activation records, control structures, and data abstraction. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3733. Operating Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 3423, CS 3443, and CS 3843 (formerly CS 3844). An introduction to the functions and major techniques of a modern multiprogramming operating system. Includes exposure to the fundamentals of processor management, process synchronization, memory management, and peripheral management. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3743. Database Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 2123 and CS 2233. Study of fundamentals of database systems. Topics include basic concepts, various data models, database design, storage systems, indexing and hashing, database application design and implementation, and commercially available database systems. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3753. Data Science. (3-0) 3 Credit Hours.

Prerequisite: CS 2123 and CS 3333. Study of fundamental methods and models of data science. Topics include data management, Extract-Transform-Loading methods, machine learning models, and data visualization. Use of a specialized programming language is emphasized. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3773. Software Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 3443. Introduction to different aspects of software engineering with the concentration on processes, methods, and tools for developing reliable software-centered systems. Study of software development process models, project management, a variety of modeling notations, requirement analysis, architecture design methods, and testing techniques. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3783. Software Requirements Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 3443. This course covers the process of eliciting, analyzing, specifying, validating, and managing software requirements. It introduces techniques to capture user stories, requirements traceability, and requirements process management to accurately capture and manage requirements to ensure meeting the needs of stakeholders. Differential Tuition: $150. Course Fee: IUCS $45.

CS 3793. Artificial Intelligence. (3-0) 3 Credit Hours.

Prerequisite: CS 3753 and MAT 2253. This course covers the construction of programs that use knowledge representation and reasoning to solve problems. Major topics include informed search, logical and probabilistic inference, machine learning, planning, and natural language processing. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 3843. Computer Organization. (3-0) 3 Credit Hours.

Prerequisite: CS 2713 or equivalent. Organization of a computer system is introduced at block diagram level. Programming in assembly language and understanding the macroarchitecture of a computer is emphasized. Fundamentals of digital systems are introduced, and the designs of various components used are investigated. (Formerly CS 2733 and CS 3844. Credit can only be earned for one of the following: CS 2733, CS 3844, or CS 3843.) Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3853. Computer Architecture. (3-0) 3 Credit Hours.

Prerequisite: CS 3843 and CS 2123. Instruction set architecture, datapath and control unit design, advanced computer arithmetic, pipelining, memory hierarchy and I/O subsystem, performance issues. (Formerly CS 4753. Credit cannot be earned for both CS 3853 and CS 4753.) Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 3873. Computer Networks. (3-0) 3 Credit Hours.

Prerequisite: CS 3423 and CS 3443. Network architecture, TCP/IP protocol suite, routing, data-link layer protocols, medium access control protocols, error detection and recovery, local area networks, wireless and mobile networks. (Formerly CS 4873. Credit cannot be earned for both CS 3873 and CS 4873.) Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 4013. Fundamentals of Software. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. This course is a bridge course for non-Computer Science students. It cannot be applied to the undergraduate degrees in computer science. Topics include discrete math; advanced data structure and basic algorithms, such as binary tree and stack; system programming basics; and concepts of compilation. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4023. Fundamentals of Systems. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. This course is a bridge course for non-Computer Science students. It cannot be applied to the undergraduate degrees in computer science. Topics include basic concepts and knowledge in computer organization, architecture, operating systems, and compilers. Generally offered: Fall, Spring. Course Fees: IUCS $45. Differential Tuition: $150.

CS 4113. Software Architecture and Design. (3-0) 3 Credit Hours.

Prerequisite: CS 3773. This course introduces software architecture and design concepts and practices. Topics covered in this course include software design principles, software architecture design styles, software design patterns, etc. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4123. Software Maintenance and Evolution. (3-0) 3 Credit Hours.

Prerequisite: CS 4113. This course covers the principles and techniques of software maintenance and evolution. It will introduce topics on software maintainability, evolvability, and release planning. It also explores the best practices and tools for software maintenance, such as reverse engineering, refactoring, and measurement. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4143. Software Modeling and Analysis. (3-0) 3 Credit Hours.

Prerequisite: CS 3773 and CS 3343. This course covers various techniques for modeling and analyzing software systems. The course introduces students to the topics of software modeling, static analysis, and dynamic analysis to ensure the quality of software systems. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4223. Bioinformatics I: Algorithms for Biological Data. (3-0) 3 Credit Hours.

Prerequisites: CS 3343. Study of algorithmic techniques in modeling and analyzing large-scale biological data such as biological sequences, gene expression, and biological networks. Topics include, but are not limited to, dynamic programming and string pre-processing for sequence comparison, heuristic search algorithms for pattern discovery, and graph algorithms for biological network analysis. Some fundamental concepts of molecular biology will also be introduced. Generally offered: Fall. Course Fees: IUCS $45. Differential Tuition: $150.

CS 4233. Bioinformatics II: Statistical Learning for Biological Data. (3-0) 3 Credit Hours.

Prerequisites: CS 3753 or CS 4223. Study of statistical techniques in modeling and analyzing large-scale biological data with emphasis on integrating information and tools from publicly available biological databases to address complex problems. Topics include, but are not limited to, statistical significance testing, clustering, classification, and dimension reduction. Basic biological concepts related to the applications will also be covered. Generally offered: Spring. Course Fees: IUCS: $45. Differential Tuition: $150.

CS 4243. Large-Scale Data Management. (3-0) 3 Credit Hours.

Prerequisite: CS 3423. This course presents an introduction to research and enterprise data management. Students will learn about scalable approaches to managing large-scale datasets. Application of High-Performance Computing, High-Throughput Computing, and AI for managing large-scale datasets will be covered. An overview of the SQL and NoSQL database management systems will also be included. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 4253. Machine Learning. (3-0) 3 Credit Hours.

Prerequisite: CS 3793. Study of fundamental concepts and methods of machine learning. Topics include unsupervised learning, supervised learning, reinforcement learning, and other advanced topics selected by the instructor. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4263. Deep Learning. (3-0) 3 Credit Hours.

Prerequisite: CS 3793. Study of advanced techniques for learning models. Algorithmic and hands-on introduction to deep neural networks and adversarial learning. Topics include convolutional models, generative networks, neural network vulnerabilities, and attention models, with applications in natural language understanding and computer vision. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4303. Introduction to Optimization. (3-0) 3 Credit Hours.

Prerequisite: MAT 2213 (or MAT 2214 in previous catalogs) and MAT 2233, or EGR 3323, or MAT 1223 (or MAT 1224 in previous catalogs) and CS 3333. May include Discrete, Continuous, Linear, and non-Linear optimization. Optimality conditions, Lagrange multipliers, duality theory. Applications of linear programming in computer science and discrete optimization. Gradient descent and Newton iteration (i.e., RST and second order methods), trust region methods, and conjugate gradient. Applications of RST and second order methods to engineering. (Same as MAT 4343. Credit cannot be earned for both CS 4303 and MAT 4343.) Generally offered in Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4313. Automata, Computability, and Formal Languages. (3-0) 3 Credit Hours.

Prerequisite: CS 3343. Discussion of abstract machines (finite state automata, pushdown automata, and Turing machines), formal grammars (regular, context-free, and type 0), and the relationship among them. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4333. Probability and Computing. (3-0) 3 Credit Hours.

Prerequisites: CS 3333 or MAT 2313. May include moments of random variables: randomized mincut algorithm, Chebyshev and Markov inequalities, sampling estimator for mean. Basic Concentration Inequalities: Chernoff and Hoeffding inequalities; parameter estimation and set balancing. Discrete probabilistic structures: Bucket sort algorithm, Poisson approximation, Lovasz local Lemma, independent set search. The Gaussian: Moment Generating Functions, Central Limit Theorem, JL dimensionality reduction lemma. Markov Chains and Random Walks: Stationary Distributions, and randomized 3-SAT algorithm, Entropy Function: Information and Compression. (Cross-listed with MAT 4333. Credit cannot be earned for both CS 4333 and MAT 4333.) Generally offered in Springs. Differential Tuition: $150. Course fees: IUCS $45.

CS 4353. Unix and Network Security. (3-0) 3 Credit Hours.

Prerequisite: CS 3433. A technical survey of the fundamentals of computer and information security. Issues include cryptography, authentication, attack techniques at both the OS and network level, defense techniques, intrusion detection, scan techniques and detection, forensics, denial of service techniques and defenses, libpcap, libdnet, and libnet programming. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4363. Cryptography. (3-0) 3 Credit Hours.

Prerequisites: CS 3343, and CS 3113 or CS 3433. A course in pure and applied cryptography, with emphasis on theory. Topics may include conventional and public-key cryptosystems, signatures, pseudo-random sequences, hash functions, key management, and threshold schemes. Generally offered: Spring. Differential Tuition: $150. Course Fees: IUCS $45; DL01 $75.

CS 4373. Data Mining. (3-0) 3 Credit Hours.

Prerequisites: CS 3343 and CS 3753. Principles, techniques, systems, and evaluation of data mining. Topics may include data preprocessing, frequent pattern mining, association mining, classification and prediction, cluster analysis, and advanced topics such as mining streams, time-Series, texts, and graphs. Generally offered: Fall. Course Fees: IUCS $45. Differential Tuition: $150.

CS 4383. Computer Graphics. (3-0) 3 Credit Hours.

Prerequisite: CS 2713, CS 3343, and MAT 2253. An introduction to two- and three-dimensional generative computer graphics. Display devices, data structures, mathematical transformations, and algorithms used in picture generation, manipulation, and display. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4393. User Interfaces. (3-0) 3 Credit Hours.

Prerequisite: CS 3443. Study of advanced user interface issues. User interface design, human factors, usability, GUI programming models, and the psychological aspects of human-computer interaction. Generally offered: Fall. Differential Tuition: $150. Course Fees: IUCS $45; DL01 $75.

CS 4413. Web Technologies. (3-0) 3 Credit Hours.

Prerequisite: CS 3423 and CS 3743. Fundamentals of Web and component technology: markup languages, layout design, client and server side programming, database, and Web integration. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4423. Game Development. (3-0) 3 Credit Hours.

Prerequisite: CS 3443. A study of the major topics in game development, such as game mechanics, rendering, scripting, user interfaces, animation, asset management, and physics, with a focus on team-based development practices. By the end of the course, students will have developed a full game with a group and several mini-games individually. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fees: IUCS $45; DL01 $75.

CS 4453. Penetration Testing. (3-0) 3 Credit Hours.

Prerequisite: CS 3873. Introduction to the principles and techniques associated with the cyber security practice known as penetration testing or ethical hacking. The course covers planning, reconnaissance, scanning, exploitation, post-exploitation, and result reporting. Students learn how to use penetration testing tools, how to discover system vulnerabilities, and how to avoid exploitation of vulnerabilities. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4463. Steganography. (3-0) 3 Credit Hours.

Prerequisite: CS 3423. Steganography literally means "covered writing" and is the science of hiding secret data within innocuous data. This course covers a broad set of background topics including data compression, encryption, hashing, number theory, and human perception. Then we delve into the aspects and techniques for data hiding using image and audio files for data hiding. This includes bitmaps, jpegs, and wave files. We also explore steganalysis—the detection of hidden data—in the various file types. We also discuss the use of steganography in practice, particularly use by malware. There is a course project where a team of students develop and test their own steganography program. Generally offered: Spring, Summer. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 4473. Cryptocurrencies and Bitcoins. (3-0) 3 Credit Hours.

Prerequisite: CS 3113. This course introduces the concept of public permission-less blockchains and discusses the various applications that it enables. It specifically focuses on the cryptocurrency application of such distributed systems, with an emphasis on Bitcoins. This course will cover the following topics: blockchain fundamentals, operation of the Bitcoin cryptocurrency, Bitcoin security, user privacy and anonymity in Bitcoin, Bitcoin as a distributed application platform, Bitcoin and cryptocurrency regulation, future of Bitcoins and cryptocurrencies, Ethereum and Smart Contracts. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4483. Cyber Security Foundations and Practice. (3-0) 3 Credit Hours.

Prerequisite: CS 3113. Advanced study of fundamental cyber security and privacy technologies and their applications in modern and emerging cyber systems such as social media, cloud computing, internet of things, cyber-physical systems, and cryptocurrencies. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4493. Advanced Topics in Cyber Security. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. Advanced topics in an area of systems and cloud. May be repeated for credit when topics vary. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4593. Topics in Computer Science. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. Advanced topics in an area of computer science. May be repeated for credit when topics vary. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4613. Project Management and Senior Design I. (3-0) 3 Credit Hours.

Prerequisite: CS 3443 and CS 3773. Students will self-organize into teams, prepare/propose project scope, gather requirements, produce specifications, analyze security and other risk factors, and present their designs. Industrial collaboration and/or faculty sponsorship of these projects is encouraged. Not more than a total of 6 semester credit hours of Internship, Independent Study, Senior Design, and Senior Thesis courses may count toward the Bachelor of Science degree in Computer Science. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4623. Project Management and Senior Design II. (3-0) 3 Credit Hours.

Prerequisite: CS 4613. Students continue the development of an instructor-approved design project, testing of the design project, and present their findings, along with social and ethical impact considerations. Students who own their intellectual property are required to compete in CITE. Industrial collaboration and/or faculty sponsorship of these projects is encouraged. Not more than a total of 6 semester credit hours of Internship, Independent Study, Senior Design, and Senior Thesis courses may count toward the Bachelor of Science degree in Computer Science. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4633. Simulation Techniques. (3-0) 3 Credit Hours.

Prerequisite: CS 3343. Design, execution, and analysis of simulation models, discrete event simulation techniques, input and output analysis, random numbers, and simulation tools and languages. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4643. Mobile and Wireless Network and Technologies. (3-0) 3 Credit Hours.

Prerequisite: CS 3873 or consent of instructor. Introduces the latest mobile and wireless networking technologies and network software architectures as well as the application of IoT fundamentals for mobile/wireless computing systems. Students will be able to describe user associations and traffic routing in a mobile/wireless network, interaction of elements within the mobile/wireless core, and end-to-end delivery of a packet and/or signal and what happens with the hand-off at each step along the communications path. They will be able to explain architecture differences between different generations of mobile/wireless network technologies and design and build a mobile/wireless IoT application from ground up to demonstrate their understandings. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4653. Software and Malware Reverse Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 3843 (formerly CS 3844), and CS 3113 or CS 3433. An introduction to the basic procedures to reverse engineering of software, hardware and malware. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4663. Distributed and Cloud Systems Security. (3-0) 3 Credit Hours.

Prerequisite: CS 3733. A study of the uses and security issues of virtualization, distributed systems, and cloud systems. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4673. Cyber Operations. (3-0) 3 Credit Hours.

Prerequisite: CS 3113 or CS 3433. A study of both offensive and defensive cyber operations, risk management, social engineering, perception management, and the international legal issues and considerations surrounding cyber operations, conflict, and war. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fees: IUCS $45; DL01 $75.

CS 4683. Secure Software Development and Analysis. (3-0) 3 Credit Hours.

Prerequisite: CS 3443. Analysis of software for vulnerabilities. Development of robust, secure software. Topics include source and binary code analysis, static and dynamic code analysis techniques, testing methodologies, secure programming principles and practices. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4713. Compiler Construction. (3-0) 3 Credit Hours.

Prerequisite: CS 3723 and CS 3843 (formerly CS 3844). An introduction to implementation of translators. Topics include formal grammars, scanners, parsing techniques, syntax-directed translation, symbol table management, code generation, and code optimization. (Formerly titled "Compiler Writing."). Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4723. Software Validation and Quality Assurance. (3-0) 3 Credit Hours.

Prerequisite: CS 3773. Study of software validation techniques. Introduction to static analysis and software testing approaches (functional testing, structural testing, integration testing, and regression testing). Overview of test planning and test case design. Review of topics in quality assurance. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4743. Enterprise Software Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 3773 and CS 4413. Providing a hands-on introduction to principles and best practices for the development of enterprise-level software systems. Topics include architectural patterns, database models, remote deployment and execution, and concurrency management. (Formerly titled "Applied Software Engineering.") Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4773. Object-Oriented Design Patterns. (3-0) 3 Credit Hours.

Prerequisite: CS 3773. An introduction of principles and methodologies of good software design. Study of object-oriented concepts and techniques, encapsulation, inheritance mechanisms, polymorphism, and programming in one or more object-oriented languages. Examination of design patterns that provide reusable solutions to problems in object-oriented design. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4783. Advanced Software Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 3773 and CS 4413. This course covers modern software development technology. Students utilize Swagger and JavaScript or Python to build a database-enabled RESTful web service component. Using a DevOps pipeline, students test and deploy their project using tools like Gitlab, CI/CD, OWASP ZAP, Docker, and Kubernetes. Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4823. Parallel Programming. (3-0) 3 Credit Hours.

Prerequisite: CS 3423. Parallel programming concepts (partitioning, synchronization and communication, programming models-shared memory-based and message-based), programming tools and languages, performance issues. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 4833. Embedded Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 3843 (formerly CS 3844). Concepts and design principles of embedded systems. Microprocessor and hardware architecture, sensors and actuators, basic feedback control theory. Real-time scheduling, programming in embedded systems. Generally offered: Fall. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4843. Cloud Computing. (3-0) 3 Credit Hours.

Prerequisite: CS 3423. The general trend of modern computing in cloud. Cloud computing paradigm and associate key technologies. Programming in cloud environment (e.g., Hadoop, MapReduce, and OpenStack APIs). Privacy and security in Cloud. Generally offered: Fall, Spring, Summer. Differential Tuition: $150. Course Fee: IUCS $45; DL01 $75.

CS 4853. Advanced Systems Programming. (3-0) 3 Credit Hours.

Prerequisite: CS 3733. Concepts and knowledge on system booting, memory management, process and scheduling, interrupt handling, system calls, file systems, networking, device drivers, and module programming. Runtime systems. Programming kernel modules in Linux. (Formerly titled "Systems Development and Programming.") Generally offered: Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4863. Distributed Computing and Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 3733. A distributed system comprises computers working together as a single unit. These systems are essential to the understanding of present and future computer applications. This course will include the following topics: concurrent processing, threads, network programming, distributed file systems, remote procedure calls, distributed objects, client-server models, and Internet protocols. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4883. Senior Thesis I. (3-0) 3 Credit Hours.

Prerequisite: Consent of Instructor. The student learns how to conduct independent research. The student selects a thesis topic, conducts a literature review, plans and executes an experiment, and gathers and analyzes data. Faculty sponsorship of the thesis is required, and a faculty member should agree to sponsor the student before Senior Thesis I begins. Not more than a total of 6 semester credit hours of Internship, Independent Study, Senior Design, and Senior Thesis courses may count toward the Bachelor of Science degree in Computer Science. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4893. Senior Thesis II. (3-0) 3 Credit Hours.

Prerequisite: Consent of Instructor. The student writes the thesis through a series of assignments. The student also prepares a presentation of their research and presents the thesis to the public during a Computer Science undergraduate research symposium. Faculty sponsorship of the thesis is required and should be the same faculty member from Thesis I (special exceptions are possible). Not more than a total of 6 semester credit hours of Internship, Independent Study, Senior Design, and Senior Thesis courses may count toward the Bachelor of Science degree in Computer Science. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4911. Independent Study. (0-0) 1 Credit Hour.

Prerequisite: Approval from the instructor, the Department Chair, and the Associate Dean of Undergraduate Studies in the College for which this course is offered; registration form available on the UTSA OneStop website. Independent reading, research, discussion, and/or writing under the direction of a faculty member. May be repeated for credit, but no more than 6 semester credit hours of Independent Study (CS 4911, CS 4912, CS 4913), Undergraduate Research (CS 4923), Senior Design (CS 4613, CS 4623), and Internship (CS 4933), regardless of discipline, will apply to a bachelor’s degree. Generally offered: Fall, Spring. Differential Tuition: $50. Course Fee: IUCS $15.

CS 4912. Independent Study. (0-0) 2 Credit Hours.

Prerequisite: Approval from the instructor, the Department Chair, and the Associate Dean of Undergraduate Studies in the College for which this course is offered; registration form available on the UTSA OneStop website. Independent reading, research, discussion, and/or writing under the direction of a faculty member. May be repeated for credit, but no more than 6 semester credit hours of Independent Study (CS 4911, CS 4912, CS 4913), Undergraduate Research (CS 4923), Senior Designs (CS 4613, CS 4623), and Internship (CS 4933), regardless of discipline, will apply to a bachelor’s degree. Generally offered: Fall, Spring. Differential Tuition: $100. Course Fee: IUCS $30.

CS 4913. Independent Study. (0-0) 3 Credit Hours.

Prerequisite: Approval from the instructor, the Department Chair, and the Associate Dean of Undergraduate Studies in the College for which this course is offered; the registration form is available on the UTSA OneStop website. Independent reading, research, discussion, and/or writing under the direction of a faculty member. May be repeated for credit, but not more than 6 semester credit hours of Independent Study (CS 4911, CS 4912, CS 4913), Undergraduate Research (CS 4923), Senior Design (CS 4613, CS 4623), and Internship (CS 4933), regardless of discipline, will apply to a bachelor’s degree. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4923. Undergraduate Research. (0-0) 3 Credit Hours.

Prerequisite: Restricted to students majoring in Computer Science. Approval from the instructor, the Department Chair, and the Associate Dean of Undergraduate Studies in the College for which this course is offered. This course should involve a laboratory and experimental and/or a theoretical problem. May be repeated for credit, but no more than 6 semester credit hours of Independent Study (CS 4911, CS 4912, CS 4913), Undergraduate Research (CS 4923), Senior Design (CS 4613, CS 4623), and Internship (CS 4933), regardless of discipline, will apply to a bachelor’s degree. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4933. Internship in Computer Science. (0-0) 3 Credit Hours.

Prerequisite: Junior or Seniors with a 2.5+ Overall GPA, and approval from the employer, the instructor, the Department Chair, and the Associate Dean for Undergraduate Studies, registration form available on the College of Sciences website. The opportunity for a semester-long work experience in a private business or public agency in a computer science-related position. No more than 3 semester credit hours of CS 4933, and no more than 6 semester credit hours of Independent Study (CS 4911, CS 4912, CS 4913), Undergraduate Research (CS 4923), and Senior Design (CS 4613, CS 4623) may count toward the Bachelor of Science degree in Computer Science. Generally offered: Fall, Summer. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4953. Special Studies in Computer Science. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. An organized course offering the opportunity for specialized study not normally or not often available as part of the regular course offerings. Special Studies may be repeated for credit when topics vary, but not more than 6 semester credit hours, regardless of discipline, will apply to a bachelor’s degree. Generally offered: Summer. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4963. Advanced Topics in Systems and Cloud. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. Advanced topics in an area of systems and cloud. May be repeated for credit when topics vary. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4973. Advanced Topics in Data Science. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. Advanced topics in an area of data science. May be repeated for credit when topics vary. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.

CS 4993. Directed Research. (0-0) 3 Credit Hours.

Prerequisite: Approval from the instructor, the Department Chair, and the Associate Dean of Undergraduate Studies in the College for which this course is offered; form available on the College of Sciences website. Supervised research mentored by a faculty member engaged in active research within the student’s designated area of concentration. Students may produce a thesis in addition to active research. May be repeated. This course can also be used for students pursuing the COS Undergraduate Thesis Option. Generally offered: Fall, Spring. Differential Tuition: $150. Course Fee: IUCS $45.