Missive

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, and students from all fields are welcome.


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 tool 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 (Python)

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 programs so that they 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 The Office scripts, tweets, and a collection of Supreme Court decisions, we'll discover how to study computational questions about texts, questions as diverse as determining authorship and finding rarely-used words.

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 from the course.


Course Information

A selection of course policies and information is listed below. For more information, check out the course missive.


Staff and Hours

The recommended way of getting in touch with the course staff is to e-mail cs0030tas@lists.brown.edu or post on Piazza. If you would like to only contact the HTAs and instructor, use cs0030headtas@lists.brown.edu.

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

Instructor

The TAs


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 Course Missive gives more details about the late homework policy, extensions, and grades.

Homework Assignments

Homeworks will mostly consist of programming assignments (in Python) and short text responses. 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!

Projects

There will be 3 projects designed by the students to demonstrate the skills they have learned and developed in the class. Students will first write a proposal and discuss their project with the course staff. Then, they will 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 on homeworks and projects 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 assignment grade for each day that a project proposal or the project has been handed in late. Homeworks that are later than three days will receive no credit. Projects 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.

Extensions

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.


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.

In-Class Participation

Full credit for a in-class activities will be awarded for reasonable effort. Many in-class activities will continue into the weekly homework assignemnts. Those that do not continue into an homework assignemnt can be checked off during class or submitted through Canvas.

Quizzes

There will be occasional in-class quizzes to help re-inforce the material covered in the past couple lectures.

Overall Grade

Grading will involve participation, homework (which will almost always be due at Monday at 11:59PM), in-class quizzes, and projects. There is no final exam.

Component % of Overall Grade
Quizzes 5%
Homeworks 45%
In-Class Participation 10%
Project 1 7%
Project 2 13%
Project 3 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 in in-class activities.