Policies

About this Document

This document outlines curricular policies in the Computer Science Department. These policies are intended to be fair, serve our students well, and maintain the department’s academic standards. A student who feels that there are extenuating circumstances that merit special dispensation may petition the department for an exception to a policy. Petitions should be first discussed with the student’s computer science adviser and then submitted in writing to the adviser for consideration by the CS faculty.

Students from Scripps, Pitzer, CMC and Pomona Colleges who wish to take HMC CS courses and/or complete a CS degree through HMC should also read the policies page for off-campus students.

Core Curriculum Policies

  • A student must complete one of CS 5 (Gold, Black, or Green) or CS 42 to complete the CS core.
  • A student who receives a “NC” in CS 5 must re-take the course in the fall of their sophomore year.
  • A student who receives a “NC” in CS 42 may request to take the CS 5 Gold final exam. Passing this exam results in maintaining the “NC” for CS 42 on the transcript and the additional note that CS 5 was passed by exam. On the transcript, this shows up as “CS 5” with the grade of “EX” in the grade column and the student receives 3 units of credit for CS 5. The 3 units count towards graduation but not towards the student’s GPA. This fulfills the CS core requirement. If a student wishes to pursue a major that requires CS 42 or CS 60 then they must take later take CS 60 but that does not change the original “NC” grade in CS 42.
  • A HMC student who wishes to satisfy the CS core requirement in any way other than by taking CS 5 or CS 42 must submit a petition to the department.

Registration Priority

The department currently faces heavy demand for many of the classes it offers. In an attempt to provide equitable access to its classes and allow students majoring in CS, CSM and MCB at Mudd to make necessary progress in the major, the department operates a registration priority scheme for CS 60, CS 70 and CS 121 and a preplacement scheme for all CS classes above CS 70, with the exception of Clinic, colloquium, and practicum.

Timing of PERM Requests

For guaranteed consideration, PERM requests must be submitted by the end of the initial week of pre-registration (typically Friday at 5pm). PERM requests can be submitted early. Submitting a PERM request early does not increase the likelihood it will be approved. PERM requests are automatically emailed to professors; sending an additional email is not necessary. PERM requests are only approved or denied after pre-registration ends. PERM requests will receive a decision by the deadline to add a course.

Registration priority for CS 60

  1. Declared CS, CSM, and MCB majors (sophomores and above) as well as HMC sophomores regardless of major
  2. HMC first-year students
  3. HMC students (irrespective of major) by seniority
  4. Other Claremont Colleges students who are not majoring in CS, CSM, or MCB at Mudd

Note: Students in groups 3 and 4 will need to submit a PERM to take CS 60; the registration priority for these groups is manually implemented through PERMs. Note: CMC, Pitzer or Scripps students who took CS 5 in the spring of their first year and wish to take CS 60 in the fall of their second year, must submit a PERM to CS 60 and are selected through a lottery. More information is available here.

Registration priority for CS 70

  1. Declared CS, CSM, and MCB majors (sophomores and above) as well as HMC sophomores regardless of major
  2. CMC, Pitzer or Scripps students registering for their fourth semester who are currently enrolled in CS 60
  3. HMC students (irrespective of major) by seniority
  4. Other Claremont Colleges students who are not majoring in CS, CSM, or MCB at Mudd

Note: Students in groups 2, 3 and 4 will need to submit a PERM to take CS 70; the registration priority for these groups is manually implemented through PERMs.

Registration priority for other courses

Beyond CS 70, registration priority is given to students majoring at Mudd in CS, CSM, and MCB regardless of their home campus, then to HMC students by seniority, and then other Claremont Colleges students who are not majoring in CS, CSM, or MCB at Mudd. Students who are not majoring at Mudd in CS or CSM will need to submit a PERM request; approximately one week after pre-registration is complete, the department will process PERM requests using the priority ordering. Note that the same priority scheme applies to CS 81 and CS 105, even though these courses are often taken by sophomores.

