About the Class

CSCI0030 is an introductory computer science course specifically developed for concentrators in the humanities and social sciences. Because of this, we'll be focusing on real-world applications rather than computer science theory. There are no prerequisites, though some experience with spreadsheets will help. Students from all fields are welcome.

You can find the course website at http://cs.brown.edu/courses/cs0030/


The course will be hands-on and cover a variety of topics that will ultimately lead to the following skills:

  • Practice solving real world problems by learning to use new tools and applying familiar ones — like spreadsheets — in new ways
  • Gather data from the web
  • Create programs that analyze large amounts of data
  • Become proficient in a programming language


Part 0: Overview

Introduction to computational problems arising from questions in social sciences and humanities.

Part 1: Spreadsheet Analysis

We'll study this question using spreadsheets. Along the way, we'll talk about formulating computational questions, writing "programs" (in this case, a spreadsheet) to answer them, gathering and importing data from the web, and structuring a program so that it can be easily reused for new data.

Part 2: Textual Analysis in Python

Looking at texts as varied as Moby Dick, tweets, and a collection of Supreme Court decisions, we'll discover how to study computational questions about texts, questions as diverse as determining authorship, finding rarely-used words, and tracking epidemics.

Part 3: Data Representation and Social Media

We'll learn how to write a program whose output can be displayed using Google Maps or Google Earth, and visualize the spatial distribution of some kind of data—disease incidence, word usage, crime.

You will be able to obtain data from social media (such as Twitter), and apply text processing and data visualization tools over it.

Part 4: Final Project

Students will do a final project on some topic that interests them, using the skills they've learned in the first three parts.

Staff and Hours

The recommended way of getting in touch with the course staff is to e-mail cs0030tas@lists.brown.edu, which is easy to remember and will get you the fastest response. If you would like to email only the Head TA, instructor, and faculty, use cs0030headtas@lists.brown.edu.

Staff hours will be posted on the website on the staff page.


The TAs


All assignments count toward the final grade in the class. The work load varies with each week, but expect an average of 10 hours a week dedicated to this class (including lectures, homeworks, and projects). The Homework Policy gives more details about the late homework policy, extensions, and grades.

Homework Assignments

Homeworks will consist of computer assignments (in Google Spreadsheets and then Python) and short readings. The homework lengths will vary each week, but will tend to be shorter in the beginning of each unit and longer towards the end.

The homeworks are designed to reinforce useful material learned in class, and provide scenarios that will be useful for the class projects. Part of learning to program is to practice!

Unit Projects

After units 1 and 2, there will be a final project designed by the students to demonstrate the skills they have learned and developed. Students will first write a proposal and discuss their project with the course staff. They will then complete the project and report their results.

Final Project

Students will work on the final project for the last few weeks of the semester. TAs and faculty will be available for guidance. Students will include a timeline in their proposal, and are expected to keep to this timeline. We expect that a good project might have some obstacles, and we aim to give ample time to overcome these issues.

Late Policy

You will have 3 late days for the entire semester, to use at your discretion. For example, you may choose to submit one homework three days late or three homeworks one day late at no penalty. You will be penalized by 10% of the total grade for every day that a project proposal or the project has been handed in late. Homeworks that are later than five days will receive no credit.

You must submit all homeworks and projects in order to receive credit for this course.

Falling behind on homework will make it harder for you to complete future in-class activities, homeworks, and projects. It also interferes in the grading process, because all handins are graded at the same time by the course staff.


A request for an extension must be made to the instructor at least 24 hours before the due date. Extensions may be requested on homeworks and projects. Only the instructor can grant extensions, so please do not ask for an extension from the TA staff. Extensions are only granted for good reasons. Illness (with a note from health services) is an example of a good reason.


Homework & Project Grading

Homeworks will be graded by the undergraduate TAs and returned with grades and comments. Solutions will not be posted, but meetings with TAs can be arranged to discuss homework solutions.

Lab Participation

Full credit for a lab will be awarded for reasonable effort. Labs can be checked off during class or shared with the handin email cs0030handin@gmail.com before midnight on the same day.

Overall Grade

Grading will involve lab participation, homework (which will be due at the start of almost every class meeting), and the final project. There are no exams.

Component % of Overall Grade
Homeworks 50%
Lab Participation 10%
Project 1 10%
Project 2 10%
Final Project 20%

To obtain credit, all homework assignments and projects must be done. If all homeworks and projects are done, from 90% to 100% of the overall grade means A, from 80% up to just below 90% of the overall grade means B, and from 60% up to just below 80% means C.

Borderline cases (ex: 78%) can be adjusted up if the student consistently participates in class, and is engaged on activities.