Syllabus

Adapted from the policies in previous CS111ACE offerings taught by Trip Master, Avery Wang, and Fabio Ibanez.

CS111ACE — Problem Solving Lab for CS111

⏰ Section Time: Tuesdays and Thursdays, 9:30–10:20am, Lathrop 299

🦄 Course Assistant: Matthew Mattei

📧 Contact: mdmattei@stanford.edu

📓 Office Hours: Matthew: Tuesdays and Thursdays, 9:00–11:00am, Lathrop 190

Overview and Learning Goals

Additional Calculus for Engineers (ACE) is designed to provide the skills and solid foundation in mathematics, computational math in engineering, and computer science to undergraduate students interested in pursuing an engineering degree. The goal of ACE is to increase confidence and increase content knowledge through small group interactive sessions and the academic resources provided to students enrolled in the program.

CS 111 introduces the basic facilities provided by modern operating systems. The course is divided into three major sections:

  • File systems: storage devices, disk management and scheduling, directories, and crash recovery.

  • Concurrency: managing multiple tasks that execute at the same time and share resources. Topics include processes and threads, context switching, synchronization, scheduling, and deadlock.

  • Memory management: dynamic memory allocation, dynamic address translation, virtual memory, and demand paging.

CS 111ACE is designed to (1) review the theoretical concepts from CS 111, and (2) serve as a collaborative lab to explore real code examples based on the concepts from lecture.

Student Requirements

To receive credit for CS111ACE, you must:

  • Attend all CS 111 lectures, and come to section up to date with lecture.

  • Attend all CS 111ACE sections (required — see attendance policy for more details).

  • Encourage other students in their learning. Ask questions and engage in all activities.

Advice for Success in CS111

The core CS courses follow a long arc. CS106A teaches the language of programming. CS106B teaches you to use that language efficiently. CS107 teaches the language of the computer: what your code becomes, and how the machine organizes what you give it. CS111 teaches the organization of those abstractions: what the computer does on your behalf so a program works, and why it is set up that way.

  • Go to lecture and take notes in your own words, especially what is not on the slides. If you cannot restate an idea yourself, you do not really have it yet.

  • Go to section and ask or answer questions. Speaking up when you might be wrong is how you find out what to fix.

  • Do the assignments, and write the code yourself. Looking up a function or a bit of syntax is part of learning. After you look it up, write it in a way you can explain.

  • Start preparing for exams at least three days ahead. The day before, more people need course staff, so it is harder to get help.

Academic Resources

The ACE program is made up of 3 main components:

  • Weekly section — Tuesdays and Thursdays, 9:30–10:20am (mandatory).

  • Weekly ACE office hours — Tuesdays and Thursdays, 9:00–11:00am in Lathrop 190.

  • Midterm/Final review session — TBD (will poll the class for availability).

Communication

  • Announcements: will be sent out through Slack. Important announcements will also be sent via email.

  • General public communication: post in the appropriate Slack channel. Ask your logistical, conceptual, or assignment questions here, and your classmates and Matthew will try to help.

  • Communication with the course assistant: send Matthew a direct message on Slack. Matthew will respond generally within 24 hours. Please bear in mind that response times might be slower at off-peak times (weekends / late at night). If you don't get a response in Slack, ping again. Don't be shy!

Getting Help

  • Clarification questions about assignments: ask on Ed! Ed is the best place to get clarification questions. These assignments are relatively new, so Nick is the best source to get clarifications about the assignments!

  • Questions about being stuck or not sure where to begin: ask on the Slack channel! Your classmates will likely be able to help, and Matthew will try to guide you to get you started.

  • More private questions (attendance, grading, etc.): send Matthew a private Slack message. Since Matthew can't look at code, there is no reason to message Matthew privately for help on an assignment. Ask on a public channel so everyone can benefit from your question.

⚠️ Under no circumstances can Matthew read your code. This is the CS111 policy that every instructor and TA follows, and there are no exceptions.


Enrollment, Attendance, and Grading

Enrollment

CS111ACE is offered for 1 unit, and is separately graded from CS111. To be in CS 111ACE and receive one additional unit, you must enroll in CS111ACE using a permission number (which will be distributed to you by me after the first section).

Auditing

Auditors will only be allowed if there is classroom capacity for enrolled ACE students. Reach out to Matthew at the beginning of the quarter if you are interested in auditing CS111ACE. The syllabus is public. Section materials require a Stanford login and are for enrolled students. Recordings will be reserved for enrolled students.

Attendance Policy

Section attendance is mandatory. Attendance is the only component by which students are evaluated in the ACE program. Failing to abide by the section attendance policies may result in a NC.

Students are allowed 2 unexcused absences during the quarter. Let Matthew know ahead of time if possible. Any further absences must be approved directly by the ACE Coordinators (Eric Zhao & Alka Panda).

You must pass CS111 to pass CS111ACE. In other words, grades of a C- or above (or grades of a CR) in CS111 are required to get credit for CS111ACE. All other grades (NP, NC, W) will result in NC for CS111ACE. Email Matthew if you are getting an incomplete for CS111.

Lateness: arriving to section more than 5 minutes late or departing early counts as an absence unless the course CA is notified in advance. Any exception to this policy is at CA discretion and should be cleared in advance. For students who join late, no additional absences are allowed (without communicating with the ACE coordinators (Eric Zhao & Alka Panda)).

Grading

CS111ACE should be taken satisfactory/no credit.

ACE Materials

ACE materials are supplementary. Worksheets, examples, and other handouts support what we practice in section. They do not replace the CS111 lectures or the course's core materials.

Slides, when they are posted, are only a light reference. Section is not organized around them.

Accessibility

Students who may need academic accommodation based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE). Professional staff will evaluate the request, review appropriate medical documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty. The letter will indicate how long it is to be in effect. Students should contact the OAE as soon as possible since timely notice is needed to coordinate accommodations. Students should also send their accommodation letter to instructors as soon as possible. The OAE is located at 563 Salvatierra Walk (phone: 650-723-1066, URL: oae.stanford.edu).


Contacts

Matthew Mattei

ACE Course Assistant; primary point of contact for CS111ACE

Nick Troccoli

Contact for questions related to course, section, exams, homework

Eric Zhao & Alka Panda

ACE Program Coordinators (absences beyond the given 2)

Jamillah McDaniel Ph.D

ACE course coordination, course acceptance, student advising, ACE student-related concerns and issues

Jackie Hernandez

ACE course coordination, course scheduling, ACE student-related concerns and issues