CS 121 (“Software Development”) is a required course for CS Clinic and is required for the HMC CS major but not for the CSM or MCB majors, nor for the Pomona CS major. For that reason, CS 121 gives priority to students majoring in CS at HMC. Similarly, CS 105 is required for only the HMC CS major and gives priority to students majoring in CS at HMC.

Individual Program of Studies / Self-Designed Major

Any IPS (or similarly self-designed major) containing CS courses above CS 70 must have received written approval from the current CS department chair at the time of the creation of the IPS to be included in the CS preplacement process. Departmentally approved IPS majors will be eligible to participate in the preplacement process with the same priority as majors for at most one course specified by their IPS-plan each semester. IPS students wishing to enroll in more CS courses will be given the same priority as all other Mudd non-majors and should utilize the normal pre-registration/PERM system to do so.

Our expectation for IPS (and similar) majors is that they will be constructed to increase breadth beyond what would be possible through an existing major, linking together multiple disciplines. Thus the required classes of an IPS will only be drawn from the required classes of multiple majors, not their electives. Likewise any electives may only be a superset, not a subset, of the electives available to CS majors. The CS department will not approve any IPS (or self-designed) that makes stronger guarantees for access to CS classes than those of the CS major—although the department endeavors to provide a balanced selection of electives every year, because student demand and faculty availability may vary from year to year, the department cannot guarantee in advance that students will be able to take any specific elective classes on any particular schedule. Thus, for example, an approved IPS can say “one CS elective and one psychology elective” but not “AI and Advanced Neurochemistry”.

A departmentally approved IPS (or similar) must also include an appropriately rigorous capstone experience. The only capstone available through the CS department is CS clinic. Students are however free to find other departments willing to commit to other capstone experiences. In this latter case, the department will require evidence that an appropriate commitment has been made before approving the IPS.

Grades

With the exception of first-semester core courses and CS colloquium, CS courses taken towards a major served by the department (CS, CS/Math Joint Major, and Mathematical and Computational Biology) or CS minor (available only to HMC students completing an Individual Program of Studies) must be taken for a letter grade.

Electives

  • As indicated in the HMC catalog, students should select their CS electives in consultation with their CS faculty adviser.
  • A number of courses in other departments have already been approved as CS electives. These courses can be used in lieu of CS electives for the Computer Science, CS/Math, and Mathematical and Computational Biology majors.
  • Students who wish to take another non-CS course as a CS elective are welcome to discuss this with their CS adviser and then submit a petition to the department.
  • Although the department endeavors to provide a balanced selection of electives every year, because student demand and faculty availability may vary from year to year, the department cannot guarantee in advance that students will be able to take any specific elective classes on any particular schedule.

Passing a Course by Exam

As indicated in the HMC catalog, a student may satisfy a course by ‘excellence’ on an exam (where ‘exam’ could mean an actual test or project or a combination of both). There are two possible positive results for such an action.

  • The student may both fulfill the requirement for that course and receive corresponding unit credit. For example, doing all the homeworks and doing well on the exam in CS X may both fulfill the CS X requirement and provide 3 unit credits. This shows up on the transcript as “EX” in the grade column. The student gets the units towards graduation, but there is no grade filed and the units are therefore not factored into the student’s GPA.
  • The student may only fulfill the course requirement. In this case, no unit credit is received but the requirement for this course is waived (e.g. if the course is required for the major). This is listed as a “WV” within the registrar’s internal records, but does not appear at all on the student’s transcripts.

In general, the CS Department feels that “placing out” of courses is appropriate only when a student has such extensive previous academic or practical experience with the material that a review would not be a productive use of their time. Such situations are rare.

Petitions to place out of upper-level CS courses based on prior experience should be submitted to the Chair of the Computer Science Department. Specific rules for placing out of courses in the introductory sequence (CS 5, CS 60, and CS 70) appear below; for CS 60 and 70, nontrivial work and significant advance notice are required.

Placing Out of CS 5

Students cannot place out of CS 5, and the department does not waive the CS 5 requirement for CS 60.

