Department of Computer Science

Department of Computer Science

http://www.cs.unc.edu

Brooks Computer Science Building, 201 S. Columbia Street, CB# 3175

(919) 590-6000

Kevin Jeffay, Chair

Diane Pozefsky, Director of Undergraduate Studies

pozefsky@cs.unc.edu

Jodie Gregoritsch, Student Services Manager

jogregor@cs.unc.edu

Introduction

The Department of Computer Science offers instruction and performs research in the essential areas of computer science. Majors receive rigorous training in the foundations of computer science and the relevant mathematics, then have ample opportunity to specialize in advanced courses.

Majors can receive credit for practical training as a computing professional through an internship with a company or organization in the computing or information technology fields. Internships typically are paid positions and involve the student working off campus. All internships for credit must be approved in advance by the director of undergraduate studies. Students interested in pursuing such an internship should contact the director of undergraduate studies prior to the start of the internship.

Majors who excel in the program also have the opportunity to perform undergraduate research in computer science. Research projects may be pursued in conjunction with an existing graduate research group in the department and/or may be used as a vehicle for graduating with honors as described below.

Students with no prior programming experience should consider taking one of the introductory courses, COMP 110 or COMP 116. COMP 101 is intended for students who wish to develop a better understanding of computers in a context that does not involve programming. Students with prior programming experience should begin their studies with COMP 401. COMP 380 and COMP 388 are philosophical and moral reasoning Approaches courses that have no programming prerequisite.

Advising

In addition to general advising through the Academic Advising Program, students can consult designated faculty members within the Department of Computer Science who act as departmental advisors for requirements specific to the major or minor. Beyond course selection, advisors are also available for discussing internships, study abroad in computer science, honors projects, and undergraduate research opportunities. See the department Web site for a list of current department advisors and walk-in advising times.

Professors

Stan Ahalt, James Anderson, Sanjoy K. Baruah, Gary Bishop, Prasun Dewan, Henry Fuchs, Kevin Jeffay, Anselmo Lastra, Ming C. Lin, Dinesh Manocha, Fabian Monrose, Stephen M. Pizer, David A. Plaisted, Jan F. Prins, Michael K. Reiter, Jack S. Snoeyink, David Stotts.

Associate Professors

Ron Alterovitz, Alex Berg, Tamara Berg, Jan-Michael Frahm, Jasleen Kaur, Ketan Mayer-Patel, Leonard McMillan, Marc Niethammer, Montek Singh.

Assistant Professors

Mohit Bansal, Vladimir Jojic, Shahriar Nirjon, Donald Porter, Cynthia Sturton.

Research Professors

Diane Pozefsky, F. Donelson Smith.

Research Associate Professors

Mary C. Whitton, Martin Styner.

Research Assistant Professors

Jay Aikat, Enrique Dunn.

Adjunct Professors

Robert Fowler, Guido Gerig, J. Stephen Marron, John McHugh, Steven E. Molnar, Marc Pollefeys, John Poulton, Julian Rosenman, Russell M. Taylor II, Alexander Tropsha, Wei Wang, Gregory F. Welch, Turner Whitted.

Adjunct Associate Professors

Stephen Aylward, Chris Healey, Hye-Chung Kum, Lars Nyland, Dinggang Shen.

Adjunct Assistant Professors

Brad Davis, Mark Foskey, Svetlana Lazebnik, Yun Li, Ipek Oguz, William Valdar.

Lecturer

Kris Jordan.

Senior Lecturer

Tessa Nicholas.

Professor of the Practice

Michael Fern.

Professors Emeriti

Frederick P. Brooks Jr., Peter Calingaert, John Halton, Gyula A. Magó, Timothy L. Quigg, John B. Smith, Donald F. Stanat, Stephen Weiss, William A. Wright.

COMP–Computer Science

Undergraduate-level Courses

COMP 50. First-Year Seminar: Everyday Computing. 3 Credits.

The goal of this first-year seminar is to understand the use of computing technology in our daily activities. In this course, we will study various examples of how computing solves problems in different aspects in our daily life. Honors version available
Gen Ed: QI.
Grading status: Letter grade.

COMP 60. First-Year Seminar: Robotics with LEGO®. 3 Credits.

This seminar explores the process of design and the nature of computers by designing, building, and programming LEGO robots. Competitions to evaluate various robots are generally held at the middle and at the end of the semester. Previous programming experience is not required. Honors version available
Gen Ed: QI.
Grading status: Letter grade.

