Skip to Content

Course Search Results

  • 3.00 Credits

    The most exciting technologies of today are immersive, interactive, solve big problems, and are even entertaining. In this course, we will study how, as software developers, we can understand our users and create innovative designs that best meet their needs and desires. Known tools and techniques from the field of human-computer interaction are reviewed. User center research and evaluation techniques will be presented and students will have the opportunity to undertake a study on user design where they apply these techniques. Prerequisite:    CS 3100
  • 3.00 Credits

    Deep learning is at the heart of many life-changing applications and areas of interests including language understanding, face recognition, speech synthesis and recognition, object detection, and robotics to name a few. This course introduces the fundamental principles of deep learning and its applications, including multilayer perceptrons, backpropagation, auto-differentiation, optimizers, convolutional networks (CNNs), recurrent networks (RNNs), autoencoders (AEs), and generative adversarial networks (GANs). This course focuses on both understanding deep learning algorithms (their strengths and limitations) and getting acquainted with the current deep learning research landscape. Prerequisite:    CS 5600
  • 3.00 Credits

    Current business demands often require an amount of data that cannot reasonably process on a single computer. Even companies that work with reasonably small datasets expect rapid growth, so they prefer to use data processing solutions that scale when needed. In this course, you will gain practical, hands-on experience with modern cloud computing resources through publicly available cloud infrastructures. This course will prepare students with practical, hands-on experience in modern cloud and distributed computing paradigms and tools. Prerequisite:    CS 3100 and CS 3580 and CS 4580
  • 3.00 Credits

    Introduction to software testing as a precursor of debugging and repair. Understanding the cognitive process behind debugging and an introduction to scientific debugging. Introduction to automated debugging techniques like Fault Localization and Delta Debugging. Understanding the intuition behind Automatic Program Repair (APR). Introduction to APR techniques and tools. Introduction to recent advances in program debugging and repair. Understanding challenges and opportunities associated with automated program debugging and repair. Prerequisite:    CS 3230 and CS 3280
  • 3.00 Credits

    Computer Systems Security studies the design and implementation of secure computer systems. Topics include threat models, operating system security, TCP/IP security issues, information flow control, language security, hardware security, security in web applications, and detecting/monitoring unauthorized activity. Assignments include readings from current articles, labs that involve implementing and compromising a secure computer system, and a team final project. Prerequisite:    CS 2420 and CS 3100
  • 3.00 Credits

    A study of compilers, grammars, finite-state and push down automata, scanning, parsing, error handling, semantic analysis and code generation. Prerequisite:    CS 2130 and CS 2420
  • 3.00 Credits

    This course explores new or otherwise relevant computer science topics that are not covered in a regularly offered course. Each offering will have a specific title and authorized credit that will appear on the student's transcript. May be repeated for credit under different titles. Lecture or Lecture/Lab combination. Prerequisite:    CS 3100
  • 3.00 Credits

    Methods for developing high-quality hardware/software systems that are delivered on time, within budget, and according to requirements. Techniques for specifing programs and reasoning about them, including formal logical proofs, correct code synthesis, model checking, type theory specifications, and properly evaluating concurrent programs. Prerequisite:    CS 2420
  • 3.00 Credits

    In parallel programming you will learn how to utilize multiple CPU's/Cores/Nodes in parallel to increase the performance of your applications. Different architectures will be discussed along with the advantages and disadvantages of each. This course will cover key topics parallel programming including: memory models, parallel programming architectures, Flynn's Taxonomy, synchronization, and performance analysis and tuning. In addition to learning the theoretical background of parallel programming, you will work on hands-on projects using multiple parallel programming languages and libraries including (CUDA, openMP, MPI, open CL, and python). Prerequisite:    CS 3100
  • 1.00 Credits

    The purpose of this course is to introduce students in the graduate programs in the College of Engineering, Applied Science, and Technology to the expectations of graduate study and the scholarly requirement options for their program. Students will learn the difference between a research thesis and a design project as well as how to select, narrow, and refocus a research topic. Students will explore academic electronic databases and Internet search engines, thus developing skills that allow them to critically evaluate published scholarly work. They will also be introduced to research methods and design and will develop skills in organization, effective editing, reviewing, and proofreading. This course should be taken within the first year of study to establish a program of study and support future work on a thesis or project.