“I’ve already taken Intro CS, so why can’t I jump directly to the next course?” The answer is that a substantial subset of topics and experiences in HMC’s CS 5 courses are not part of introductory CS paths elsewhere. For example, CS 5 includes (a) problem-solving in domain-specific languages (Picobot, JSFLAP), (b) truth tables, minterm expansion, and compositional digital design with logic gates, (c) problem-solving at the processor-instruction level (the Hmmm subset of all assembly languages), (d) finite-state machines and Turing machines (and, depending on the section, optimizing those machines for efficiency), and (e) uncomputability. These topics are not typical in introductory experiences and form a central, shared experience within the student-and-faculty CS community at HMC.

Placing out of CS 60

Placing out of CS 60 requires nontrivial work and the process spans more than a semester. Specifically, placing out not only requires a student to take the final exam at its regularly scheduled time, but also to create and submit both a pre-final-exam portfolio and a post-final-exam portfolio. Only students whose home college is HMC may place out of CS 60.

  1. Before the start of the semester in which a student would like to proceed with the place-out process, the student submits a short petition to the department that declares their intention of placing out and explains the prior experience(s) that justify placing out. If the department agrees that the student’s prior experience(s) justify beginning the place-out process, a faculty liaison for the process will be assigned.

  2. By the midpoint of the semester in which the student begins the place-out process (i.e. before first half semester courses end), the student should submit to the faculty liaison a portfolio of Java and Racket projects they have authored. These can be academic, personal, or professional in nature, but should not include assignments from CS 60 (past or present offerings). The goal of this portfolio is to show such substantial prior knowledge and confidence with object-oriented programming, functional programming, and basic data structures such that even taking CS 60 as a review would not be worthwhile.

  3. After the portfolio is submitted and at least one week before course preregistration, a faculty member (typically the liaison) will meet with the student to ask questions about the portfolio and about CS 60 course topics. The purpose of this meeting, no longer than 20-30 minutes, is to ensure that taking the final exam will be a worthwhile effort for the student. If approved, students will be able to preregister—or if applicable, pre-place—for future CS courses under the presumption that they will have finished CS 60 before the start of the next semester.

  4. After getting approval for the portfolio and the oral exam, the student will take the regularly-scheduled final exam with the students in that semester’s CS 60 course.

  5. If the results on that exam demonstrate high proficiency, the liaison will ask for a post-final-exam portfolio, a subset of the assignments from CS 60, to be completed at least one week before the start of the following semester. The post final-exam portfolio ensures that some of the important shared experiences from CS 60 are also part of the passing-out student’s background.

  6. If the post-final exam portfolio is submitted on time and judged to be sufficient, the student will have passed out of CS 60 with a passed-by-exam grade and 3 HMC credit-hours.

Placing out of CS 70

The process for placing out of CS 70 is very similar to the process of placing out of CS 60 above (in terms of timeline and milestones), with the details changed to match the difference in course content:

  1. Before the start of the semester in which a student would like to proceed with the place-out process, the student submits a short petition to the department that declares their intention of placing out and explains the experiences they have had through which they have become effective C++ programmers and effective pair programmers. The goals of this petition are twofold: first, to let the department know that a student is seeking to pass out, and second, the department will evaluate whether one of the central priorities of CS 70, effective pair-programming practice, is already part of the student’s background. If the department agrees that the student’s prior experience(s) justify beginning the place-out process, a faculty liaison for the process will be assigned.

  2. By the midpoint of the semester in which the student begins the place-out process (i.e. before first half semester courses end), the student should submit to the faculty liaison a portfolio of C++ projects they have authored. These can be academic, personal, or professional in nature, but should not include assignments from CS 70 (past or present offerings). The goal of this portfolio is to show such extensive prior experience with C++ and data structures such that even taking CS 70 as a review would not be worthwhile. Note that an important facet of CS 70 is professional programming testing, style, and documentation; these facets of the portfolio, too, will be considered.

  3. After the portfolio is submitted and at least one week before course preregistration, a faculty member (typically the liaison) will meet with the student to ask questions about the portfolio and about C++, about the data structures and asymptotic complexity covered in CS 70, and about other facets of professional programming practice that CS 70 emphasizes. The purpose of this meeting, no longer than 20-30 minutes, is to ensure that taking the final exam will be a worthwhile effort for the student. If approved, students will be able to preregister—or if applicable, pre-place—for future CS courses under the presumption that they will have finished CS 70 before the start of the next semester.

  4. After getting approval for the portfolio and the oral exam, the student will take the regularly-scheduled final exam with the students in that semester’s CS 70 course.

  5. If the results on that exam demonstrate high proficiency, the liaison will ask for a post-final-exam portfolio, a subset of the assignments from CS 70, to be completed at least one week before the start of the following semester. The reason for this post final-exam portfolio is to ensure that some of the important shared experiences from CS 70 are also part of the passing-out student’s background.

  6. If the post-final exam portfolio is submitted on time and judged to be sufficient, the student will have passed out of CS 70 with a passed-by-exam grade and 3 HMC credit-hours