COMP 65. First-Year Seminar: Folding, from Paper to Proteins. 3 Credits.

Explore the art of origami, the science of protein, and the mathematics of robotics through lectures, discussions, and projects involving artistic folding, mathematical puzzles, scientific exploration, and research.
Gen Ed: PL.
Grading status: Letter grade.

COMP 80. First-Year Seminar: Enabling Technology--Computers Helping People. 3 Credits.

Service-learning course exploring issues around computers and people with disabilities. Students work with users and experts to develop ideas and content for new technologies. No previous computer experience required. Honors version available
Gen Ed: EE-Service Learning, US.
Grading status: Letter grade.

COMP 85. First-Year Seminar: The Business of Games. 3 Credits.

This seminar will study the concepts associated with video gaming by having small teams design a game, build a prototype, and put together a business proposal for the game. Honors version available.

COMP 89. First -Year Seminar: Special Topics. 3 Credits.

Special topics course. Content will vary each semester. Honors version available
Repeat rules: May be repeated for credit; may be repeated in the same term for different topics; 6 total credits. 2 total completions.
Grading status: Letter grade.

COMP 101. Fluency in Information Technology. 3 Credits.

The nature of computers, their capabilities, and limitations. How computers work, popular applications, problem-solving skills, algorithms and programming. Lectures and laboratory assignments.
Gen Ed: QR.
Grading status: Letter grade.

COMP 110. Introduction to Programming. 3 Credits.

An introduction to programming. Fundamental programming skills, typically using Java or JavaScript. Problem analysis and algorithm design. Students may not receive credit for both COMP 110 and COMP 116. Honors version available
Gen Ed: QR.
Grading status: Letter grade.

COMP 116. Introduction to Scientific Programming. 3 Credits.

An introduction to programming for computationally oriented scientists. Fundamental programming skills, typically using MATLAB or Python. Problem analysis and algorithm design with examples drawn from simple numerical and discrete problems. Students can receive credit for only one of COMP 110 and 116.
Requisites: Prerequisite, MATH 231.
Gen Ed: QR.
Grading status: Letter grade.

COMP 126. Practical Web Design and Development for Everyone. 3 Credits.

A ground-up introduction to current principles, standards, and best practice in website design, usability, accessibility, development, and management through project-based skills development in HTML5, CSS, and basic JavaScript. Intended for nonmajors.
Grading status: Letter grade.

COMP 180. Enabling Technologies. 3 Credits.

We will investigate ways computer technology can be used to mitigate the effects of disabilities and the sometimes surprising response of those we intended to help. Honors version available
Gen Ed: EE-Service Learning.
Grading status: Letter grade.

COMP 185. Serious Games. 3 Credits.

Concepts of computer game development and their application beyond entertainment to fields such as education, health, and business. Course includes team development of a game. Excludes COMP majors. Honors version available
Gen Ed: EE-Field Work.
Grading status: Letter grade.

COMP 190. Topics in Computing. 3 Credits.

Permission of the instructor. Special topics in computing targeted primarily for students with no computer science background. This course has variable content and may be taken multiple times for credit. As the content will vary with each offering, there are no set
Requisites: prerequisites, but permission of the instructor is required.
Repeat rules: May be repeated for credit; may be repeated in the same term for different topics; 12 total credits. 4 total completions.
Grading status: Letter grade.

COMP 222. ACM Programming Competition Practice. 1 Credit.

Structured practice to develop and refine programming skills in preparation for the ACM programming competition.
Grading status: Letter grade.

COMP 227. Effective Peer Teaching in Computer Science. 3 Credits.

Fundamentals of computer science pedagogy and instructional practice with primary focus on training undergraduate learning assistants for computer science courses. Emphasis on awareness of social identity in learning, active learning in the computer science classroom, and effective mentorship. All students must be granted a computer science learning assistantship or obtain prior approval to substitute relevant practicum experience prior to enrollment.
Requisites: Prerequisite, COMP 401.
Gen Ed: EE-Field Work.
Grading status: Letter grade.

COMP 283. Discrete Structures. 3 Credits.

Introduces discrete structures (sets, tuples, relations, functions, graphs, trees) and the formal mathematics (logic, proof, induction) used to establish their properties and those of algorithms that work with them. Develops problem-solving skills through puzzles and applications central to computer science.
Requisites: Prerequisite, MATH 231 or 241.
Grading status: Letter grade.

