Skip to Content

Course Search Results

  • 3.00 Credits

    Introduction to fundamental principles of advanced algorthm design, including asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; practical data structures (heaps, hash tables, search trees, graphs); dynamic programming; graph algorithms; and randomized algorithms. Prerequisite:    CS 2420
  • 3.00 Credits

    This course aims to improve student awareness of standard software engineering tools and techniques and make them more capable team members/leaders in software development projects. In this course, students build on their software engineering knowledge by evaluating the Software Development Lifecycle (SDLC) of an existing undergraduate capstone project (or and re-engineering it with specific techniques for maintenance, scalability, dependability, reliability, safety, security, and resilience. Topics such as reverse engineering, design recovery, program analysis, program transformation, refactoring, traceability, and program understanding will be investigated. Accompanying lectures aim to provide timely concepts from the software engineering body of knowledge as they relate to the course work. There will also be class discussions and demonstrations around practical aspects of improving software-related skills that draw upon the students' collective experience and upon the research. Prerequisite:    CS 3100
  • 3.00 Credits

    This course covers advanced topics in artificial intelligence from the perspective of implementing intelligent agents through software. Students are expected to have a basic understanding of search and knowledge reasoning. Topics include quantifying uncertainty, probabilistic reasoning and planning, supervised learning, reinforcement learning, natural language processing, and perception. CS 4500 (Introduction to Artificial Intelligence) or a similar course is not required but may be helpful prior to taking this course. Prerequisite:    CS 3100
  • 3.00 Credits

    The course covers design, management, implementation, and programming of relational database systems in a high-volume data environment. Database design principles like E-R modeling, schema design and refinement, normal forms, and constraints are introduced. Data Definition Language queries and Data Manipulation Language queries are covered to implement and query a database. Other SQL implementation topics like stored procedures, functions, triggers, and indexes are covered. Advanced database topics like big data analytics, storage management principles, query processing and optimization, transaction management, concurrency control, parallel and distributed databases are covered. The course also introduces alternatives to relational databases. Prerequisite:    CS 2550
  • 3.00 Credits

    This course is the first in a two-course sequence that prepares students to apply practical solutions to modern data science problems as a professional data analyst. The data management, storage, and manipulation common in data science are taught along with applied machine learning and statistics. Topics include, but are not limited to, the following: data wrangling, feature reduction, data visualization, descriptive and inferential statistics, applied statistical models, applied machine learning, natural language processing, prediction algorithms, and forecasting.
  • 3.00 Credits

    This course is the second in a two-course sequence that prepares students to apply practical solutions to modern data science problems as a professional data analyst. The intent of this course is to go further in-depth and reinforce the concepts taught in CS 6570. Students will investigate and analyze the topics of CS 6570 using advanced tools and techniques to better prepare them for the challenges associated with the data science discipline. The principles of visualization will also be emphasized as well as exposure to recommendation engines and time series forecasting and analysis. Prerequisite:    CS 3100 and CS 3580
  • 3.00 Credits

    Introduction to fundamental principles and practical techniques of machine learning and its applications, including parametric and non-parametric algorithms, support vector machines, kernels, neural networks, clustering algorithms, dimensionality reduction, recommender systems, and deep learning. This course focuses on understanding and implementing the machine learning algorithms. Prerequisite:    CS 3100
  • 3.00 Credits

    Investigation of high-performance computer processing architectures, including concurrent, multicore platforms; memory hierarchy; static and dynamic scheduling; instruction-level parallelism, including branch prediction; graphics processing units; cache performance and analysis. Prerequisite:    CS 2810 and ECE 3710
  • 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 6600