Skip to main content

Courses on this Page

Learning Contracts

All non-lecture undergraduate courses require that a learning contract be agreed to and signed by both the supervising faculty member and student and approved by the Director of Undergraduate Studies.  Beginning with Fall 2018, the department is using the Online Learning Contract Manager (OLCM) to manage the approval process. More information about the OLCM can be found at the university site, which includes links to detailed instructions for both students and instructors.

To register for one of these courses, students fill out the course-specific form and submit it to the OLCM. The form for each course is provided on this page under the subheading “COMP <course_number> Instructions”.

The completed contract needs to have final approval and registered by the deadline set by the university. Once the contract has been approved, the student will be registered for the course. Students cannot self-enroll in any of these courses. To allow time for section creation and registration, all contracts must be approved at least 24 hours before the university deadline.

The OLCM will collect the basic information about the contract and will manage the workflow of the process. COMP 293 and 393 also require the internship/practicum site supervisor or client approval. The links below are to fillable pdf’s that need to be filled in and uploaded. All forms are to be filled in electronically (no handwriting) and we can now accept DIGITAL SIGNATURES. The forms can be signed with most PDF software.

Faculty are limited to two (2) independent study projects in a semester, but a project may include multiple students. Separate learning contracts are to be submitted for each student and the other students working with this student are to be listed in the appropriate section of the form.

One instance of COMP 495 or COMP 691H can be counted toward the major.

The characteristics of the courses:


Course Semester Credits Grading Repeat Gen Ed Pre Reqs
 293: Internship all 3 P/F no EE CS major

210, 211, 301, 311

 393: Software Practicum all 1-3 P/F 2 classes EE CS major
 495: Mentored Research all 3 letter 2 classes EE CS major
 496: Independent Study all 1-3 letter 6 credits CS major
 691H: Honors Thesis all 3 letter no EE CS major
 692H: Honors Thesis all 3 letter no EE CS major


Please click on the following links for more information about the courses and to download editable syllabi and approvals.

COMP 293: Internships

Computer Science is a practical discipline, and we strongly encourage all of our majors to get a taste of the non-academic world through an internship. Most students will try to get an internship during the summer, but we also have students who do part-time internships during the academic year. Some students choose to take a semester off in order to work full time; while this is possible, it needs to be done in concert with university policies and requires that you work with a university academic adviser. This page should give you most of the information that you need about internships, but it is not a substitute for speaking with advisers and specialists.

Getting an Internship

While the department will provide students with information and help connect them with employers, it is ultimately the student’s responsibility to secure an internship. There are a large number of companies coming to campus to recruit computer science students, and these recruiting events are a great way to find out about internships and to make an impression on companies.

When looking for a job or internship, remember that the fall semester is the prime recruiting season. Many companies fill all of their internship positions by March. Students are encouraged to take advantage of the many recruiting events hosted by the department Career Week in September.

Working Full Time During the Academic Year

The university does not have a co-op program that allows you to work full-time during the semester, but there are a number of ways that students have managed to work for a semester. There is no single solution, but most entail withdrawing for a semester or dropping down to less than half-time. (The problem with becoming a part-time student is that you must do it for two semesters.)  If you are interested in doing this, you must work carefully with university advising to be sure that you are following all of the procedures properly (if done properly, there should be no problems). When you are talking to them about the possibility, be sure to tell them about any financial aid that you are getting.

Depending on your solution, you may or may not register for academic credit for the internship.

Internships and Academic Credit

The value of an internship is in the experience, not in any academic credit, but there are situations where students need or want academic credit for the work. The most common reasons that we see students registering for academic credit are:

  • To use an academic course and CPT (Curriculum Practical Training) authorization in order to get a visa to be able to work.  Note that COMP 293 can only be taken once, which means that if you need to obtain a visa for a second job, you will need to work with International Student and Scholar Services (ISSS) to get pre-completion OPT (Optional Practical Training) authorization after the first job.  Information about OPT is available on the ISSS website.   Be sure to look at the information about the STEM extension for OPT as you evaluate your options.
    • Please do not ask to be able to take COMP 293 twice for credit in order to use CPT instead of OPT. The department has carefully considered this issue and is aware of why students would prefer to do so but have still decided that it is only appropriate to allow only one instance of COMP 293.
  • It satisfies the experiential education (EE) requirement
  • A student needs an additional 3 credits

In prior years, we have had a number of different alternatives to earn academic credit for an internship. There is now only one: COMP 293.  The rules for COMP 293 are:

  • You must be registered for the course while you are doing the internship.
  • It is a 3 credit pass/fail course.
  • It is strongly recommended that COMP 293 internships occur after a student has completed the introductory sequence of courses for the major (i.e., 210, 211, 301, 311), but internships will be approved as long as they are sufficiently technical in nature.
  • It satisfies the EE requirement.
  • It does not count toward the major.
  • The cost for the class is the same as for any other 3-credit course taken that same semester.
  • You must work at least 180 hours.
  • The work must entail substantive, non-elementary computer science concepts equivalent to a 500-level course.  While summer jobs may lead to more substantive experiences than initially planned, it is the description of the job that you are being hired to do that is used to determine if the internship is acceptable.