COMP 290. Special Topics in Computer Science. 1 Credit.

Non-technical topics in computer science for computer science majors. May not be used to satisfy any degree requirements for a computer science major. This course has variable content and may be taken multiple times for credit.
Repeat rules: May be repeated for credit. 4 total credits. 4 total completions.
Grading status: Letter grade.

COMP 293. Internship in Computer Science. 3 Credits.

Permission of the director of undergraduate studies. Computer science majors only. A signed learning contract is required before a student may register. Work experience in non-elementary computer science. Pass/Fail only. May be repeated for up to six credits.
Requisites: Prerequisites, C or better in COMP 401, 410, and 411.
Gen Ed: EE-Academic Internship.
Repeat rules: May be repeated for credit. 6 total credits. 2 total completions.
Grading status: Pass/Fail.

COMP 325. How to Build a Software Startup. 3 Credits.

Explores real-world skills for successfully developing and launching a software startup in an experiential learning environment. Customer outreach and feedback, market analysis, business model development, agile product development, with mentors from the entrepreneurship community.
Gen Ed: EE-Field Work.
Grading status: Letter grade.

COMP 380. Introduction to Digital Culture. 3 Credits.

An introduction to digital technology and computer science issues in society. Topics may include Internet history, privacy, security, usability, graphics, games, computers in the media, development, economics, social media, AI, IP, computer and Internet ethics, global ethics, current legal issues, etc. Honors version available
Gen Ed: PH.
Grading status: Letter grade.

COMP 388. Advanced Cyberculture Studies. 3 Credits.

Explores Internet history and cyberphilosophy; online identify construction, community, communication, creativity; bodies/cyborgs; intelligence and AI. Students perform independent research into and analyze virtual worlds, social media, anonymous bulletin boards, mobile media, and more, and create digital art and literature. Seminar-style; students collaborate on designing and leading class.
Requisites: Prerequisite, COMP 380; permission of the instructor for students lacking the prerequisite.
Gen Ed: PH.
Grading status: Letter grade.

COMP 390. Computer Science Elective Topics. 3-12 Credits.

Elective topics in computer science for computer science majors. May not be used to satisfy any degree requirements for a computer science major. This course has variable content and may be taken multiple times for credit.
Repeat rules: May be repeated for credit; may be repeated in the same term for different topics; 12 total credits. 2 total completions.
Grading status: Letter grade.

COMP 393. Software Engineering Practicum. 1-3 Credits.

Students develop a software program for a real client under the supervision of a faculty member. Projects may be proposed by the student but must have real users. Course is intended for students desiring practical experiences in software engineering but lacking the experience required for external opportunities. Majors only. Pass/Fail.
Requisites: Prerequisites, COMP 401, 410 and 411.
Gen Ed: EE-Field Work.
Repeat rules: May be repeated for credit. 6 total credits. 2 total completions.
Grading status: Pass/Fail.

Advanced Undergraduate and Graduate-level Courses

COMP 401. Foundation of Programming. 4 Credits.

Required preparation, a first formal course in computer programming (e.g., COMP 110, COMP 116). Advanced programming: object-oriented design, classes, interfaces, packages, inheritance, delegation, observers, MVC (model view controller), exceptions, assertions. Honors version available
Gen Ed: QR.
Grading status: Letter grade.

COMP 410. Data Structures. 3 Credits.

The analysis of data structures and their associated algorithms. Abstract data types, lists, stacks, queues, trees, and graphs. Sorting, searching, hashing.
Requisites: Prerequisite, COMP 401.
Grading status: Letter grade.

COMP 411. Computer Organization. 4 Credits.

Digital logic, circuit components. Data representation, computer architecture and implementation, assembly language programming.
Requisites: Prerequisite, COMP 401.
Grading status: Letter grade.

COMP 426. Modern Web Programming. 3 Credits.

Developing applications for the World Wide Web including both client-side and server-side programming. Emphasis on Model-View-Controller architecture, AJAX, RESTful Web services, and database interaction.
Requisites: Prerequisites, COMP 401 and 410.
Grading status: Letter grade.

COMP 431. Internet Services and Protocols. 3 Credits.

Application-level protocols HTTP, SMTP, FTP, transport protocols TCP and UDP, and the network-level protocol IP. Internet architecture, naming, addressing, routing, and DNS. Sockets programming. Physical-layer technologies. Ethernet, ATM, and wireless.
Requisites: Prerequisites, COMP 401, 410, and 411.
Grading status: Letter grade.

