Skip to Content

Course Search Results

  • 3.00 Credits

    Only students who have previously worked with a faculty member in a research group may register for bachelor's thesis credit, and then only with the permission of the faculty member. An undergraduate 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. A bachelor's thesis is intended as an alternative to the senior Software Engineering Laboratory for students who are headed for graduate school. Prerequisites: Instructor Consent.
  • 2.00 Credits

    Students work on an original senior thesis project under the direction of their approved thesis advisor. This course along with ECE/CS 4992 substitute for ECE/CS 4710 (Computer Engineering Senior Project) for students who have chosen to do a thesis. Prerequisites: "C-" or better in (ECE 3992 OR CS 3992) AND Approved Senior Thesis Proposal.
  • 2.00 Credits

    Students work on original senior thesis project under the direction of their approved thesis advisor, make an oral presentation at the annual student technical conference, and prepare and submit their senior thesis for approval. This course along with ECE/CS 4991 substitute for ECE/CS 4710 (Computer Engineering Senior Project) for students who have chosen to do a thesis. Prerequisites: "C-" or better in (ECE 4991 OR CS 4991).
  • 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.
  • 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.
  • 1.00 Credits

    Issues confronted by undergraduate teaching assistants in introductory computer science courses, including leading lab sections, conducting office hours, grading assignments, communicating with students. Each student must currently be an undergraduate teaching assistant in the School of Computing. Prerequisites: Instructor 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 Full Major status in Computer Science OR Computer Engineering.
  • 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