Notes about the COMP 293

In many cases, internship jobs are not completely defined before they begin or may change based on business needs. There is, therefore, a required checkpoint two weeks after the beginning of the internship to clarify or confirm the work that the student is doing. The supervisor (not the student) is to send an email to the instructor of record with this information.

Any changes to the supervisor or work assignment are to be forwarded to the instructor of record promptly.  If the work assignment changes within the first two weeks of the internship, the 2-week report can be sent early or the notification can wait.  This is the responsibility of the student; failure to do so can invalidate the learning contract and jeopardize course credit.

Completion of the course requires two items: a statement from the supervisor that the student, in fact, worked the planned hours and completed the work satisfactorily and a 1-2 page reflection paper by the student describing what they learned from the experience.  The reflection paper can cover technical material, work environment, or processes; it is the summary of what knowledge you gained through the experience.

COMP 293 Instructions

  • COMP 293 PDF
  • The instructor of record is Shahriar Nirjon
  • The internship contact is a general contact point from the company.  It can be the supervisor or a person responsible for internships
  • The supervisor should digitally sign the contract if possible.
    • Some companies have policies that prevent employees from signing learning contracts and/or may not be able to provide contact information of the supervisor in advance. In this case, a student should fill out the form as best they can but are responsible for making sure a supervising contact is provided in time for the 2-week report deadline.
  • The 2-week report deadline is 2 weeks after the start of the internship
  • The final report deadline is the earlier of the first day of final exams or the end of the internship.

COMP 393: Software Practicum

A Software Practicum provides the student the opportunity to gain experience in software engineering within the university environment. The software engineering project must be approved in advance by both the instructor and the client. Acceptable projects must require substantive computer science.  Credit hours given will be based on the size of the project.

Multiple students may work on a single software practicum project, though it is not recommended that more than two do so.  They do need to submit individual learning contracts but they must list all participants on their contract.

The student will meet regularly with the instructor for guidance on development issues and with the client for project direction. The grade will be assigned based on the adherence to software engineering practices, the final product and the feedback from the client.

The requirements for an appropriate project are that the project requirements are defined by the client and that the project has intended use beyond its development. The client and instructor can be the same person.

Completion of the course requires a written reflection by the student and written evaluations by both the client and the instructor.

While the course is currently graded Pass/Fail, our intent is to move it to a letter-grade basis by Fall 2019.

COMP 393 Instructions

  • COMP 393 PDF
  • The client must digitally sign the contract
  • The instructor of record is the computer science mentor for the project

COMP 495: Mentored Research

Mentored Research provides the student the opportunity to work with a faculty member doing mentored research, either independently or as part of the faculty member’s lab. If part of the faculty member’s lab, the work must be well enough identified that the student has an independent task and deliverable. The course is not to be used as a way to assign a series of unrelated tasks that support the faculty member; such an assignment is more appropriate for an undergraduate research assistantship.

The student is expected to learn the techniques used in computer science research and apply them to the area that they are studying. The student and faculty member are expected to meet on a regular basis and explicit deliverables are to be defined. A written report is required at the end of the semester (may itself be a deliverable or a brief summary of what was accomplished). While not required, we encourage students to present at the CS Undergraduate Research Symposium in the spring (whether they took the course in the fall or spring)

There is no formal process for connecting faculty and students.  Students interested in doing independent research are expected to seek out a faculty member.  Faculty members establish their own models for how they work with students, from questions of when they meet and with whom and what background they expect before students work with them.  For best results, students should be aware of the faculty member’s research areas and work before beginning the conversation.

COMP 495 projects must be advised by a faculty member of the Department of Computer Science. If the project will primarily be advised by a faculty member outside of the department but the project itself is technical enough to be considered a computer science research project, a COMP 495 contract can still be submitted as long as a faculty member within the department is recruited to act as the official advisor for the learning contract. This faculty member is responsible for communicating with the primary faculty advisor to confirm that the elements of the learning contract were accomplished and to submit a grade for the effort.

In the case a student takes COMP 495 multiple times, only one instance of COMP 495 is counted toward the major as an upper division elective.

COMP 495 Instructions

COMP 496: Independent Study

The Independent Study course provides the student the opportunity to work with a faculty member to study a topic that is not offered in the regular curriculum, but that is a reasonable topic and scope. If we have a course that already covers the topic, but is not currently being offered, you will still register for COMP 496 and the course may not be counted toward the major.

