Skip to Main Content
Mobile Menu

CS – Computer Science

CS 501 COMPUTER SCIENCE PRINCIPLES (3-0-3)(SU). Introduction to the central ideas, practices and impact of computer science and computational thinking. Covers the big ideas in computer science: creativity, abstraction, data and information, algorithms, programming, the Internet, and global impact. Computational thinking practices: connecting computing, creating computational artifacts, abstracting, analyzing problems and artifacts, communicating, and collaborating. In-depth projects using at least one visual and one text-based programming language. Adapting content to high school courses. PREREQ: Admission to Master of Science in STEM Education or Graduate Certificate in Computer Science Teacher Endorsement.

CS 503 TEACHING AND LEARNING COMPUTER SCIENCE I (4-3-5)(F). Problem solving and object-oriented programming. Software development process. Data and expressions, conditionals and loops, arrays and lists, and classes and interfaces. Introduction to graphical user interfaces and UML diagrams. Approaches and techniques to teach CS I material in grades 6-12. PREREQ: Admission to Master of Science in STEM Education or Graduate Certificate in Computer Science Teacher Endorsement.

CS 505 TEACHING AND LEARNING COMPUTER SCIENCE II (4-0-4)(S). Program correctness, testing and analysis of time and space complexity. Graphical user interfaces. Object-oriented programming and design, including hierarchy and inheritance. Basic data structures: lists, collections, stacks and queues. Basic searching and sorting. Approaches and techniques to teach CS II material in grades 6-12. PREREQ: Admission to Master of Science in STEM Education or Graduate Certificate in Computer Science Teacher Endorsement, and CS 503.

CS 507 COMPUTING FOUNDATIONS FOR COMPUTATIONAL SCIENCE (3-0-3)(F/S). Introduction to the basic techniques, tools and principles of writing high-quality code In scientific computing. Topics include: overview of relevant compiled and interpreted languages, data structures, algorithms, complexity of algorithms, sorting and searching, writing, testing, and debugging scientific code, profiling and improving performance, portability and scalability. PREREQ: Regular admission to the Computational Science and Engineering emphasis of the Doctor of Philosophy in Computing program or PERM/INST.

CS 510 DATABASES (3-0-3)(S). Foundations of database management systems. Database models: relational, object and other models. Database design: entity relationship modeling, logical relational schema design, physical design, functional dependencies and normalization, and database tuning. Database application development using database interfaces embedded in host languages. PREREQ: CS 321 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 512 ADVANCED TOPICS IN DATABASES (3-0-3)(F/S). Parallel and distributed database system architectures, distributed database design, client/ server database systems. Selected topics from new developments in: extended relational databases, multimedia databases, information retrieval systems, object-oriented databases, temporal databases. PREREQ: CS 410 or CS 510 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 516 INTRODUCTION TO WEB DEVELOPMENT (3-0-3)(F/S). An introduction to the technologies used for client-side and server-side web development. Learn fundamentals behind competing web technologies, best practices for design and usability, and build rich, dynamic, n-tier secure web applications. Tools used are mainly open source such as PHP, Javascript, XML, HTML, CSS, MySQL, and the Apache web server. PREREQ: Admission to the MS in STEM Education or GC in Computer Science Teacher Endorsement program, and CS 505.

CS 517 MOBILE APPLICATION DEVELOPMENT (3-0-3)(F/S). A project-intensive course on mobile development using either iOS or Android as a platform. Overview of mobile platforms and their characteristics, mobile interface design and best practices using such technologies as GPS, camera, persistence, notifications and others. Platform will be announced before the beginning of each semester. PREREQ: Admission to the MS in STEM Education or GC in Computer Science Teacher Endorsement program, and CS 505.

CS 518 INCLUSIVE STRATEGIES FOR TEACHING COMPUTER SCIENCE TO WOMEN AND MINORITIES (2-0-2)(SU). Readings and discussions of methodologies and teaching CS to women and minorities in group settings. (Pass/Fail.) PREREQ: Admission to Master of Science in STEM Education or Graduate Certificate in Computer Science Teacher Endorsement.

