FAQs about Undergraduate Study in Computer Science

IMPORTANT NOTE: The department has submitted a proposal for a redesigned introductory sequence that is planned to begin in Fall 2020. Some of the information below may not be in line with how the new program will work. Please take this into consideration.

Table Of Contents

General questions about the Bachelor of Science in Computer Science

Q: When can I declare the Computer Science major?

A: In general, students interested in majoring in computer science have been able to declare the major at any time. In fact, students are encouraged to declare the major as early as possible so that they can benefit from departmental advising.


Q: Can I minor in Computer Science?

A: Yes. A minor in computer science requires the completion of five (5) COMP courses. Please visit this page for more information.

COMP 110 and 210

Q: Is COMP 110 a required course for the Computer Science major?

A: Strictly speaking, at this time the answer is “no.” COMP 210, the first required programming course for the major, lists COMP 110 as a prerequisite, however, students who have had a formal introduction to programming (e.g., students who have completed an AP Computer Science course in high school or who have taken a programming course at another university), should be able to start their study in the Computer Science major with the first required course of the introductory sequence. Starting in Fall 2020, a by examination option will be provided for getting COMP 110 credit and students that have not taken COMP 110 will be required to demonstrate basic programming mastery by sitting for this exam. More information will be posted when the by examination option for COMP 110 has been formally instituted.


Q: I took a programming course at another institution. Can I get credit for COMP 110? 

A: Starting in Fall 2020, a by examination option for COMP 110 will be offered. Students who have taken a comparable programming course at another institution can receive COMP 110 credit by sitting for this exam. More information will be posted when the by examination option for COMP 110 has been formally instituted.

Students transferring to UNC may receive transfer credit for COMP courses by using the standard transfer request process.  Computer science courses almost always require a request for re-evaluation and require that you submit the syllabus for the course as well as the assignments (not the solutions).  The process requires the evaluation of the course by the Director of Undergraduate Studies and faculty that teach the course.  You, therefore, should assume that this is not an immediate process.


Q: I took an AP Computer Science in high school. Can I get credit for COMP 110 or 401? 

A: Students who take the College Board AP Computer Science AB exam and receive a score of 4 or 5, or students who take the College Board AP Computer Science A exam and receive a score of 5, may receive By Examination credit for COMP 110. One can also get credit for COMP 110 by sitting for the COMP 110 by examination exam as explained above. It is not possible to get AP credit for COMP 401.

COMP 110 and 116

Q: What’s the difference between COMP 110 and 116? 

A: COMP 110 and COMP 210 form the introduction to programming sequence for computer science majors. COMP 116 is a created at the request of faculty in mathematics and the sciences, that is intended to be a more self-contained introduction to programming that is also more focused on examples in mathematics and science. COMP 116 uses MATLAB or Python to teach computation and programming. COMP 116 does not fulfill prerequisites for COMP 210. COMP 116 students that become interested in pursuing computer science as a major should use the by examination procedure to receive credit for COMP 110 and fulfill the pre-requisite for COMP 210. A student doing well in COMP 116 should be reasonably prepared to take the examination, although some self-study of Java might be required to translate the concepts learned in COMP 116 in preparation for the exam.

COMP 283, MATH 381, and STOR 215

Q: What is the difference between COMP 283, MATH 381, and STOR 215?

A: COMP 283, Discrete Structures, covers the mathematics behind formal reasoning and writing in computer science (including first-order logic, sets, counting, proof techniques, induction, relations, invariants, graphs, discrete probability, and others). It does so using examples from many of the computer science courses that students will take concurrently or afterward. The prerequisite is the first semester of calculus, MATH 231.

MATH 381, Discrete Mathematics, does somewhat the same (logic, sets, counting, and proof techniques) but focuses on number theory, and has the prerequisite of the second semester of calculus, MATH 232.

STOR 215, Introduction to Decision Sciences, uses examples from operations research and has the prerequisite of the first semester of calculus, MATH 231. It is no longer accepted for either of the degrees.


Q: Which of the three should I take?

A: Historically, MATH 381 was required for the major. With the introduction of the BA program, the department decided that a department-specific course that required only one semester of calculus suited the needs of our diverse students better and also allows us to focus on topics most relevant to the study of computer science. Thus, COMP 283 is the preferred way to satisfy this requirement in both the BA and BS program in Computer Science.


Q:  Can COMP 283 be used toward CS UG minor?

A:  Not under the current CS minor requirements (Fall 2020).