COMP 433. Mobile Computing Systems. 3 Credits.

Principles of mobile applications, mobile OS, mobile networks, and embedded sensor systems. Coursework includes programming assignments, reading from recent research literature, and a semester long project on a mobile computing platform (e.g., Android, Arduino, iOS, etc.).
Requisites: Prerequisites, COMP 401, 410, and 411.
Grading status: Letter grade.

COMP 435. Computer Security Concepts. 3 Credits.

Introduction to topics in computer security including confidentiality, integrity, availability, authentication policies, basic cryptography and cryptographic protocols, ethics, and privacy. A student may not receive credit for this course after receiving credit for COMP 535.
Requisites: Prerequisites, COMP 401, 410, and 411.
Grading status: Letter grade.

COMP 455. Models of Languages and Computation. 3 Credits.

Introduction to the theory of computation. Finite automata, regular languages, pushdown automata, context-free languages, and Turing machines. Undecidable problems.
Requisites: Prerequisites, COMP 110 or 401, and COMP 283 or MATH 381.
Grading status: Letter grade.

COMP 475. 2D Computer Graphics. 3 Credits.

Fundamentals of modern software 2D graphics; geometric primitives, scan conversion, clipping, transformations, compositing, texture sampling. Advanced topics may include gradients, antialiasing, filtering, parametric curves, and geometric stroking.
Requisites: Prerequisites, COMP 401, 410, 411, and MATH 547.
Grading status: Letter grade.

COMP 486. Applications of Natural Language Processing. 3 Credits.

Study of applications of natural language processing techniques and the representations and processes needed to support them. Topics include interfaces, text retrieval, machine translation, speech processing, and text generation.
Requisites: Prerequisite, COMP 110, 116, or 121.
Grading status: Letter grade
Same as: INLS 512.

COMP 487. Information Retrieval. 3 Credits.

Study of information retrieval and question answering techniques, including document classification, retrieval and evaluation techniques, handling of large data collections, and the use of feedback.
Grading status: Letter grade
Same as: INLS 509.

COMP 495. Mentored Research in Computer Science. 3 Credits.

Independent research conducted under the direct mentorship of a computer science faculty member. This course cannot be counted toward the completion of the major or minor. For computer science majors only.
Gen Ed: EE-Mentored Research.
Repeat rules: May be repeated for credit. 6 total credits. 2 total completions.
Grading status: Letter grade.

COMP 496. Independent Study in Computer Science. 1-3 Credits.

Permission of the director of undergraduate studies. Computer science majors only. For advanced majors in computer science who wish to conduct an independent study or research project with a faculty supervisor. May be taken repeatedly for up to a total of six credit hours.
Repeat rules: May be repeated for credit; may be repeated in the same term for different topics; 6 total credits. 6 total completions.
Grading status: Letter grade.

COMP 520. Compilers. 3 Credits.

Design and construction of compilers. Theory and pragmatics of lexical, syntactic, and semantic analysis. Interpretation. Code generation for a modern architecture. Run-time environments. Includes a large compiler implementation project.
Requisites: Prerequisites, COMP 401, 410, 411, and 455.
Grading status: Letter grade.

COMP 521. Files and Databases. 3 Credits.

Placement of data on secondary storage. File organization. Database history, practice, major models, system structure and design.
Requisites: Prerequisites, COMP 401, 410, and 411.
Grading status: Letter grade.

COMP 523. Software Engineering Laboratory. 4 Credits.

Organization and scheduling of software engineering projects, structured programming, and design. Each team designs, codes, and debugs program components and synthesizes them into a tested, documented program product.
Requisites: Prerequisites, COMP 401, 410, 411, and at least two chosen from COMP 426, 431, 520, 521, 530, 535, 560, 562, 575, 580, 585.
Gen Ed: CI, EE-Mentored Research.
Grading status: Letter grade.

COMP 524. Programming Language Concepts. 3 Credits.

Concepts of high-level programming and their realization in specific languages. Data types, scope, control structures, procedural abstraction, classes, concurrency. Run-time implementation.
Requisites: Prerequisites, COMP 401 and 410.
Grading status: Letter grade.

COMP 530. Operating Systems. 3 Credits.

Types of operating systems. Concurrent programming. Management of storage, processes, devices. Scheduling, protection. Case study. Course includes a programming laboratory. Honors version available
Requisites: Prerequisites, COMP 401, 410, and 411.
Grading status: Letter grade.

