About the Class
CSCI0931 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/cs0931/
Goals
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
Syllabus
Part 0: Overview
Introduction to computational problems arising from questions in social sciences and humanities.
Part 1: How liberal is your senator?
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. When we've ranked our senators, we'll be able to experiment with the rankings a bit and see whether we asked the right question.
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: Pattern Matching, 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.
Introduction to computational problems arising from questions in social sciences and humanities.
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. When we've ranked our senators, we'll be able to experiment with the rankings a bit and see whether we asked the right question.
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: Pattern Matching, 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.
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.
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.
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 cs0931tas@lists.cs.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 cs0931headtas@lists.cs.brown.edu
.
Staff hours will be posted on the website on the staff page.
Instructor
- Alexandra Papoutsaki —
alexpap@cs.brown.edu
The TAs
- Anna Gasha (Head TA) —
agasha@cs.brown.edu
- Pran Chanthrakumar —
pchanthr@cs.brown.edu
- Stewart Lynch —
sjl2@cs.brown.edu
- Raymond Zeng —
rz14@cs.brown.edu
- Alexandra Papoutsaki —
alexpap@cs.brown.edu
- Anna Gasha (Head TA) —
agasha@cs.brown.edu
- Pran Chanthrakumar —
pchanthr@cs.brown.edu
- Stewart Lynch —
sjl2@cs.brown.edu
- Raymond Zeng —
rz14@cs.brown.edu
Assignments
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.
Grading
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.
Projects will be graded by the instructor and faculty.
Overall Grade
Grading will involve class 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% |
Unit Project #1 | 10% |
Unit Project #2 | 15% |
Final Project | 25% |
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 75% up to just below 90% of the overall grade means B, and from 50% up to just below 80% means C.
Borderline cases (ex: 72%) can be adjusted *up* if the student consistently participates in class, and is engaged on activities.