Skip to Content

Course Search Results

  • 3.00 Credits

    This class will be an introduction to computational data analysis, focusing on the mathematical foundations. The goal will be to carefully develop and explore several core topics that form the backbone of modern data analysis topics, including Machine Learning, Data Mining, Artificial Intelligence, and Visualization. This will include some background in probability and linear algebra, and then various topics including Bayes' rule and connection to inference, gradient descent, linear regression and its polynomial and high dimensional extensions, principal component analysis and dimensionality reduction, as well as classification and clustering. We will also focus on modern models like PAC (probably approximately correct) and cross-validation for algorithm evaluation. Prerequisites: 'C-' or better in (CS 2100 AND CS 2420 AND MATH 2270) AND Full Major status in Computer Science OR Data Science OR Software Development Corequisites: 'C-' or better in (MATH 3070 OR CS 3130 OR ECE 3530)
  • 3.00 Credits

    Scientific and data computation relevant to computational science and engineering, with emphasis on the process of modeling, simulation, visualization and evaluation.This is an introduction to classical and modern computational and data science methods, with a focus on their theoretical and algorithmic development as well as their implementation. Topics may include numerical linear algebra, numerical approximation methods such as interpolation and linear regression, solving and linear and non-linear systems, and optimization. Basic knowledge of programming, matrices, and calculus is assumed. Recommended programming experience at the level of CS 2420 and Mathematical background at the level of integral calculus. Prerequisites: 'C-' or better in MATH 2270 AND ((Full Major status in Computer Science OR Full Major Status in Computer Engineering OR Full Major status in Software Development) OR (CS 2420 AND Full Major Status in Physics))
  • 3.00 Credits

    In this course, we will explore the technical, social, and ethical ramifications of the choices we make at the different stages of the data analysis pipeline, from data collection and storage to understanding feedback loops in analysis. Through class discussions, case studies and exercises, students will learn the basics of ethical thinking in science, understand the history of ethical dilemmas in scientific work, and study the distinct challenges associated with ethics in modern data science. Prerequisites: 'C' or better in CS 2420 AND (Full Major or Minor status in Computer Science OR Full Major status in Data Science OR Full Major status in Software Development)
  • 4.00 Credits

    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 (Full Major or Minor in Computer Science OR Full Major status in Computer Engineering OR Full Major status in Data Science OR Full Major status in Physics OR Full Major status in Software Development)
  • 3.00 Credits

    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 3500 AND (Full Major or Minor status in Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    Ideas behind the design and implementation of programming languages. Syntactic description; grammars and abstract syntax; interpreters and compilers; scope and lifetime of variables; order of evaluation; continuation representation; type systems. Prerequisites: 'C-' or better in CS 3500 AND (Full Major status in Computer Science OR Computer Engineering OR Software Development)
  • 3.00 Credits

    In this course, students are introduced to the fundamentals of the field of Human-Centered Computing. Over the course of the semester, students are exposed to human-centered concepts including iterative design, prototyping designs and interactions, visual design, methods for evaluating systems from a human-centered perspective, accessibility, and input and output. The course requires applying these concepts through a range of assignments, including designing and implementing interactive prototypes to address design challenges. Programming is required. Prerequisites: 'C-' or better in CS 2420 AND (Full Major or Minor status in Computer Science OR Full Major status in Computer Engineering OR Full Major status in Software Development OR Full Major status in Data Science)
  • 3.00 Credits

    In this course, students learn how to identify human needs and goals that technologies might address. Next, students learn to iteratively design technologies that support those goals and promote positive user experiences. Students identify user needs, frame problems, brainstorm solutions, design low-fidelity prototypes, evaluate usability, and communicate the reasoning behind a design. The centerpiece of the course is a semester-long group project in which students learn and apply principles of user-centered design. This course does not focus on implementation and typically does not include any programming. Prerequisites: 'C-' or better in CS 3540 AND (Full Major or Minor status in Computer Science OR Full Major status in Computer Engineering OR Full Major status in Software Development OR Full Major status in Data Science)
  • 3.00 Credits

    This course provides an introduction to web software development. Students will first learn about the fundamental protocols and systems that make the modern web possible. They will then explore the full stack of web software technology from the back end to the front end, including fundamental web security issues, database integration, and client-side page manipulation. Using modern software architectures, programming models, and languages, students will create a complete web application. Prerequisites: 'C-' or better in CS 3500
  • 4.00 Credits

    Techniques for reasoning about, designing, minimizing, and implementing digital circuits and systems. Combinational (logic and arithmetic) and sequential circuits are covered in detail leading up to the design of complete small digital systems using finite state machine controllers. Use of computer-aided tools for design, minimization, and simulation of circuits. Laboratory is included involving circuit implementation with MSI, LSI, and field programmable gate arrays. Prerequisites: "C-" or better in ((PHYS 2220 OR AP Physics E&M score of 4 or better) OR (ECE 1240 AND ECE1245 AND ECE1050)) AND (Full Major status in Computer Science OR Computer Engineering).