COMP 533. Distributed Systems. 3 Credits.

Distributed systems and their goals; resource naming, synchronization of distributed processes; consistency and replication; fault tolerance; security and trust; distributed object-based systems; distributed file systems; distributed Web-based systems; and peer-to-peer systems.
Requisites: Prerequisite, COMP 431 or 530; permission of the instructor for students lacking the prerequisite.
Grading status: Letter grade.

COMP 535. Introduction to Computer Security. 3 Credits.

Principles of securing the creation, storage, and transmission of data and ensuring its integrity, confidentiality and availability. Topics include access control, cryptography and cryptographic protocols, network security, and online privacy.
Requisites: Prerequisites, COMP 401, 410, and COMP 283 or MATH 381.
Grading status: Letter grade.

COMP 541. Digital Logic and Computer Design. 4 Credits.

This course is an introduction to digital logic as well as the structure and electronic design of modern processors. Students will implement a working computer during the laboratory sessions.
Requisites: Prerequisites, COMP 401 and 411.
Grading status: Letter grade.

COMP 550. Algorithms and Analysis. 3 Credits.

Formal specification and verification of programs. Techniques of algorithm analysis. Problem-solving paradigms. Survey of selected algorithms.
Requisites: Prerequisites, COMP 410, and COMP 283 or MATH 381.
Grading status: Letter grade.

COMP 555. Bioalgorithms. 3 Credits.

Bioinformatics algorithms. Topics include DNA restriction mapping, finding regulatory motifs, genome rearrangements, sequence alignments, gene prediction, graph algorithms, DNA sequencing, protein sequencing, combinatorial pattern matching, approximate pattern matching, clustering and evolution, tree construction, Hidden Markov Models, randomized algorithms.
Requisites: Prerequisites, COMP 401, 410, and COMP 283 or MATH 381.

COMP 560. Artificial Intelligence. 3 Credits.

Introduction to techniques and applications of modern artificial intelligence. Combinatorial search, probabilistic models and reasoning, and applications to natural language understanding, robotics, and computer vision.
Requisites: Prerequisites, COMP 401, 410, and MATH 231.
Grading status: Letter grade.

COMP 562. Introduction to Machine Learning. 3 Credits.

Machine learning as applied to speech recognition, tracking, collaborative filtering and recommendation systems. Classification, regression, support vector machines, hidden Markov models, principal component analysis, and deep learning.
Requisites: Prerequisites, COMP 401, 410, MATH 233, and STOR 435; permission of the instructor for students lacking the prerequisites.
Grading status: Letter grade.

COMP 572. Computational Photography. 3 Credits.

The course provides a hands on introduction to techniques in computational photography--the process of digitally recording light and then performing computational manipulations on those measurements to produce an image or other representation. The course includes an introduction to relevant concepts in computer vision and computer graphics.
Requisites: Prerequisites, COMP 401, 410, and MATH 547 or 577.
Grading status: Letter grade.

COMP 575. Introduction to Computer Graphics. 3 Credits.

Hardware, software, and algorithms for computer graphics. Scan conversion, 2-D and 3-D transformations, object hierarchies. Hidden surface removal, clipping, shading, and antialiasing. Not for graduate computer science credit.
Requisites: Prerequisites, COMP 401, 410, and MATH 547.
Grading status: Letter grade.

COMP 576. Mathematics for Image Computing. 3 Credits.

Mathematics relevant to image processing and analysis using real image computing objectives and provided by computer implementations.
Requisites: Prerequisites, COMP 116 or 401, and MATH 233.
Grading status: Letter grade
Same as: BMME 576.

COMP 580. Enabling Technologies. 3 Credits.

We will investigate ways computer technology can be used to mitigate the effects of disabilities and the sometimes surprising response of those we intended to help.
Requisites: Prerequisites, COMP 401 and 410.
Gen Ed: EE-Service Learning.
Grading status: Letter grade.

COMP 581. Introduction to Robotics. 3 Credits.

Instructor permission for students lacking the prerequisites. Hands-on introduction to robotics with a focus on the computational aspects. Students will build and program mobile robots. Topics include kinematics, actuation, sensing, configuration spaces, control, and motion planning. Applications include industrial, mobile, personal, and medical robots. Honors version available
Requisites: Prerequisites, COMP 401 and 410.
Grading status: Letter grade.

COMP 585. Serious Games. 3 Credits.