CS 521 DESIGN AND ANALYSIS OF ALGORITHMS (3-0-3)(F)(Even Years). Asymptotic analysis, recurrences, and amortized analysis. Divide-and-conquer, dynamic programming, greedy algorithms, back tracking, and heuristic search. Advanced graph algorithms and network flows. NP-hardness and beyond. Approximation algorithms. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 525 COMPUTER NETWORKS (3-0-3)(F/S). OSI reference model. Performance analysis of protocols-mathematical modeling and simulation. Quality of Service, flow control, and scheduling. MAC and routing in wireless networks. PREREQ: CS 425, and MATH 361 or MATH 360, or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 530 PARALLEL COMPUTING (3-0-3)(F)(Even Years). Models of parallel computation. Fundamental design patterns used in parallel algorithms: embarrassingly parallel, partitioning, divide and conquer, software pipelining, synchronous computations and load balancing. Implementation of parallel programs using MPI, GPUs and Map-Reduce on parallel clusters. PREREQ: CS 253 and CS 321, or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 531 ADVANCED PROGRAMMING LANGUAGES (3-0-3)(F/S). Advanced topics in programming-language theory, design, and implementation. Topics include: data types; binding, scope, and extent; abstraction, extensibility, and control mechanisms; formal semantics and program verification. Emphasis on alternative programming-language paradigms. PREREQ: CS 354 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 533 INTRODUCTION TO DATA SCIENCE (3-0-3)(F). Foundational paradigms, techniques, and tools for data science. Formulating tractable research questions, identifying relevant data, designing and carrying out analyses, and presenting results. Best practices for storing and managing data, source code, analysis scripts, and results in data science workflows. Efficient management of and computation over medium-sized data sets. Projects and methods drawn from a variety of applications. PREREQ: CS 321 and MATH 360/361 or MATH 471; or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 534 MACHINE LEARNING (3-0-3)(S). Foundation of machine learning through real data applications. Topics include: supervised techniques such as logistic regression, support vector machine (with kernels), classification tree; unsupervised learning techniques such as clustering algorithms, association rule mining algorithms and outlier detection techniques; advanced machine learning techniques such as boosting algorithms, graphical models and dimensionality reduction methods. Equal emphasis will be given to theory and applications. PREREQ: CS 533.

CS 535 LARGE-SCALE DATA ANALYSIS (3-0-3)(F)(Odd Years). Covers algorithms and infrastructures for managing large-scale data, applying efficient algorithms based on MapReduce and other paradigms using current software packages for distributed data analysis. Storage of large-scale data using distributed file systems and distributed databases. Identifying and handling common pitfalls in large-scale data analysis. COREQ: CS 533.

CS 536 NATURAL LANGUAGE PROCESSING (3-0-3)(S)(Odd Years). Introduces probability theory, information theory, and linguistics and goes into depth on machine learning techniques and tasks applied to language data. Generative and discriminative classification and their application to language modeling, syntactic parsing, sequence tagging, and lexical semantics. PREREQ: Regular admission into Master of Science in Computer Science or regular admission into Doctor of Philosophy in Computing.

CS 537 INTRODUCTION TO INFORMATION RETRIEVAL (3-0-3)(F)(Odd Years). Introduction to fundamental concepts and terminology related to Information Retrieval (IR) and design methodologies and issues of IR applications. Covers central IR topics including text processing, search, ranking, indexing, classification/clustering, fundamental IR models (e.g., Boolean, Vector Space, and Probabilistic models), and evaluation strategies. PREREQ: Regular admission into Master of Science in Computer Science or regular admission into Doctor of Philosophy in Computing.

CS 538 RECOMMENDER SYSTEMS AND ONLINE PERSONALIZATION (3-0-3)(S)(Odd Years). Introduces foundational principles and current research in recommendation and personalization: User modeling, content-based and collaborative filtering techniques for item recommendation, offline and online evaluation, human factors, and ethical issues in recommendation and personalized computing. PREREQ: CS 321 or regular admission into Master of Science in Computer Science or regular admission into Doctor of Philosophy in Computing.

