If you took CMPSC 156 and left feeling “I want more!”, you may want consider asking your instructors about opportunities to do a CMPSC 192 or CMPSC 196 course to continue your learning.
In a 192/196 course, the relationship between student/professsor is typically more of an “apprenticeship/supervisor” relationship than the student/teacher relationship you find in a traditional course. It resembles the way that professors work with graduate students on research, so it is good way to explore whether research and/or graduate study may be something you want to pursue.
Here’s the catalog description
CMPSC 192. Projects in Computer Science (1-5) STAFF Prerequisite: Consent of instructor. Enrollment Comments: May be repeated to a maximum of 8 units with consent of department chair. Students must have a minimum 3.0 GPA. Projects in computer science for advanced undergraduate students.
Here’s the catalog description
CMPSC 196. Undergraduate Research (2-4) STAFF Prerequisite: Students must: (1) have attained upper-division standing (2) have a minimum 3.0 grade-point average for preceding three quarters, (3) have consent of instructor. Enrollment Comments: May be repeated for up to 12 units. No more than 4 units may be applied to departmental electives. Research opportunities for undergraduate students. Students will be expected to give regular oral presentations, actively participate in a weekly seminar, and prepare at least one written report on their research.
For a 192, projects may typically include:
- Working on the Spring/React future work projects (projects to extend the capabilities of the code base used for CMPSC projects, either to allow more functionality for end users, improve the quality of the code base, or to increase/improve opportunities for future CMPSC 156 so that their learning of software engineering is broader, deeper, or both.)
- Working on the existing Legacy Code Projects on features bug fixes or refactorings that would not fit into the usual structure of the course, either because they
- require more sustained attention than the three week time span for the legacy code phase of CMPSC 156
- require global updates to the code base that would be difficult to accomplish during the course (too many merge conflicts)
- are technically more difficult that the usual expectations of CMPSC 156 (where projects have to be accessible to students that may be novices to full-stack web development).
- Working on New Legacy Code Projects—we introduce new legacy code applications from time-to-time; we typically try to provide at least some partial work towards a “minimum viable product” (MVP) when introducing these new applications, so that students get the legacy code experience.
For a 196, work may include any of the items above, but there needs to be a “research angle”. Additionally, 196 students may choose to get involved in some of the publishable work done by Prof. Conrad related to CMPSC 156, including but not limited to
- Studies of the use of testing in CMPSC 156. Examples of past work:
- Studies that analyze chat transcripts (Slack) from CMPSC 156, for example:
- Studies that analyze how to evaluate equity of individual contributions to team projects, for example:
There are other research questions as well related to CMPSC 156 that can be posed and investigated using artifacts from CMPSC 156 (with informed consent)— if you have ideas, pitch them!
For CoE Computer Science majors (CMPSC) and College of Creative Studies Computing Majors, the answer is “yes, but only up to four units”.
See the version of UCSB CoE GEAR for the year you matriculated (i.e. became a full-time student at UCSB) for the official rules; here’s a screenshot of the rule that applies from the 2023-2024 GEAR:
Also: while 192 and 196 can be taken P/NP or for a letter grade, you must take them for a letter grade in order to apply them to major field electives.
For other majors, e.g. Computer Engineering (CMPEN), please consult your home department’s advising staff (e.g. ECE for CMPEN majors) before enrolling to determine whether or not the course will satisfy degree requirements.
(Note that the content of this section is a personal view of Prof. Phill Conrad, and not official university policy.)
The form for proposing a 192/196 requires the instructor and student to agree on evaluation criteria. I typically put something like this:
To evaluate student work and learning, Instructor will examine artifacts produced by the students including software, written documents, and if applicable, oral presentations, and assign an appropriate letter grade.
I should point out that awarding letter grades in 192/196 courses is different from regular undergrad courses. Regular courses typically have a detailed syllabus with a breakdown of how much each component is worth; numerical scores are assigned to each component, and then a grade is calcuated. Typically, nothing like that happens for 192 / 196 work.
Instead, the instructor and student agree on some high level goals at the start of the course; they then meet periodically to set smaller intermediate goals. However, evaluation is informal, and ongoing.
The typical grade for students in independent studies is an A, mainly because of two forms of selection bias:
- Typically, only highly-motivated/high-acheieving students propose independent studies
- Instructors have discretion to say yes/no, and typically only take on high achieving students
But the A is not automatic: it must be earned. And unlike in a course with numerical components, the way that is done is typically more subjective. The independent study implies an unwritten handshake agreement between the student and the professor that they trust each other:
- the professor trusts the student to be diligent and hard working
- the student trusts the professor to evaluate their work fairly.
Before you propose (or agree to) an independent study, both parties should ask themselves whether they are prepared to extend that level of trust to one another, and proceed only if the answer is enthusiastically yes.
For most students, 192 is the better choice; it is more flexibile in at least three ways:
- Work may be publishable, but doesn’t have to be (it must be for 196).
- There is an ability to trade off units vs. letter grades
- Fewer requirements for written/oral presentations
More on each of these below, then a discussion of the limited circumstances where a 196 may be a better choice.
Both courses have an implicit requirement that the student is learning something signifcant and doing work worthy of four units of upper division—that’s a baseline that they both share.
But for 196 there is an additional implicit requirement (via the course title) that the work be connected to “research”—i.e. the investigation of something novel and significant that can be published in a peer-reviewed venue, such as a conference or a journal. The work done has to have a significance beyond just that the student “worked hard and learned something”.
Note that a student may still undertake “research-worthy” work as part of a CMPSC 192—and if that work results in a publication, very few people will care whether it was done as part of a 192 or 196 course.
Consider a circumstance that is rare, but can occur, where due to circumstances beyond your control, you are unable to follow through on your original committment, and the quantity of work is signficantly lower than the expectations for a four unit upper division course.
With a 192, there is the option to award, say, 2 units of work rather than 4. And, if the work is of high quality (just not enough of it for four units), the associated letter grade could be an A. That still leaves the option to do two more units of work later to count the work towards major field electives.
By contrast, if the course is a 196, there is no variable unit option; the only choices in the circumstances described above would be either:
- drop the course completely, and get no credit for the work already done
- take a reduced grade for 4 units (e.g. a C or D).
Note the scenario described here assumes work of high quality. If the work is of low quality, a reduced number of units for a higher grade that the work deserve is not really an appropriate option.
The standard for getting any credit for 192 / 196 work is always high.
For 196, there is a specific requirement for a formal written report and formal oral presentations.
Note that for 192, the instructor may still require some writing and/or oral reports at their discretion, but this can be a point of discussion between student and instructor, and the instructor has disrection to impose this requirement or not.
By contrast, there’s no instructor discretion for a 196; the student must produce a formal written report and make an oral presentation of their work.
The only cases I have encountered where taking 196 might be preferred:
- If the student specifically needs 196 credit for some specfic program that requires it (e.g. Engineering Honors, DIMAPS, etc.)
- If the student really, really, wants “Research” on their transcript (though note that if you end up as a co-author on a publication, that’s far more significant to, for example, potential grad school programs than what’s on your transcript.)
- Start with an email and/or Slack message to Prof. Conrad.
- Be persistent; his email gets full, and it’s easy for things to get missed
- Agree on the general parameters informally first:
- General project outline
- Time frame
- 192 or 196
- Then fill out a formal 192/ 196 petition
- That will be submitted to the CS office; they’ll respond with an add code.
- You must add yourself to the course with the add code! They don’t automatically add you.
- Make sure the course shows up on GOLD
- Contact the instructor to set up a schedule of work.
- Check in at least once a week—probably more often, but at least once at week to report progress, and ask for feedback, and new goals.
Here is an outline for an end-of-quarter report in five sections.
Students often ask “what should the length be”. I try to avoid answering this question, or else say: the length it needs to be to answer the five questions in a thoughtful way: no shorter, and no longer than that.
But: if you really, really want me to say:
- Most reports are at least a page and a half. If it isn’t at least that long, you probably haven’t really answered the questions in a complete and thoughtful way (or, possibly you have, and you are just a brilliant writer that packs a lot of meaning into very few words?)
- Few reports are more than three pages
- But I did get a report once that was 10 pages, because they included lots of screenshots, and lots of examples, and it was a good report.
In this section, write a paragraph or two that introduces the context of your CS192/CS196 experience. Describe the goals of the class. The audience should be a CS faculty member or CS undergrad (a potential future moderator) that is not familiar with what we did in the course.
Describe what you, specifically, did during the class. Help the reader understand the level of work involved, and the type of work involved so that you implicitly answer the question “why was this worth 4 units of upper division credit”?
Describe what you, specifically, learned during the project. This could be technical learning, or it could be non-technical learning. It could be new skills/knowledge, or reinforcing existing skills/knowledge. Again, this helps implicitly answer the question as to why this was worthy of 4 upper division units.
Suggestions for future work
What would you suggest are the learnings for the entire group?
What about this quarter’s experience went well and should be continued?
What suggestions do you have for what could be changed or improved for next time?
If it helps the essay flow better to a conclusion, you can add a summary section at the end.
If that seems superfluous, because Section 4 ended on a good note already, you may omit this.
You may also divide any of the sections above into multiple sections if that makes the story easier to tell. The outline above is a suggested guide, not a straightjacket.