Q:  Can MATH 381 be substituted for COMP 283 in previous CS UG minor requirements (Prior Fall 2016)?

A:  No.  Math 381 Can not be used for the minor in any case.

COMP 590

Q: Can COMP 590 be used to count toward the major? 

A: Yes.  We now only assign the “590” course number to courses that can be counted toward the major. Any number of distinct (i.e., different topics) COMP 590 offerings may be used toward major requirements.

PHYS 116 and 118

Q: I recently switched majors into Computer Science and my previous major required only PHYS 104 and 105. Do I have to take PHYS 116 or 118? 

A: Yes you do. We require calculus-based physics for the major and although you cannot get credit hours towards graduation for both PHYS 104 and 116 or 118, you must take PHYS 118 or get placement credit for PHYS 116.


Q: I took AP Physics in high school and received placement credit for PHYS 105 and 25/105. Do I have to take PHYS 116? 

A: Yes you do. However, if your high school course was taught using calculus, you can ask the Physics and Astronomy Department to examine you on the material in PHYS 116 for the purpose of getting By Examination credit for PHYS 116.

Independent study courses in computer science

Q: I’m interested in doing an independent study project COMP 396. What is the process? 

A: There are six different independent study courses available:

  • COMP 293 allows a student to get academic credit for an internship
  • COMP 393 allows a student to work with a computer science mentor and client on an unpaid project for academic credit
  • COMP 495 allows a student to work with a faculty mentor on a research project
  • COMP 496 allows a student to study an academic topic that could be taught as a computer science course but is not available at the current time
  • COMP 691H and 692H constitute the two-semester sequence taken to work on an honors thesis.

All of these courses require the completion of a learning contract (using the Online Learning contract Manager beginning in Fall 2018). The required forms and a link to the Online Learning Contract Manager can be found here: https://cs.unc.edu/academics/undergraduate/learning-contracts/

In order to register for any of the courses other than COMP 293, the student needs to find a faculty member willing to be the instructor and should work with that faculty member to develop a course plan and learning contract.  Registration is done once the learning contract has been approved.

Registration for COMP 293 requires that the internship be approved by the Director of Undergraduate Studies.  The student must be registered for the course at the time that they are doing the internship and the process must be completed before the internship and the semester begins. Summer internships used for COMP 293 credit require registering for COMP 293 during Summer Session.


Q: Can one enroll in these courses more than once? 

A: restrictions on taking these courses more than once differ by course and do change as the courses and processes are refined.  To determine the current status, review the current course descriptions.  COMP 691H and 692H cannot be taken more than once.


Q: Can any of these courses be used toward the major requirements? 

A: One instance of COMP 495 can be counted toward major requirements. Otherwise, no. The other learning contract courses cannot be used to satisfy any graduation requirement for the major other than count as hours towards graduation.


Q: Is it possible to get course credit for work experiences? What is the process? 

A: Yes it is possible to get credit for work experience through COMP 293 if the work experience is deemed to be a substantive educational experience, In general, the knowledge gained by the experience should be equivalent to what a student would learn in a 500-level course.  Most development activities would meet this criterion; data entry or call center jobs are unlikely to meet the bar. The Director of Undergraduate Studies will evaluate the work experience to determine if it is substantive enough to be worthy of University credit.  Students interested in COMP 293 should contact the Director of Undergraduate Studies for an assessment of the proposed work experience as early as possible.


Q: What are the requirements for COMP 293 other than doing the internship or job? 

A:Your supervisor is required to confirm the content of your work 2 weeks after the internship or job begins and must confirm your successful completion at its end.  At the end of the course, the student writes a one-page reflection of what they learned during the experience.


Q: What sorts of work experiences qualify for COMP 293 credit? 

A: The work experience should involve a learning experience that is roughly comparable to that had in an undergraduate COMP 500-level course. An example of an acceptable experience would be participating on an implementation team to build or maintain a software product. An example of an unacceptable experience would be creating a set of web pages for an organization.

Graduate-level COMP courses

Q: Is it possible for an undergraduate to enroll in a 700-level COMP course? 

A: 700-level courses are courses for graduate students. It is possible for an undergraduate to take a 700-level course, but it requires the explicit permission of the instructor.


Q: Can a graduate level course count for graduation?

A: Yes, a 700-level course other than COMP 790 can be counted toward graduation.  However, it will require that you request that it be approved and that is done by contacting the Director of Undergraduate Studies.

Graduation with honors

Q: What are the requirements for graduation with honors? 

