Resources for GSIs

At the end of the day, the purpose of all automation is to be able to free up faculty, TA and reader time to do what is most important: interact with students. Make them see the course as a supportive learning environment. – Anant Sahai

Table of Contents

Basic GSI Resources

  • How Tos and Guides
  • Staff Contacts:
  • Course Notes for GSIs: Textbooks and class/lab schedules
  • Cory and Soda Room Reservations
  • EECS Administrative Services: Keys, cardkeys, copy cards, etc.
  • Policies and Guidelines
  • Wellness Resources

    Sample Course Breakdowns

    For CS 189 courtesy of Pat Virtue

    Google docs Piazza inst.eecs bCourses Gradescope Kaggle Moss Bitbucket

    Private staff communication

    • Grading Exceptions
    • Semester-specific
    • Guide to course infrastructure

    Private communication with students

    • Discussions
    • Announcements
    • Private student concerns (rather than e-mail)
    • Can be integrated with inst.eecs

    Public content

    • Syllabus
    • Lecture Notes
    • Readings
    • Can be integrated with Piazza

    Private content for students

    • Homework descriptions
    • Discussion section schedule, handouts, and solutions
    • Grades
    • Course info and policies
    • Course staff, including office hours and contact info


    • Homework
    • Exams

    Machine learning: collect results from programming assignments (specific to CS189)

    Plagiarism checker

    Course content source

    • Homework description and code
    • Discussion handouts
    • Exams

    For CS 61B courtesy of Sarah Kim

    Google docs Slack Piazza inst.eecs Gradescope Moss GitHub


    • staff organization documents
    • Forms to collect info from students (e.g. regrade requests, course surveys)


    • staff communication (instant messaging for small teams with features like file upload and direct messages)
    • Different communication channels for topics such as website, autograder, curriculum, urgent matters, etc.
    • Integration with services like GitHub
    • Useful for real-time communication on time-sensitive events like exam proctoring (syncing multiple rooms)


    • Students can ask questions and help each other
    • Staff can also answer questions and make announcements to students


    • Hosts our course website, which has a syllabus, schedule of assignments, office hours, staff listing
    • Links to lab/homework assignments and guides
    • Homework and labs are generated from Markdown to HTML using templar

    (internal & external)

    • Site to upload and grade exams
    • Used to process regrade requests for exams


    • Detects code plagiarism

    (internal & external)

    • Internal staff course development (private repos for lab, homework, project, website, and autograder development)
    • Stores all our code for assignments and grading scripts
    • GitHub Education gave a very generous gift of 1350 repos
    • Each student is given a private repo that they use to submit their work (no longer using hw submit)
    • Staff server runs a Jenkins job that automatically pulls from student repos and runs code on autograders to email students feedback and process grades for assignments

    For CS 188

    edX Amazon EC2 Amazon S3 GitHub

    Student interface


    • Pacman project autograding
    • Exam autograding

    Static files (code lives on Unfuddle)

    • Lectures
    • Project source files

    Exam problem creation


    • Announcements
    • Course schedules and due dates

    Course information

    • Syllabus
    • Course policies
    • Staff list
    • Office Hours
    • Exams

    Courseware and Content

    • Release weekly material and assignments
    • Electronic homework assignments (autograded)
    • Project specs & submission (autograded)
    • Lecture videos and slides
    • Step-by-step videos
    • Contest specs
    • Practice midterms and exam prep


    • Generate gradebooks
    • See student's grade report
    • Studio: generate a .zip/.tar file of the course

    Core Course Resources

    • Campus
      • inst.eecs Information for Instructors: EECS Instructional Accounts. Free and public course website hosting with support from EECS department staff. In order to interface with Piazza you need a Berkeley key.

      • bCourses: Not viewable by the public. Send announcements, create assignments for online submission, hold virtual office hours, student file submission, discussion forums, grades, polls, quizzes and surveys, student rosters, course schedules, manage course sections, analytics and rubrics, learning outcomes.

      • Educational Technology Services (ETS): Provides technology tools, training and support for faculty, staff and students in their work as teachers, learners, researchers and collaborators

    • edX Edge: for courses that are also MOOCs

      If a course is also offered as a MOOC through UC BerkeleyX then shared resources are hosted on edX.


    • Private Collaboration
      • bDrive: Google docs. Share data and collaborate on semester-specific information

      • Piazza: Closed Forums
        CS70 uses 3: One for TAs, one for readers, and one for academic interns (formerly lab assistants)
        CS189: Private student concerns (rather than e-mail) so we can keep track of them and make sure they are addressed
        Piazza can interface with inst.eecs but you'll need a Berkeley key.

      • HipChat: Free plans with unlimited integrations with other services. (Offers 50% off premium plans for education accounts but free accounts usually suffice)
        CS10: We have integrated notifications with Asana, GitHub, and a custom built chat bot which automates some tasks.

      • Slack: Instant messaging app for small teams. It's different from Piazza in that conversations are broken into channels: each channel can have a different topic. It's nice for short messages that don't warrant emails. The Slack mobile app also has great notification features, so it's really helpful for getting another staff member's attention (similar to texting, but with lots more capabilities like GitHub integration, file upload, and more). The free plan is limited to 5 integrations with other services.
        CS61B: Some channels we use are #urgent, #labs, #website, #autograder, #projects, and #random.
        CS61B: We use Slack often during exam proctoring. We usually have several rooms (sometimes four different exam rooms simultaneously), so it's really helpful to instantly update each other on exam corrections, timing, and progress.

    • In-Class Discussion & Polls: Q/A, news, communication
      • Piazza: Open Class Forum
        One of the secrets to managing discussions on piazza is to use pinned problem threads (containing images of the homework problem for easy reference) that allow students to concentrate discussions about a particular problem into a particular thread. This makes it a lot easier for them and for the instructional staff.

    • Task/Project Coordination
      • Asana: Task/project management. They have a basic version for free but it is limited to 15 users. However, they do offer education discounts which allow 100 user projects for free.
        CS10: Uses the free version. We setup different task lists for things like grading or making discussions and exams.

      • CS70: We use APIs on bDrive spreadsheets/calendars to help plan TA and reader time so you don't overwork TAs, etc.

      • CS70: The AWS server lets us manage the readers and assign them homework and problems to grade (in a way that balances their load and lets us shift them to other tasks as needed). The most important reason for doing this is to allow us to do randomized problem assignment and use crowdsourcing ideas, like having a random set of homework problems be assigned to multiple readers.

      • CS70: We have scripts that create a consolidated per-student view of how a student is doing — to help us flag students of concern.

      • CS70: We have scripts that will help divide a class into different rooms for midterms and finals based on room sizes (so it can be split based on student ID, names, etc.)

    Public Content

    All courses should have a public website.

    • inst.eecs: EECS course home pages (static)

      lecture notes, syllabi, assignments, practice problems, solutions.

    • Videos
      • webcast.berkeley: Listings of all webcast courses by semester and department
      • CalCentral: Includes webcast links only for the courses which you are teaching or in which you are enrolled
      • Berkeley on iTunes U: Location for downloadable versions of all webcasts
      • YouTube: Alternative to webcast.berkeley

    • Project Publication
  • Courseware

    • Assignments: Grading should be optimized for learning rather than measurement

      • glookup: Instructional grading database and automated assignment submission. Good for grading code assignments, not recommended for pdfs. Available on inst.eecs.

      • CS70: We have a system that can interface to SVN, Piazza, glookup, and the instructional machines to automate the homework cycle. With a few clicks, new homework is taken from SVN, compiled, placed onto the website, problem-specific threads are created on piazza, and images for those homework problems are then hosted on the static website. Meanwhile, automatically, the glookup system on the instructional machines is configured to accept a new homework submission. Then, when it is time for the homework to be due, the solutions gets posted, the problem threads are unpinned, a self-grading form is autogenerated, etc.

      • CS189: Collect results from programming assignments using Kaggle

      • CS70: One of the things that we did was to host practice problems online. For this we have custom AngularJS-based dynamic html that is hosted on the static site. (e.g.

      • CS70: We have the automatic LaTeX to online problem format compiler that lets us generate online problems using a more convenient tool (than the AWS server).

      • CS70: We have scripts that run EM for inference that combines different sources of homework grades across the entire class into a more calibrated per-student measurement of their homework. This allows us to combine noisy student self-grades with less-noisy-but-still-noisy reader grades.

    • Exams: Grading should be optimized for fair and reliable measurement

      • Gradescope (aka Pandagrader): Not recommended for grading code assignments.

      • CS188: Custom autograder on Amazon EC2

      • CS70: Google drive (spreadsheets/calendars) and APIs for automation are what let us roll out oral exams — because we were confident that we could pull it off by being able to redirect resources away from other things

    • Plagiarism
      • Moss: An automatic system for determining the similarity of programs

      • Turnitin's Originality Check: Available through bCourses
        [This tool will be available during the Spring 2015 semester by request in bCourses, exclusively for student work submitted using the Assignments tool. Faculty who wish to have Turnitin enabled in their course should email]

      • CS70: We have scripts that search homework for evidence of copying across students.

    Version Control

    • SVN repositories: Manage the homework, exam, lecture notes, and discussion worksheet content creation process. Bug and issue tracking. Revision control helps to manage distributed content creation and keeps continuity/memory across semesters.
    • Amazon Web Services (AWS): EC2 (VM) and S3 (storage)

    • GitHub Education: For students or instructors; free private repositories, developer pack.
      CS61B: GitHub Education is incredibly generous to classes. CS 61B received a free plan of 1350 private repositories when we requested them for educational purposes. We haven't assigned anything in the Developer Pack to be used in assignments, but its a nice resource for students who want to work on side-projects or just experiment with things.
      CS61B: Most of our repositories are private and others are/will be public. I also cannot think of anything negative about GitHub. It is amazing

    Resources for Specific Classes

    CS 61A

    CS 70

    CS 188

    Feedback & Contact

    For advice about CS Upper Division and all EE Courses contact Pat Hernan,
    For advice about CS Lower Division Courses contact Diana Smith,
    For questions about or changes to this web page contact