Course Listing

Courses

Please be sure to check that you have completed all pre-requisites before attempting to enroll in a course.

Course ID Name Description
CS 5100 Advanced Computer Science Internship This course provides advanced training supervised by computer scientists in internship programs approved by the department. Course cannot be counted toward any graduate degree, is open only to majors in the Department of Computer Science. May be repeated once but not for credit and requires approval of the department Chair.
CS 5199B Thesis This course represents a student’s continuing thesis enrollment. The student continues to enroll in a Thesis B course until the thesis is submitted for binding. Graded on a credit (CR), progress (PR), no-credit (F) basis.
CS 5299B Thesis This course represents the continuing thesis enrollments for a student. The student continues to enroll in this course until the thesis is submitted for binding. Graded on a credit (CR), no-credit (F) basis.
CS 5300 Professional Development of Graduate Assistants This course is designed to develop and enhance the professional and technical skills of graduate teaching and instructional assistants. Topics covered may include, but are not limited to, teaching skills, technical skills, ethical and legal issues, and laboratory management. This course cannot be counted toward any degree.
CS 5301 Programming Practicum Intensive review of programming through data structures. Includes syntax, semantics, problem solving, algorithm development, and in-class exercises. May be repeated once. Does not count for credit toward any graduate degree.
CS 5302 Foundations of Data Structures and Algorithm Design This course serves as a foundation course for computer science master's degree students who need reinforcement of fundamental concepts covered by CS 3358. May be repeated once. This course does not earn graduate degree credit.
CS 5303 Foundations of Computer Architecture This foundation course for CS master's degree students who need CS 3339 concept reinforcement covers fundamental hardware components. Topics include ALUs, single and multiple cycle datapath and control, RISC vs. CISC, pipelining, caches, I/O, virtual memory, and related performance issues. It may be repeated once and is non-graduate degree credit.
CS 5305 Foundations of Operating Systems This foundation course is for CS master's students who need CS 4328 fundamental concept reinforcement. It covers the principles of operating systems, algorithms for CPU scheduling, memory management, cooperating sequential processes and device management. It may be repeated once. This course does not earn graduate degree credit.
CS 5306 Advanced Operating Systems A study of modern operating systems including network, distributed, or real-time systems.
CS 5310 Network and Communication Systems A study of network and communication systems. Verification and/or implementation of protocols will be required.
CS 5316 Data Mining This course covers fundamental concepts and techniques plus recent developments in data mining and information retrieval. Provides relevant research training and practice opportunities. May not be taken for credit if student received credit for CS 4315.
CS 5318 Principles of Programming Languages This course focuses on the principles of programming languages. Topics covered include programming paradigms, concepts of programming languages, formal syntax and semantics, and language implementation issues.
CS 5326 Advanced Studies in Human Factors of Computer Science Professional level presentation of techniques and research findings related to human-computer interaction.
CS 5329 Algorithm Design and Analysis Introduction to algorithm design and analysis, computational complexity, and NP-completeness theory.
CS 5331 Crafting Compilers Overview of the internal structure of modern compilers. Research on compilation techniques. Topics include lexical scanning, parsing techniques, static type checking, code generation, dataflow analysis, storage management, and execution environments.
CS 5332 Data Base Theory and Design Computer system organization for the management of data; data models, data model theory, optimization and normalization; integrity constraints; query languages; intelligent database systems.
CS 5334 Advanced Internet Information Processing Integration of popular scripting languages (Perl, Javascript, PHP, and other CGI capable languages) and database programming languages (embedded database programming languages, JavaServlets, and PHP) to provide advanced information processing for Internet applications that demand both database support and sophisticated, application specific information processing.
CS 5335 Research in Object-Oriented System Development The course covers the object-oriented methodologies for system analysis, design, implementation, testing, and other aspects of systems development. Emphasis will be on using OO methodologies to manage the complexity of complicated software. Other topics like modeling, OODB, and OO languages will also be covered.
CS 5338 Formal Languages Advanced topics in automata theory, grammars, Turing machines, decidability, and algorithmic complexity.
CS 5341 Advanced Network Programming Study of advanced concepts and programming skills in computer networks: advanced TCP/IP API, multicasting and broadcasting, reliable communications, advanced I/O functions and options.
CS 5343 Wireless Communications and Networks Study of the fundamental aspects of wireless communications and wireless/mobile networks, introduction of wireless/mobile networking APIs.
CS 5346 Advanced Artificial Intelligence Knowledge representation; knowledge engineering; reasoning; parallel and distributed AI; connectionist models; machine learning and intelligent databases; implementation of systems in high-level AI languages.
CS 5348 Computer Organization and Design This course covers the dynamic interaction of the computer system building blocks and their management. Course topics include the design of the instruction set, high speed arithmetic, memory hierarchy, and control units. Computer system performance evaluation methodology and techniques are also covered.
CS 5351 Parallel Processing Introduction to the design and analysis of parallel algorithms, parallel architectures and computers.
CS 5352 Distributed Computing Study of advanced topics in distributed systems: concurrency control and failure recovery, management of replicated data, distributed consensus and fault tolerance, remote procedure calls, naming and security.
CS 5369G Web Service Engineering This course introduces concepts, principles, and methodology enabling development of a software as a service according to Service-Oriented Architecture; methodology of SOA-based systems development; main technologies used in achieving SOA; and challenges and opportunities that SOA provide. In SOA, software applications are constructed based on independent component services with standard interfaces.
CS 5369J Advanced Human Computer Interaction This course will cover state of the art Human Computer Interaction topics such as perceptual compression, eye-gaze, and brain computer interfaces with emphasis on the human visual system, eye-tracking, and electroencephalography.
CS 5369L Machine Learning and Applications Provides broad introduction to machine learning, including learning theory, and recent topics like support vector machines and feature selection. Covers basic ideas, intuition, and understanding behind modern machine learning methods. Discusses applications like face recognition, text recognition, biometrics, bioinformatics, and multimedia retrieval.
CS 5369M Software Evolution and Maintenance Software evolution and maintenance is one of the most important and complex activities in software engineering. Programmers rarely build software from scratch but often modify existing software to fix defects or add new features. This course studies the fundamentals of cutting-edge techniques and tools for software evolution and maintenance.
CS 5369Q Recommender Systems This course covers various concepts of recommender systems, including personalization algorithms, evaluation tools, and user experiences. Discussion of how recommender systems are deployed in business applications, design of new recommender experiences, and how to conduct and evaluate research in recommender systems. Cannot take for credit if already took CS 4379Q.
CS 5369Y Green Computing Reducing mobile device, cloud computing platform, and supercomputer energy consumption is a paramount, daunting problem. This course covers state-of-the-art green computing research, including energy-efficient hardware and software design, power-aware resource management and storage solutions, green data centers and mobile computing. Cannot be taken for credit if received CS 4379Y credit.
CS 5369Z DISTRIB LEDGER SYS & BLOCKCHNS
CS 5374 Neural Networks A study of neural computing, including basic concepts, algorithms, and applications; back propagation and counter propagation networks; Hopfield networks; associative memories; massively parallel neural architectures; adaptive resonance theory; optical neural networks; connectionist approaches.
CS 5375 Multimedia Computing A study of digital representation and processing of the major multimedia data types: image, audio, and video. Compression techniques for the three data types, standards, and storage media.
CS 5376 Enterprise Application Integration Introduction to the integration of all services available on the Web. It emphasizes component-based integration frameworks based on J2EE specification (EJB, Servlets, JMS), inter-organization workflow integration frameworks, and XML framework. Students must have knowledge of object-oriented design, object-oriented programming language, databases, and networking.
CS 5378 Advanced Computer Security This course covers various aspects of producing secure computer information systems that provide guaranteed controlled sharing. Emphasis is on software models and design, including discovery and prevention of computing systems security vulnerabilities. Current systems and methods are examined and critiqued.
CS 5388 Advanced Computer Graphics A study of the algorithms and data structures used in representing and processing visual data.
CS 5389 Graphical User Interfaces Covers both abstract and practical treatments of using graphics to implement interactive computer/human interfaces. Includes a survey of the major GUI standards and tools.
CS 5391 Survey of Software Engineering A study of the software life cycle with emphasis on system analysis and design. Methodologies based on data flows and on objects will be surveyed. A component on professional ethics is included.
CS 5392 Formal Methods in Software Engineering The use of design and specification languages in producing software systems. Emphasis is placed on proving correctness of designs and implementations.
CS 5393 Software Quality The latter half of the software life cycle is discussed. Topics include testing, performance evaluation, and software metrics. Appropriate software tools are studied and used.
CS 5394 Advanced Software Engineering Project Students produce a software project of significant size in a team environment. All aspects of the software engineering course sequence are integrated and put into practice.
CS 5395 Independent Study in Advanced Computer Science Open to graduate students on an independent basis by arrangement with the faculty member concerned. Course is not repeatable for credit.
CS 5396 Advanced Software Engineering Processes and Methods The essentials of software engineering processes methods, and tools for the evolutionary design of complex interactive software are discussed. Overviews of other topics like quality concepts, the SEI CMM, information technology, and network technology are covered. Student completes a literature survey of the latest software engineering analysis and design processes, methods, and tools.
CS 5399A Thesis This course represents the initial thesis enrollment for the student. No thesis credit is awarded until student has completed the thesis in CS 5399B. Graded on a credit (CR), no-credit (F) basis. Requires approval of department advisor and/or department Chair.
CS 5399B Thesis This course represents the continuing thesis enrollments for a student. The student continues to enroll in this course until the thesis is submitted for binding. Graded on a credit (CR), no-credit (F) basis. Requires approval of department advisor and/or department Chair.
CS 7100 Graduate Computer Science Internship This course provides advanced training supervised by computer scientists in internship programs approved by the department.
CS 7199 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.
CS 7299 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.
CS 7300 Introduction to Research in Computer Science This credit/no credit course is designed to develop research and communication skills for Ph.D. students. Topics covered include research processes, research methods, ethics, conducting literature review, critiquing papers, preparing research proposals, faculty research presentations, and the software tools and platforms available for conducting applied computing research.
CS 7308 Computer Science Studies This course provides foundations in computer science for students entering the doctoral program who may need certain background or leveling coursework. The course does not earn graduate degree credit and is graded on a credit (CR), progress (PR), no–credit (F) basis. It is repeatable with a different emphasis.
CS 7309 Professional Development of Doctoral Assistants This course is designed to equip the doctoral students with skills and an understanding of the proper procedures to be effective doctoral instructional and teaching assistants. This course does not earn graduate credit and is graded on a credit (CR), progress (PR), no-credit (F) basis.
CS 7311 Data-Driven Computational Methods and Infrastructure This course covers computational and statistical methods for using large-scale data sets (‘big data’) to answer scientific and business questions. It focuses on framing research questions, understanding how data can answer them, and using modern software tools such as Spark and Hadoop for scalable data storage, processing, and analysis.
CS 7312 Advanced Data Mining This course provides in-depth coverage of advanced data mining and information retrieval principles and techniques. It also offers extensive training and practice opportunities in frontier research directions.
CS 7313 Advanced Machine Learning and Pattern Recognition This course provides students advanced theoretical and practical skills to learn, design, implement, and apply machine learning and pattern recognition approaches. The students will gain analytical and problem-solving skills by studying machine learning and pattern recognition techniques and applying them to solve real problems.
CS 7314 Bioinformatics This course introduces advanced algorithms for data-intensive computational analysis targeting biological applications such as drug response prediction, gene network analysis, and protein/RNA structure prediction. Main techniques include greedy search, linear regression, clustering, network analysis, expectation maximization, and Hidden Markov models, which are widely applicable beyond biological data.
CS 7321 Human Computer Interaction: Concepts, Models, and Methodologies This course provides an introduction to Human Computer Interaction (HCI) research, methods, and topics, including fundamentals of user interface and experimental design, usability, evaluation methods, software toolkits for interactive applications, graphics, visualization, mobile design, collaborative and social computing, biological factors, and human computation.
CS 7322 Human Factors and Ergonomics This course combines knowledge in the fields of intelligent user interfaces, human factors, ergonomics, and environmental psychology. Topics include HCI principles, human information processing, anthropometry, principles of eye tracking and their effects on human factors research, as well as operations of biometrics systems and human factors influencing those systems.
CS 7323 Image Processing and Computer Vision This course covers fundamentals and advanced topics of image processing and principles of computer vision. Topics include image formation, acquisition, filtering, segmentation, compression and shape representation, as well as computer analysis and understanding of still/motion images, methods for facial and gesture recognition and image retrieval from image databases.
CS 7324 HCI Paradigms for Animation, Visualization, and Virtual/Augmented Reality This course introduces advanced methods for enhancing user experience and presents effective HCI models via computer graphics, imaging, animation, simulation, visualization, augmented reality, and immersive virtual reality. Additionally, the course presents related science and engineering foundations as well as graphic design, cognitive science, and perceptual psychology theories and models.
CS 7331 High-Performance Computing This course covers the advanced design, analysis, and optimization of high-performance applications. Topics include high-performance computer architectures, including accelerators and systems-on-chip, performance modeling and benchmarking, data and control dependence analysis, data locality estimation, memory hierarchy management, techniques for exposing parallelism, and code transformations. Different workloads are studied.
CS 7332 Advanced Parallel Computing This course covers advanced design of parallel algorithms, performance modeling, parallel hardware, language support for parallel programming, and programming models for shared- and distributed-memory systems ranging from handheld multicore devices to large-scale clusters and accelerators. The students will gain applied knowledge and skills by developing parallel software for multiple platforms.
CS 7333 Advanced Green Computing This course covers hardware and software techniques to improve the energy-efficiency of computing systems. Topics include best practices in building energy-efficient data centers and mobile devices, current trends in reducing the energy consumption of processors and storage components, energy-aware resource management, software optimizations, and hands-on experience on power-measurable systems.
CS 7341 Cyberspace Security This course presents recent advances in methodologies, models, systems and applications of cyberspace security research. Topics include in-depth coverage of the state-of-the-art security technologies and research issues on information security, software security, network security, secure system design, secure programming, applied cryptography, vulnerability, and threats.
CS 7342 Advanced Computer Networking This course covers recent research ideas, methodologies and approaches in networking research. The course focuses on the development of protocols and the analysis of related algorithms. Topics include new network architectures, cloud computing, software defined networking, wireless systems, social networks, and security and privacy.
CS 7343 Mobile Networks and Computing This course provides an in-depth study of wireless mobile communication networks, wireless network measurements and modeling, channel assignments and coverage, wireless network protocols, mobile data management, wireless security, and various wireless network applications including ad hoc, sensor networks, delay-tolerant networks, and mobile social networks.
CS 7351 Advanced Software Engineering Software engineering is the application of scientific methods to software development and maintenance. This course provides an in-depth study of advanced concepts and techniques of automatic software generation and analysis. Topics include software process programming, symbolic execution, model checking, property generation and checking, and runtime verification of complex software systems.
CS 7387 Research in Computer Science This course covers up-to-date research topics in computer science under the direction of a supervising professor. The course can be repeated once for additional credit with a different emphasis.
CS 7389A Service Computing This course introduces concepts and principles for enabling the development of software as a service based on Service-Oriented Architecture (SOA), methodology of SOA systems development, the main technologies used in achieving SOA, and state of the art techniques and advances in emerging cloud and edge (Internet of Things) services.
CS 7389B Advanced Software Evolution This topics course provides an in-depth study of state-of-the-art software evolution techniques and tools based on the current research literature. Software evolution has become increasingly important in software development. Software systems often evolve to fix defects, to improve performance, or to adapt to various other requirements.
CS 7389C Real-Time Systems
CS 7389D HPC@SCALE This course will teach basic aspects of building a scalable high performance computing (HPC) system. Specifically, it will focus on the design principles for scaling parallel communication and I/O operations for accessing HPC storage using a message-passing programming model. The course will use two large-scale systems—checkpointing for resilience and a parallel file system for storage as use cases to demonstrate how these principles are used in practice. Students will develop components of a scalable system and use software tools to measure and analyze their performance.
CS 7389E NETWORK ANALYSIS
CS 7389F SECURE CYBER-PHYSICAL SYSTEMS
CS 7389G HUMAN-CENTERED DATA SCIENCE
CS 7389H DEEP LEARNING
CS 7399 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.
CS 7599 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.
CS 7699 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.
CS 7999 Dissertation Original research and writing in computer science is to be accomplished under the direct supervision of the Ph.D. research advisor. While conducting dissertation research and writing, the student must be continuously enrolled each long semester. Graded on a credit (CR), progress (PR), no–credit (F) basis. Repeatable for credit.