A: The requirements for graduation with honors:

  • A cumulative GPA of 3.3 or better.
  • A GPA in the major (either B.S. or B.A.) of 3.3 or better.
  • Enrollment in the two-semester sequence of COMP 691H and 692H, which entails the successful completion and defense of an honors thesis with a computer science faculty member as well as public presentation of the work in two venues.

Q: What exactly is an honors project? Do I have to enroll in a special course to do an honors project? 

A: An honors project is a collaboration between a student and a computer science faculty member on a problem or topic of mutual interest. Virtually every aspect of the project is negotiable between the student and the faculty supervisor, however, the scope and depth of the final agreed upon project must be approved by the Director of Undergraduate Studies.

The project requires enrollment in COMP 691H and 692H in two semesters, ideally during one’s senior year.  Students who are considering graduation in December or are studying abroad during their senior year may choose to begin the thesis in the spring of their junior year.


Q: What exactly is an honors thesis? 

A: An Honors thesis is a technical paper, authored solely by the student, that fully documents the student’s honors project. A thesis most typically describes the problem under investigation along with any background information required for a non-specialist reader to understand the problem. The thesis further discusses the most relevant related work from the literature, presents the approach undertaken, the results obtained, and discusses any limitations to the work or suggestions for future work. Theses vary in length but are typically between 20-50 pages. The Thesis must be approved by the project supervisor and publicly presented. Presentations happen at annual Undergraduate Research Symposium held in April of each year and at the OUR Celebration of Undergraduate Research.


Q: What courses are included in the computation of my major GPA? 

A: All COMP, MATH, STOR, PHYS and science courses taken to satisfy graduation requirements in the major are counted.


Q: What is required for graduation with highest honors? 

A. Graduation with highest honors is based on the quality of the honors thesis research, writing and presentation.


Q: How do I register my interest in graduation with honors? 

A: Students who are eligible for, and interested in, graduation with honors, are strongly encouraged to start discussing possible honors projects with prospective faculty, or the Director of Undergraduate Studies, in their junior year. This is important as most honors projects require a certain amount of planning and preparation.

Grades

Q: I received a grade lower than a C in one of the eight preliminary courses in the Computer Science major. Do I have to repeat the course? major?

A: If a BS student receives a grade lower than a C in any of the courses:

  • MATH 231, 232, or 233, 381 (or COMP 283)
  • COMP 210, 211, 301, and 311
  • PHYS 116 or 118
  • the second science course

then they must retake the course and receive at least a C.


Q: How do I compute my computer science major GPA? Which classes “count” in the major GPA?

A: Your major GPA is computed from the grades received in all of the required COMP, MATH, PHYS, science and STOR courses.

Taking COMP/MATH classes over the summer

Q: I’m behind in my program of study for the major. How can I catch up? In particular, can I catch up by taking courses over the Summer? 

A: Students who are behind in their program of study typically have little option other than enrolling for an extra semester. In particular, at present the Department of Computer Science normally offers only COMP 110, 116, and 283 during the Summer and hence Summer School is not an effective vehicle for catching up on COMP coursework. (However, note that there are a few of the required advanced MATH courses offered each Summer.)

Taking classes at other universities

Q: Can I take a computer science class at another University over the summer and use the course to satisfy a specific graduation requirement? 

A: In general students are discouraged from taking computer science classes at other Universities and using these course to satisfy UNC graduation requirements. While all courses taken outside UNC will be evaluated for transfer credit, transfer credit for courses beyond COMP 110 is rarely granted. Therefore, any student intending to satisfy a graduation requirement by taking a computer science course outside UNC is strongly advised to provide the syllabus and course assignments to the Director of Undergraduate Studies before they enroll in the course. As a general rule, only courses taken at peer institutions (i.e., a Research 1 university) are likely candidates for transfer credit.

Jobs and internships

Q: I’m interested in a computer science internship in the local industry. How do I go about finding information about internships? 

A: The student’s primary point of contact for information regarding internships should be departmental Career Development Coordinator, Stephanie Johnson or University Career Services (UCS). Stephanie and UCS both assist students in finding internships and full-time jobs through on-campus interviews, career fairs, career panels, and more. For more information, please call 962-6507 or visit the UCS website at http://careers.unc.edu.

Note that it is possible for Computer Science majors to earn academic credit for certain internships or job experiences. See the section “Questions about Independent Study Courses in Computer Science” above.

Undergraduate Research

Q: How do I find undergraduate research opportunities in computer science?

A: Please see this page written by professor Don Porter.