Performance in Non-Claremont College transfer courses

  • As indicated in the HMC Catalog, students—with permission of the department—may transfer credit from other colleges and universities (e.g., study abroad or summer). Students wishing to take courses at another institution and transfer those courses as CS courses at HMC should consult with the department chair in advance.
  • Students interested in studying abroad must receive permission of their adviser and the department chair prior to registering for courses.
  • While HMC requires transfer course grades of at least a C, the CS Department requires a grade of B or better for courses taken outside of Claremont.

Colloquium Policies

  • Although all students are welcome and encouraged to attend colloquium talks, students may only register for colloquium in their junior and senior years.
  • A CS major, CS/Math Joint major, or MCB major who is studying abroad in the junior or senior year is excused from one semester of CS colloquium. The objective of this policy is to facilitate study abroad.
  • A student who has a time conflict with CS colloquium (e.g., another course that meets at the same time, a team practice, etc.) can make up that colloquium requirement by arrangement with the CS Colloquium Director. Students wishing to exercise this option should contact the CS Colloquium Director before the beginning of the semester in which they would normally take colloquium.

Independent Study and Research Credit

  • The department permits up to 3 units of independent study or research to count as a CS elective. This independent study or research credit can be accrued over several semesters in any quanta (as low as 0.5 units per semester, although we encourage students to take research in quanta of 1, 1.5, 2, or 3 units).

Practicum

  • Up to three units of Practicum may be used to satisfy 3 units of CS elective credit.

Thesis and Clinic

  • The department does not waive the clinic requirement for students wishing to do a thesis.
  • In some special cases, CS majors may petition to replace CS clinic with a clinic project in another department. This requires a petition to the department and approval of the cognizant clinic directors. The petition must include evidence that the requested clinic project has a significant computer science component and is determined to meet the pedagogical objectives of the CS clinic program.

Double Majors

  • No computer science degree requirements will be waived for a double major.
  • The department allows certain non-CS courses to be counted as CS electives (see “Electives” above). However, for double majors, a student is not allowed to take a course in another department as a CS elective if that course is also being counted towards a second major.

The computer science department notes that where a joint major exists, it strongly encourages students to select the joint major rather than attempting to double major in both disciplines already covered by the joint major. For fairness, to avoid advantaging double majors over their joint-major peers, when enforcing department-specific policies (e.g., preplacement), the department reserves the right to treat any student who (against the advice given here) insists on pursuing such a non-recommended double major exactly the same as it treats their corresponding joint major peers. For example, suppose that demand for CS 121 is high and there are insufficient seats to accommodate all who might want to choose this class (i.e, some student demand for the class must go unsatisfied); in such a situation, a CS/Math double major cannot expect that a seat will be given to them in preference to their joint CS/Math major peers.

Appropriate Use Policy

All students in CS courses are expected to abide by the HMC Honor Code and the Department’s own Appropriate Use Policy.