CS 539 SOCIAL MEDIA MINING (3-0-3)(F)(Even Years). An introduction to fundamentals of social networks and social media analysis and mining. Topics include graph essentials and graph mining, properties of real-world networks, social network generative models, information diffusion, link prediction, community mining, and user behavior analytics. PREREQ: CS 321 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 541 (ECE 532) COMPUTER ARCHITECTURE (3-0-3)(S). Structure of computer systems using processors, memories, input/output (I/O) devices as building blocks. Computer system instruction set design and implementation, including memory hierarchies, microprogramming, pipelining and multiprocessors. Issues and tradeoffs involved in the design of computer system architectures with respect to the design of instruction sets. Applications of hardware description languages (HDL) in the design of computer systems. May be taken for CS or ECE credit, but not both. PREREQ for CS 541: regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 542 QUANTITATIVE COMPUTER ARCHITECTURE (3-0-3)(S). Quantitative analysis on computer architectures and software optimizations with static and dynamic simulation techniques. Design implications of memory latency and bandwidth limitations. Performance enhancement via within-processor and between-processor parallelism. In particular, the study of pipelining, instruction-level parallelism, memory hierarchy design, storage systems, and multiprocessors are emphasized. PREREQ: CS 441 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 546 COMPUTER SECURITY (3-0-3)(S). Computer and network security. Public-key and private-key cryptography, authentication, digital signatures, key exchange, key management, certification authorities, and distributed trust models. File system security, Mail system security, and Web security. Intruders, Trojan Horses, and viruses. Covert channels. Projects will involve using currently available security tools. PREREQ: CS 453 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 550 PROGRAMMING LANGUAGE TRANSLATION (3-0-3)(S)(Odd Years). Theory and practice of formal language translation, experience with compiler construction tools under UNIX. Students work on significant projects. PREREQ: CS 253 and CS 321 and CS 354, or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 551 ADVANCED TOPICS IN COMPILATION (3-0-3)(F/S). Code generation, analysis, and optimization. Projects will use a simple framework for performing analysis and optimizations at the assembly level. PREREQ: CS 450 or CS 550 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 554 ADVANCED OPERATING SYSTEMS (3-0-3)(S). Operating system kernels: process management, memory management, file systems, security and protection. Advanced concurrent programming techniques. Operating system design and construction techniques. Modifying operating system code to observe behavior, add new functionality and run experiments. Support for soft and hard real-time systems, big data, cybersecurity, virtual machines and other domains. PREREQ: CS 453, or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 555 DISTRIBUTED SYSTEMS (3-0-3)(S)(Even Years). Principles and paradigms of distributed systems. Communication, processes, naming, synchronization, consistency and replication, fault tolerance and security. In-depth coverage of Remote Procedure Call (RPC), Remote Method Invocation (RMI) and socket programming. Survey of major distributed systems. Several software projects. PREREQ: CS 253 and CS 321 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 557 ARTIFICIAL INTELLIGENCE (3-0-3)(F)(Even Years). Course will include a survey of some of the following topics, plus a project: Principles of knowledge-based search techniques; automatic deduction; knowledge representation using predicate logic, semantic networks, connectionist networks, frames, rules; applications in problem solving, expert systems, game playing, vision, natural language understanding, learning, robotics; LISP programming. PREREQ: CS 321 and CS 354, or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 561 THEORY OF COMPUTATION (3-0-3)(S). Regular languages and finite automata, minimization of automata. Context-free language, normal forms and pushdown automata. Turing machine and its variations. Extensive theoretical treatment of decidability and reducibility. Introduction to computational complexity. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 564 VISUALIZATION TECHNIQUES (3-0-3)(F)(Even years). Fundamentals of visualization including data sources, representations, and graphical integrity. Visualization of scalars, vectors, tensors, flows and high-dimensional data. Visual perception and color theory. Applications from medical imaging, social media, sports, and seismology domains. CS 464 or MATH 275 or MATH 301 recommended. PREREQ: CS 321 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 565 (MATH 565) NUMERICAL METHODS I (3-0-3)(F). Approximation of functions, solutions of equations in one variable and of linear systems. Polynomial, cubic spline, and trigonometric interpolation. Optimization. Programming assignments. May be taken for CS or MATH credit, but not both. PREREQ: MATH 365 or PERM/INST.

CS 566 (MATH 566) NUMERICAL METHODS II (3-0-3)(S). Matrix theory and computations including eigenvalue problems, least squares, QR, SVD, and iterative methods. The discrete Fourier transform and nonlinear systems of equations. Programming assignments. May be taken for CS or MATH credit, but not both. PREREQ: CS 565 or MATH 465 or MATH 565 or PERM/INST.