Faculty members are restricted to no more than two students per semester or summer session for an independent study. Prerequisites will depend on the topic to be covered. The student and faculty member are expected to meet on a regular basis and explicit deliverables and assessment criteria need to be defined. The structure of this contract incorporates all elements that would be expected in a traditional syllabus. Specific readings and assignments and a draft calendar are required.

COMP 496 Instructions

COMP 691H, 692H: Honors Thesis

The senior honors thesis is intended to be a two-semester research experience, generally in one’s last two semesters at UNC. COMP 691H is the first course of the sequence. Students who expect to complete their degree in December or are studying abroad during their senior year, may start their honors thesis in spring of their junior year.  If you intend to work on research for two years — both your junior and senior year — we recommend that you do your honors thesis in your senior year, allowing you to write a thesis that incorporates more of your research.

The honors thesis courses provide the student the opportunity to work with a faculty member in developing an honors thesis. The honors thesis requires the production of a written document and may also include software development. The combination of the thesis paper and the software development is to be of substantive size but the specific size of each is to be determined by the faculty adviser. The student and faculty adviser are expected to meet on a regular basis and explicit deliverables are to be defined.

The specific topic for the honors thesis is at the discretion of adviser. There is no clear definition of what constitutes an appropriate topic but the intention is that it be an original, independent research project whose outcome demonstrates exceptional undergraduate achievement. While the work may be part of a larger research project, the honors project and thesis must have a clear stand-alone definition. (Doing a collection of unrelated tasks for a larger project is not appropriate.)

A student must have an overall cumulative GPA of 3.3 to register for either course. If your GPA is just below 3.3, you may be allowed to register for COMP 691H provisionally.  There is no leeway for COMP 692H.

The focus of the first semester, COMP 691H, is on the research, and NOT on the writing of the thesis. The required deliverable of the course is a completion of enough of the research that the adviser is reasonably confident that the student will be able to successfully complete the honors thesis in the second semester.  Part of the learning contract is an agreement on what will be accomplished for the student to be permitted to enroll in COMP 692H.  The student should review their progress with their advisor between the semesters to ensure they are on track for a strong thesis; in the event that a student is unlikely to have an acceptable thesis, it is better to simply not take 692H than to fail the defense.  As part of the learning contract addendum for enrolling in 692H, the student is required to write a summary of the 691H milestones, which were accomplished, and any adjustments to the plan.

The required deliverable of the second course, COMP 692H, is an honors thesis and defense. The honors thesis defense is a public meeting where the student presents their work and the committee, Honors Coordinator, and other invited faculty examine the student. The defense cannot be held before the thesis itself is completed. The defenses are expected to run for 20 minutes of presentation, 10 minutes of questions and answers, and additional time for closed sessions; we advise students and the committee budget an hour for a defense.

The committee consists of the advisor and a second reader. Any faculty member in the UNC CS department may be a second reader; UNC faculty in other departments and non-faculty researchers at UNC may be a second reader with the approval of the CS Honors Coordinator (currently Don Porter). Ideally, a second reader would not be a collaborator on the research and would have sufficient expertise to provide constructive, technical comments on the work from a different perspective than the advisor. Of course, with limited faculty, these “ideals” are not hard requirements. Feel free to reach out to the Honors Coordinator for clarification.

Part of completing the learning contract is identifying a second reader and getting their agreement to serve on the committee. Their signature may be scanned and uploaded as part of the learning contract, or an agreement can be sent to the honors coordinator via email.

The defense must be completed at least one week prior to the Honors deadline for reporting honors candidates.

The result of the defense is a determination of one of the following:

  • Not acceptable as an honors thesis
  • Graduates with honors
  • Graduates with highest honors

The determination includes the research, the written thesis, and the defense (presentation and questioning). Graduation with highest honors represents a determination by the committee that the work is significantly above expected work. While not a requirement, the work should be worthy of publication. The Honors Coordinator will attend every thesis defense in order to assure consistency of the determination of honors vs. highest honors designation.

Prior to 2019, COMP 692H students were required to participate in both the computer science department’s Undergraduate Research Symposium and the UNC Office of Undergraduate Research’s Celebration of Undergraduate Research (poster session is sufficient). From 2019 onward, the UNC OUR Celebration of Undergraduate Research is sufficient to fulfill this requirement.

One instance of COMP 691H is counted toward the major as an upper division elective. This change will be reflected in the official program description for the major in Fall 2021 but is implemented retroactively using Tar Heel Tracker adjustments.

COMP 691H Instructions

Please complete the Honors Carolina Learning Contract template as the first two pages, and then add the COMP 691H-specific addendum as the third page.  Submit this as one document in the online learning contract manager.

COMP 692H Instructions

Please complete the Honors Carolina Learning Contract template as the first two pages, and then add the COMP 692H-specific addendum as the third page.  Submit this as one document in the online learning contract manager.