Concepts of computer game development and their application beyond entertainment to fields such as education, health, and business. Course includes team development of a game. Honors version available
Requisites: Prerequisites, COMP 401, 410, 411, and 426.
Gen Ed: EE-Field Work.
Grading status: Letter grade.

COMP 590. Topics in Computer Science. 3 Credits.

Permission of the instructor. This course has variable content and may be taken multiple times for credit. Honors version available
Repeat rules: May be repeated for credit. 12 total credits. 4 total completions.
Grading status: Letter grade.

COMP 631. Computer Networks. 3 Credits.

Required preparation, a first course in operating systems, a first course in networking (e.g., COMP 431 and 530), and knowledge of probability and statistics. Topics in computer networks, including link layer protocols, switching, IP, TCP, and congestion control. Additional topics may include peer-to-peer infrastructures, network security, and multimedia applications.
Grading status: Letter grade.

COMP 633. Parallel and Distributed Computing. 3 Credits.

Required preparation, a first course in operating systems and a first course in algorithms (e.g., COMP 530 and 550). Principles and practices of parallel and distributed computing. Models of computation. Concurrent programming languages and systems. Architectures. Algorithms and applications. Practicum.
Grading status: Letter grade.

COMP 635. Wireless and Mobile Communications. 3 Credits.

This course builds an understanding of the core issues encountered in the design of wireless (vs. wired) networks. It also exposes students to fairly recent paradigms in wireless communication.
Requisites: Prerequisite, COMP 431.

COMP 651. Computational Geometry. 3 Credits.

Required preparation, a first course in algorithms (e.g., COMP 550). Design and analysis of algorithms and data structures for geometric problems. Applications in graphics, CAD/CAM, robotics, GIS, and molecular biology.
Grading status: Letter grade.

COMP 655. Cryptography. 3 Credits.

Instructor permission for students lacking prerequisites. Introduction to design and analysis of cryptographic algorithms. Topics include basis of abstract algebra and number theory, symmetric and asymmetric encryption algorithms, cryptographic hash functions, message authentication codes, digital signature schemes, elliptic curve algorithms, side-channel attacks, selected advanced topics
Requisites: Prerequisites, COMP 455 and STOR 435.

COMP 662. Scientific Computation II. 3 Credits.

Theory and practical issues arising in linear algebra problems derived from physical applications, e.g., discretization of ODEs and PDEs. Linear systems, linear least squares, eigenvalue problems, singular value decomposition.
Requisites: Prerequisite, MATH 661.
Grading status: Letter grade
Same as: MATH 662, ENVR 662.

COMP 665. Images, Graphics, and Vision. 3 Credits.

Required preparation, a first course in data structures and a first course in discrete mathematics (e.g., COMP 410 and MATH 383). Display devices and procedures. Scan conversion. Matrix algebra supporting viewing transformations in computer graphics. Basic differential geometry. Coordinate systems, Fourier analysis, FDFT algorithm. Human visual system, psychophysics, scale in vision.
Gen Ed: QI.
Grading status: Letter grade.

COMP 672. Simulation Modeling and Analysis. 3 Credits.

Introduces students to modeling, programming, and statistical analysis applicable to computer simulations. Emphasizes statistical analysis of simulation output for decision-making. Focuses on discrete-event simulations and discusses other simulation methodologies such as Monte Carlo and agent-based simulations. Students model, program, and run simulations using specialized software. Familiarity with computer programming recommended.
Requisites: Prerequisites, STOR 555 and 641.
Grading status: Letter grade
Same as: STOR 672.

COMP 690. Special Topics in Computer Science. 1-4 Credits.

This course has variable content and may be taken multiple times for credit. COMP 690 courses do not count toward the major or minor.
Repeat rules: May be repeated for credit; may be repeated in the same term for different topics; 8 total credits. 2 total completions.
Grading status: Letter grade.

COMP 691H. Honors Thesis in Computer Science. 3 Credits.

For computer science majors only and by permission of the department. Individual student research for students pursuing an honors thesis in computer science under the supervision of a departmental faculty adviser.
Gen Ed: EE-Mentored Research.
Grading status: Letter grade.

COMP 692H. Honors Thesis in Computer Science. 3 Credits.

Permission of the department. Required of all students in the honors program in computer science. The construction of a written honors thesis and an oral public presentation of the thesis are required.
Gen Ed: EE-Mentored Research.
Grading status: Letter grade.