Computer Science with Applications 1

CMSC 12100/CAPP 30121 (aka CS121)


[9/18]: Requests for lab and section swaps must be submitted by 5pm on Sept 25. Complete this form to make a request.

[9/18]: You can sign up for the waiting list using this form

Course Staff


  • Anne Rogers
  • Borja Sotomayor

Teaching Assistants

  • Steven Basart
  • Lauren Dyson
  • Carlos Grandet
  • Hector Salvador
  • Gustav Larsson
  • Lang Yu
  • Suhail Rehman

Lecture times and locations

Lecture Section #1 MWF 9:00-9:50am Ryerson 251 Rogers
Lecture Section #2 MWF 11:30-12:20pm Stuart Hall 105 Sotomayor
Lecture Section #3 MWF 1:30-2:20pm Harper Memorial Library 140 Rogers
Lecture Section #4 MWF 10:30-12:20pm Stuart Hall 105 Sotomayor

Lab times and locations

All labs take place in the Computer Science Instructional Laboratory located on the first floor of Crerar Library. Note that our labs are held in either CSIL 3 and CSIL 4.

Mon 9:00-10:20am Lab #1 CSIL 3 Larsson   Lab #2 CSIL 4 Grandet
Mon 10:30-11:50am Lab #3 CSIL 3 Larsson   Lab #4 CSIL 4 Grandet
Mon 12:00-1:20pm Lab #5 CSIL 3 Larsson   Lab #6 CSIL 4 Salvador
Mon 1:30-2:50pm Lab #7 CSIL 3 Basart   Lab #8 CSIL 4 Salvador
Mon 3:00-4:20pm Lab #9 CSIL 3 Basart   CAPP Lab #1 CSIL 4 Dyson
Mon 4:30-5:50pm Lab #11 CSIL 3 Basart   CAPP Lab #2 CSIL 4 Dyson
Mon 6:00-7:20pm CAPP Lab #3 CSIL 4 Dyson    

Lab materials will be posted here.


We will be using a draft of a book that the instructors are writing for this course. You can find an HTML version of the current draft here and a pdf version here. You will need to authenticate yourself with your CNET ID and password to gain access to these pages.


You may find this book to be a helpful backup.

Python Programming : An Introduction To Computer Science
Zelle John M.
ISBN-13: 978-1590282410.

It is available at the Seminary Co-op Bookstore.

Readings are listed here.

Sample problems

We will periodically make a set of short problems available to you to test your knowledge of the material we are covering in class. Some of these problems will of the “be a computer” variety and will require you to evaluate a piece of code by hand. Others will require you to write code. We will be using a system named Kattis to help your test your solutions to the latter type of question.

You will not submit these problems and they not be graded. They will, however, help test you knowledge of the material needed to do the programming assignments and will be good practice for exams.

Programming assignments

We will be assigning seven programming assignments. You will be allowed to work in pairs in some of these assignments. See the calendar for details.


We will be giving evening exams on Oct 25th 7-9pm and Dec 6th 7-9pm.

Tentative Grading Scheme

Programming assignments 60%
Exam 1 (Oct 25, 2016, 7-9pm) 20%
Exam 2 (Dec 6, 2016, 7-9pm) 20%

Late submissions

All students may use up to two 24-hour extensions for the programming assignments during the quarter. These extensions are all-or-nothing: you cannot use a portion of an extension and have the rest “carry over” to another extension. If extraordinary circumstances (illness, family emergency, etc.) prevent a student from meeting a deadline, the student must inform their instructor before the deadline.