Skip to Content

Course Search Results

  • 1.00 Credits

    This course is for students completing the Thesis Work requirements of the Honors Degree. students must be concurrently enrolled in CS 4500: Senior Capstone Project or EAE 4510: Senior Project II. The time spent in this course is to be used for writing a thesis based on the senior project. Enrollment requires permission of the CS Honors Faculty Advisor. Prerequisites: Instructor Consent Corequisites: CS 4500 OR EAE 4510 OR GAMES 4510
  • 3.00 Credits

    An honors thesis is a publication-quality description of work done in previous semesters. At a minimum a thesis must be published as a technical report; ideally, it should be submitted to a conference or journal. Prerequisites: Department Consent.
  • 4.00 Credits

    This course is for graduate students from departments other than School of Computing. Practical exposure to the process of creating large software systems, including requirements specifications, design, implementation, testing, and maintenance. Emphasis on software process, software tools (debuggers, profilers, source code repositories, test harnesses), software engineering techniques (time management, code and documentation standards, source code management, object-oriented analysis and design), and team development practice. Much of the work will be in groups and will involve modifying preexisting software systems. Prerequisites: "C-" or better in CS 2420 AND Instructor's Consent.
  • 3.00 Credits

    This course is for graduate students in departments other than School of Computing. An in-depth study of traditional software development (using UML) from inception through implementation. The entire class is team-based, and will include a project that uses an agile process. Prerequisites: "C-" or better in CS 5010 AND Instructor's Consent.
  • 3.00 Credits

    A survey of topics in theoretical computer science, focusing on computability and complexity. Turing machine, decidability, relative computability, recursion theorem, non-deterministic TMs, complexity measures, time and space hierarchies, P and NP, NP-completeness, program specification and verification. Undergraduate students only. Prerequisites: "C-" or better in (CS 3100 AND CS 4150) AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    The main goal of the course is to teach students how to rigorously verify and analyze (complex) software systems. We will study theoretical foundations underlying this task, and solve exercises and homework assignments based around actually proving example programs correct. We will also explore practical techniques behind popular verification and analysis tools, such as systematic test generation, symbolic execution, and static analysis. Students completing the course will gain a solid understanding of practical design, specification, and verification techniques and the underlying theory. Furthermore, students will leave with significant hands-on experience. Prerequisites: 'C-' or better in (CS 3100 AND CS 3500 AND CS 4150) AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Data mining is the study of efficiently finding structures and patterns in large data sets. We will focus on: (1) converting from a messy and noisy raw data set to a structured and abstract one, (2) applying scalable and probabilistic algorithms to these well-structured abstract data sets, and (3) formally modeling and understanding the error and other consequences of parts (1) and (2), including choice of data representation and trade-offs between accuracy and scalability. These steps are essential for training as a data scientist. Topics will include: similarity search, clustering, regression/dimensionality reduction, graph analysis, PageRank, and small space summaries. We will also cover several recent developments and applications. Prerequisites: 'C-' or better in (CS 3190 AND CS 3500) AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Design and analysis of algorithms. Greedy algorithms, dynamic programming, divide and conquer. Asymptotic analysis and recurrence relations. Graph algorithms and network flows. Computational complexity and intractability. NP-hardness and beyond. Approximation algorithms. Prerequisites: 'C-' or better in CS 4150 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    The mechanics of robots, comprising kinematics, dynamics, and trajectories. Planar, spherical, and spatial transformations and displacements. Representing orientation: Euler angles, angle-axis, and quaternions. Velocity and acceleration: the Jacobian and screw theory. Inverse kinematics: solvability and singularities. Trajectory planning: joint interpolation and Cartesian trajectories. Statics of serial chain mechanisms. Inertial parameters, Newton-Euler equations, D'Alembert's principle. Recursive forward and inverse dynamics. Prerequisites: 'C-' or better in ((MATH 2250 OR MATH 2270) AND (PHYS 2210 OR AP Physics C: Mech score of 4+)) AND (Full Major status in Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    Introduction to fundamental problems of Computer Vision and main concepts and techniques to solve those. Topics in this class include camera pose estimation, 3D reconstruction, feature detectors and descriptors, object recognition using vocabulary tree, probabilistic graphical models, segmentation, stereo matching, graph cuts, belief propagation, and a brief introduction to deep neural networks. Prerequisites: 'C-' or better in(CS 3505 AND(MATH2270 OR 2271 OR 2250)) AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)