CS 11/111: Computer Language Shop

CS 11 is a self-paced lab that provides students with extra practice and supervision transferring their programming skills to a particular programming language; the course can be used for any language of the student's choosing, subject to approval by the instructor. A series of exercises guide the student through the pragmatic use of the chosen language, building their familiarity, experience, and style. Lab staff will critique the student's technique and craftsmanship, offering expert feedback on areas for attention and helping the student with any conceptual difficulties that may arise while mastering the particular language. CS 11 may be repeated for credit up to a total of 9 units.

NOTE: Before you email us a question, first read the entire page below. If you still have a question, check to see if your question hasn't already been answered on the Frequently Asked Questions (FAQ) page.


We break CS 11 into several "language tracks." Not every track is taught every term. To see a list of tracks being offered in a particular term, check below:

Fall 2022

Section 1: C Track

Prerequisite: CS 1
Instructor: Prof. Mike Vanier
Description: In this track, all of the basics of C programming will be covered, including syntax, types, functions, arrays, pointers, structs, command-line arguments, and using C programs in a Unix system. Emphasis will be placed on a detailed understanding of pointers and manual memory management (topics that make C programming more difficult than other languages). Writing basic data structures (linked lists, arrays) will also be covered.

Section 16: LaTeX Track

Prerequisite: None
Instructor: Prof. Adam Blank
Description: In this track, we will play around with LaTeX as a programming language. We will expect basic familiarity with using LaTeX to typeset, but we'll go way beyond what you might expect LaTeX is capable of.


If you are not registered in CS 11 but want to add the class before add day, please read this page.


NOTE: CS 11 TAships

If you are interested in being a TA for CS 11 for next term, contact the CS 11 instructors Mike Vanier, Adam Blank, and Melissa Hovik as soon as possible. The exact number of TAships and the exact number of hours per TA are not determined before a term starts; it depends on the enrollment figures. It is most likely that we will need TA support for the C, C++, and Interview Preparation tracks, so expertise in at least one of those languages is a major plus. You do not have to have taken CS 11 to apply, nor do you have to be a CS student. However, we would like some evidence of your coding abilities, preferably in the form of coding samples. Teaching experience is also a big plus.


Copyright (C) 2021, California Institute of Technology.