Undergraduate Program FAQ
Frequently asked questions related to undergraduate study in computer science
Table Of Contents
- General questions about the Bachelor of Science in Computer Science
- COMP 110 and 210
- COMP 110 and 116
- COMP 283, MATH 381, and STOR 215
- COMP 590
- Independent study courses in computer science
- Graduate-level COMP courses
- Graduation with honors
- Taking COMP/MATH classes over the summer
- Taking classes at other universities
- Jobs and internships
- Undergraduate Research
Q: When can I declare the Computer Science major?
A: Starting in Spring 2023, students must be accepted into the CS program through the admissions process. Students who have taken or placed out of COMP 210 are eligible to apply each spring, and admissions decisions will be communicated before the fall semester begins. Students who are not admitted to the major may not take courses beyond COMP 210 and those who are admitted will be allowed to continue as declared majors. See the CS Admissions page for information about the admission to the major process.
Q: Can I minor in Computer Science?
A: Currently declared minors that have completed COMP 211 and COMP 301 may complete the minor. Otherwise, students who apply to and are subsequently accepted to the CS program can choose to complete the minor instead by simply dropping the major for the minor after completing the minor requirements. To complete the minor in this way, students should apply for the major.
Q: Is COMP 110 a required course for the Computer Science major?
A: Strictly speaking, at this time the answer is “no.” COMP 210 Data Structures, the first required programming course for the major, lists COMP 110 as a prerequisite; however, students who have had a formal introduction to programming (for example, students who have completed an AP Computer Science course in high school or an undergraduate programming course at another university) should be equipped to start their study in the Computer Science major with COMP 210. Starting in Fall 2020, students may demonstrate basic programming mastery in a COMP 110 placement exam in order to receive credit by examination for COMP 110. More information is available here.
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 is available here.
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 department. You, therefore, should assume that this is not an immediate process. Inquiries about transfer credits and whether or not a course is likely to be successfully reevaluated for a specific UNC course should be made to Prof. David Stotts.
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 210.
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 was created at the request of faculty in mathematics and the sciences and 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 who achieve a grade of B or better are usually allowed to register for COMP 210 by having the prerequisite waived. If this waiver is available, it will be documented in the current registration guide (see link on main undergraduate overview page). Availability of the waiver, while customary, is not guaranteed for any given semester.
The following is a useful decision chart for deciding between 110 and 116 (assumes Fall semester):
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: No, COMP 283 does not satisfy any of the minor requirements but as a co/pre-requisite for COMP 210, a student completing the minor will be expected to take it (or MATH 381).
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.
Q: I’m interested in doing an independent study project. 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.
To receive COMP 293 credit for an internship requires the student to be registered for the course at the time that they are doing the internship and must be set up in advance of the internship. Retroactive COMP 293 credit for internships that have already been completed is not possible. 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 to 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. See the information about COMP 293 here: https://cs.unc.edu/academics/undergraduate/learning-contracts/.
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.
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.
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.
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.
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.)
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: It is possible to receive transfer credit for courses and have them count toward the degree requirements for the major. Students are advised to make sure that the college will accept the course for transfer credit as well as check with the department that the course is acceptable for the major before taking the course. Prof. David Stotts oversees transfer credit approvals and is the person to check with. Once the course is completed, students should follow the college’s procedure for obtaining transfer credit and then submit a credit re-evaluation request to have it approved by the department so that it will be recognized as counting for the major. As a general rule, only courses taken at peer institutions (i.e., a Research 1 university) are likely candidates for transfer credit.
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.
Q: How do I find undergraduate research opportunities in computer science?
A: Please see this page written by professor Don Porter.