CS 567 APPLIED CRYPTOGRAPHY (3-0-3)(F). A study of how modern cryptographic protocols and schemes work, and how they are used in real-world applications. Topics include stream ciphers, block ciphers, public-key cryptography, RSA cryptosystem, public-key cryptosystems based on the discrete logarithm problem, digital signatures, and hash functions. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 569 HUMAN COMPUTER INTERACTION (3-0-3)(S)(Odd Years). Science-based theories and models of user interface design and development. Graphical user interfaces for desktop, web, and mobile devices. Usability assessment by quantitative and qualitative methods. Task analysis, usability tests, expert reviews, and continuing assessments of working products by interviews, surveys, and logging. Building of low-fidelity paper mockups, and a high-fidelity prototype using contemporary tools and programming environments. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 572 OBJECT-ORIENTED DESIGN PATTERNS (3-0-3)(F)(Even Years). Reviews object-oriented design principles, explains the goals and form of design patterns, and examines several well-known patterns. PREREQ: CS 321 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 573 ADVANCED SOFTWARE ENGINEERING (3-0-3)(F). A study of so ware development processes and methodologies. Topics include: so ware process models, requirements analysis, design principles, formal specification, validation and verification techniques, and so ware metrics. PREREQ: CS 471 or regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 574 ADVANCED SOFTWARE QUALITY (3-0-3)(F). Study of verification techniques beyond testing and static analysis, including model checking and symbolic execution. Integrates formal specification of program requirements. Illustrates application of verification techniques to concurrent programs. Software-quality literature review and exploration of advanced software quality topics. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science

CS 575 SOFTWARE SECURITY (3-0-3)(S)(Even Years). Principles, techniques, and best practices for developing secure software. Emphasizes the security ramifications for different activities of software development processes. Topics include security policies, security requirements analysis, threat modeling, secure design, secure programming, and security testing and verification. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 577 SOFTWARE MAINTENANCE AND EVOLUTION (3-0-3)(S)(Odd Years). Exploration of leading research in software maintenance and evolution. Topics include concept location, impact analysis, traceability link recovery, bug triaging, developer recommendations, program comprehension, application of information retrieval in software maintenance, application of data mining and machine learning in software engineering, software repositories mining, reproducibility of experiments, and user studies. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 621 DIGITAL FORENSICS (3-0-3)(S)(Even Years). Explores principles and practices of digital forensics, including identification, collection, acquisition, authentication, preservation, examination, analysis, and presentation of digital evidence. Discusses computer forensics, network forensics, cell phone forensics, and other types of digital forensics. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 622 ADVANCED NETWORK SECURITY (3-0-3)(F). Explores security aspects of emergent network environments, including multiparty, cellular, sensor, VoIP, smart grid, and SDN environments. Focuses on intrusion detection, intrusion prevention, traffic analysis, and responses to network attacks. PREREQ: CS 525, CS 546, and regular admission to PhD in Computing or MS in Computer Science.

CS 623 CYBER-PHYSICAL SYSTEMS (3-0-3)(F)(Odd Years). Studies principles, methods, and techniques for designing and analyzing cyber-physical systems. Topics will include system design, monitoring, real-time scheduling, feedback control, hazard analysis, verification and validation, and emerging applications of cyber-physical systems. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 624 CYBER SECURITY OF CRITICAL INFRASTRUCTURES (3-0-3)(F)(Even Years). Explores vulnerabilities, threats, and mitigating controls of critical infrastructures. Examines national policies, frameworks, industry standards, and sector-wide initiatives for protection of critical infrastructures. Discusses environmental, operational, and economic impacts of attacks and supporting mitigating controls. PREREQ: Regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

CS 633 DEEP LEARNING (3-0-3)(S)(Even Years). Applications and methods for machine learning with deep learning and artificial neural networks. Implementation of deep learning algorithms and application of existing toolkits to address tasks such as image processing, sequential classification, and general classification. PREREQ: CS 533; and MATH 301 or regular admission into Master of Science in Computer Science or regular admission into Doctor of Philosophy in Computing.

CS 637 ADVANCED TOPICS IN INFORMATION RETRIEVAL (3-0-3)(S)(Even Years). An exploration of diverse areas of study related to information retrieval. Topics include query suggestion, question answering, recommendation systems, and (social) web search. Emphasis on exploring state-of-the-art research and future trends via reading assignments and topic presentations. PREREQ: CS 537.

CS 667 (MATH 667) ADVANCES IN APPLIED CRYPTOGRAPHY (S)(Odd Years). Secure two-party and multiparty computation, proof by simulation, cryptographic commitments, sigma protocols, zero-knowledge proofs, advanced authenticated key exchange protocols, identification protocols and their security. PREREQ: CS 567 and regular admission to Doctor of Philosophy in Computing or Master of Science in Computer Science.

Refer to the University-wide Graduate Courses section in this catalog for additional course offerings.