Syllabus

Basic Facts

About this course

CMPSC 190J: Teaching Computer Science

This course is designed for outstanding students who intern as undergraduate mentors in lower division CS courses. Lecture/discussion surveys current research and best practices in CS pedagogy including student development theories, different pedagogical techniques, and methods for assessing learning. Students gain experience working one-on-one with students, fostering positive learning environments, and providing feedback on student work.

Students who successfully complete this course will earn 4 units towards their major field electives by serving as a mentor. They will also be eligible to apply for paid tutoring positions in lower division undergraduate courses in the following quarters.

Final Course Grades

Course grades will be calculated as follows.

Tutoring performance specific to your course

As a tutor, you are a role model to the students in the class. Therefore, your conduct should reflect the values that we would like to instill in our students. With this philosphy in mind, we expect you to be:

Your tutoring performance will be graded along the above dimensions based on observations made by the instructor. You may ask the instructor for feedback around Week 5 during their scheduled office hours or by setting up an appointment with them. This is optional.

For purposes of calculating a final course grade, a numeric value out of 100 will be assigned by your supervising instructor for this portion of your course performance.

190J Course components:

The course has three main components lectures, discussions and homeworks as described below.

Attendance/Participation

Attendance/participation at the weekly lecture sections, and assigned discussion/open hours sessions is required and mandatory for students enrolled in CS190J. CS190J students should notify their supervising instructor and course-leads if it is necessary to miss a lecture for an unavoidable reason (e.g. illness, legitimate conflict with academic activity, family emergency.)

Homeworks/In-Class Activitites

Each homeworks or in-Class Activities (ICs) will be worth the same number of points (i.e. normalized to 100 points).

They will be of two types:

Mentoring in the context of CMPSC 8

CMPSC 8 is usually the first CS course that students take at UCSB. The mentors in CMPSC 8 will assist students with different levels of programming experience understand concepts that are foundational to CS and gain study habits and skills that will help them succeed in future CS courses. Mentors are central to creating a supportive learning environment and helping students engage with the material.

The mentors will assist students during the CS 8 lab sections, while they work on their programming assignments, provide feedback on student code and homework, and hold office hours to assist students. Mentors will also be involved with creating collaborative study guides and assisting with study sessions prior to exams.

Mentoring in the context of CMPSC 16/24

In CS 16 students are expected to solidify their foundations in programming by revisiting key programming constructs (functions, control structures - loops and conditionals etc) in the context of C++). By working in a compiled language, students also learn about basic computer organization, and the hardware software interface. By the end of the course, students are expected to be comfortable working in a unix environment and developing C-style programs in C++ (procedural rather than OO). Key new concepts include pointers, references and memory management in C++. Through practice, students should become more comfortable with debugging code independently, and using techniques to develop accurate programs. Finally, students will learn about git and intergrate it into their workflow.

In CS 24, students learn about OOP, data structures (linked-lists, trees, stacks, queues, heaps) and the mathematical framework (Big O) to analyze the complexity of their algorithms. Other skills students need to develop are working with github (this may be completely new to some), debuggers (gdb) and Makefiles.

As a CS16/24 mentor, your duties include:

  1. Preparing (very thoroughly) for each lab/assignement before your lab section
  2. Interacting one-on-one with students in section and open lab hours to assist with programming. Your role is to identify gaps in student understanding and help develop key faculties and techniques needed for programming. In your interactions you should strive to be supportive and non-judgemental.
  3. Tracking the progress of approximately 10 students in your mentor group and setting up a time to meet with them on a regular basis
  4. Providing feedback on student code (for your mentees only)
  5. Writing reports to communicate overall progress to your mentees. You are highly encouraged maintain logs on each student which will help you create these reports.
  6. Reflect on your tutoring style and adjusting it to better suite your audience (your mentees).
  7. Assist the TAs with study sessions prior to exams

Mentoring in the context of CMPSC 32

CS 32 will dive deeper into the topics covered in CS 16 and 24. The main emphasis will be on object oriented design, additional C++ features, and basic operating systems concepts. There will be weekly homework and lab assignments in the course where students may seek help from CS 32 mentors.

CS 32 mentors are expected to:

  1. Prepare for each lab assignment before your lab section
  2. Attend lab sections and assist TAs in helping students with their lab work
  3. Hold open lab hours where you can provide personal attention to students who seek additional assistance
  4. Browse Piazza and help answer questions posted by students
  5. Attend weekly mentor meetings to provide your observations and feedback on students’ experience and struggles