Skip to Content

Course Search Results

  • 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: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE OR Physics)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE)
  • 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 (Major or Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    Working in teams, students employ the concepts of digital logic design and computer organization to design, implement and test a computing system. Interface IO devices and develop associated software/firmware. Extensive use of CAD and software tools. Prerequisites: "C-" or better in (ECE 3700 OR CS 3700) AND (ECE 3810 OR CS 3810) AND (Major or Minor in Kahlert School of Computing OR ECE)
  • 3.00 Credits

    An in-depth study of computer architecture and design, including topics such as RISC and CISC instruction set architectures, CPU organizations, pipelining, memory systems, input/output, and parallel machines. Emphasis is placed on performance measures and compilation issues. Prerequisites: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing)
  • 1.00 - 4.00 Credits

    Content changes each semester. In-depth exploration of topics of special interest. Prerequisites: Full Major status in Computer Science OR Computer Engineering OR Software Development