CS 4984 - Social Computing Capstone
- Instructor: Tanushree (Tanu) Mitra
- Office hours:
- Tuesday: 3:30pm to 4:30pm (Torg 3160E)
- Friday: 2pm to 3pm (Torg 3160E)
- Instructor Email: firstname.lastname@example.org
- Class hours: Tues, Thurs - 2:00pm to 3:15pm
- Where: New Classroom Building 170
Social computing is a research area that is at the intersection of computational systems and social behavior. This project based course is geared toward developing a broad understanding of today’s online social systems. Team-based projects will focus on studying real-world challenges and opportunities in current social media platforms by analyzing the vast amounts of data people leave behind in these platforms, applying quantitative methodologies to investigate and model this data, and building social tools that can augment current social computing systems. Aligned with best industry practices, students will be expected to work in a fast-paced, collaborative environment and to demonstrate independence and leadership. In addition, students are expected to gain experience in reading technical papers, and giving good public presentations.
The first few weeks of this course will comprise multiple readings and in-class discussions. During this time you will have the opportunity to read technical papers, write your reflections where you will not just summarize the paper but think about what additional questions the paper enables. This is your chance to come up with a cool project idea based on what you just read. I will also provide you with a list of high level topics and suggestions. You will blog about your ideas, which will ultimately lead to team pitches and your project proposal. You will be assigned one homework which will get you warmed up for the main project by analyzing real-world social data. We will also have mid-term check points for your final projects and multiple practicum sessions during the course of the semester. For specifics, please refer to the Assignment Details section. Note, the course readings and projects may lean toward sensitive topics and domains, which can often be approached from a controversial perspective. Examples include, disclosure, regulation, politics, and anonymity on social media. So be prepared to have candid discussions in class.
After successful completion of this course, you will be able to:
- Identify important features of social computing.
- Assess the research issues in this field.
- Analyze data left behind in social media to answer questions from a variety of practical scenarios and domains, spanning politics, news, or health.
- Build social tools that augment current social computing systems
CS 3724 and CS 3654 or equivalent, or permission of the instructor. In terms of the required skills, students need to have basic knowledge of statistics and preliminary machine learning. An overview of the concepts and tools needed will be reviewed in class, however in-depth coverage of the fundamentals is not in the scope of this course. Students also need to be proficient in programming. Experience in use of a scientific computing software like R is a bonus, but not required. Students should be prepared to apply what they have learned in prior courses (like algorithms, computational thinking, etc.) to this emerging new field. You are expected to quickly learn many new things. For example, your project may require you to fetch Twitter data using the Twitter API or analyze posts from Reddit using pre-existing libraries (like python nltk), which should not be too challenging if you already know high-level languages like Python. Please make sure you are comfortable with this.
No textbook is required for the course. Readings will be provided as linked pdfs or as electronic reserve from the Virginia Tech Libraries website, which means either being on campus or connecting to the VT network through a VPN.
The following sites will be used to support this class:
- This website, for the syllabus, schedule, and assignment details.
- Class blog, for reading reflections. Please make sure to sign-up to vt wordpress.
- Canvas, for grades and submitting work.
- Piazza, for out-of-class discussion. Please make sure that you can access the class Piazza website.
- Class participation – 10%
- Reading responses – 10%
- Warm-up homework – 10%
- Term project – 70%
- Practicum spotlight – 10%
- Project pitch presentation - 5%
- Project proposal - 5%
- Midterm project presentation - 5%
- Midterm Report - 10%
- Final project presentation - 10%
- Final report - 25%
Your work will be graded on a list of criteria (specified on the assignment) such as quality of writing, completeness, insight into design issues, insight into social issues, etc. For each criterion, you will receive either a check plus, check, or check minus. Most criterion will receive a check. A plus means “you impressed me.” A minus means the assignment is incomplete, incorrect, or sloppy in some fashion with respect to that criterion. Pluses and minues are combined to give your grade for the assignment. For most assignments, you start out half way between a B+ and A-. One plus makes it an A-; one minus makes it a B+. These are general guidelines to let you know what to expect. Grading on specific assignments may differ.
The final project serves as the final exam for this course. There is no separate exam.
Class participation (10%) - Individual
Attendance in class, participating in class discussions and in-class exercises and activities are important and essential for success in this course. We will also do quick quizzes spread across the semester. These quizzes will not be graded for correctness. I will use them to gauge what topics we need to devote more time and as an indicator that you were in class.
Reading responses (10%) - Individual
These are intended to facilitate and assess understanding of the reading materials. Reading reflections should be within one page (roughly within 600 words if you are using 12pt font). You won’t be penalized if you write more, but being succinct is another great writing skill which you should aim to cultivate in this course.
You do not need to summarize the full paper, but you need to reflect on what additional questions the work enables. Does this help you think about your next big project? What will that be? What other questions the paper makes you think? What else the paper is not answering or is concerning or is just intriguing?
Again this is an individual assignment and work submitted should be written solely by you. Most importantly, a reader while glancing at your reflection should be able to easily spot these questions. So use bold, italicize, bullet points or other means of highlighting them. Here is a great example of a reflection written by my colleague, Prof. Kurt Luther. You can skip one reflection or alternatively attempt all and the lowest scored reflection will be dropped.
Warm-up Homework (10%) - Individual
You will have one individual homework assignment. The goal of the assignment is to warm you up before you dive into your group projects. It will test you on your technical and writing skills. For this assignment, you may talk to any other class member or discuss the problems in a general way. However, your actual detailed solution must be yours alone and you are expected to complete the warm-up homework independently. If you do talk to other students, you must write on your assignment who it is that you discussed the problems with. Your submitted work must be written solely by you and not contain work directly copied from others.
Practicum spotlight (10%) - Group
We are going to engage in a series of in-class student driven practicum presentations called spotlights. A spotlight is an opportunity to share a compelling aspect of the social computing capstone project that you are currently working on.
Your practicum must include a technical component which can provide “key insights” into either a data or design aspect of social computing. For example, it can be a feature or library that you are currently using for your project or a brief exploration of a dataset that you found or walkthrough of how you fetched data from a social site. It could also be a design component that you have just built. For example, a browser extension that integrates with Twitter to highlight posts coming from news websites.
During class you will have 10 to 15 minutes to introduce us to your practicum topic. Your goal is that by the end of class, any of us should be able to take your supporting materials and get up to speed rapidly. The overall aim of the practicum spotlight is to allow rapid knowledge and material sharing among students, which can help toward building key components of the final group projects. Topic sign-off: We will hold our sign-up session in the first couple of weeks of the class, after which you will have an assigned spotlight date. You should email me your spotlight topic at least one week before your assigned date for me to sign-off. If you haven’t already done so, please click here to see additional details about the Spotlights.
Term Project (60%) - Group
The goal of the final project is to identify an interesting question or problem in the social computing domain that you can address by analyzing social data and/or building social tools to augment current social systems. The papers and practicums discussed in class should help you along the way. Although project topics must be approved, you are free to pick a topic of interest in the general field of social computing. You need to justify that the topic is interesting, relevant to the course, of suitable difficulty.
A list of high-level suggested topics for projects will be made available. While you are free to implement the project in the programming language of your choice, I will highly recommend using python for analysis-style projects. We will also use R for statistical analysis. You will use Jupyter notebooks to present your data analysis and for any in-class project discussions, like the practicums. For design-style projects, you are free to use tools of your choice. Your project should have some some non-trivial analysis/algorithms/computation (e.g., computing basic statistics, like average, min/max will not be enough). You can also have an interactive user interface that interact with the algorithms (can be visual, browser–based, desktop–based etc.).
Once you have selected a topic, you should do some background reading so that you are capable of describing, in some detail, what you expect to accomplish. For example, if you decide that you want to implement some new proposal for promoting balanced news reading in social media, you will have to carefully read papers that addresses this problem, pinpoint their weaknesses, or come up with new suggestions based on what you read and explain how your approach will address these weaknesses or is a good alternative. Once you have read up on your topic, you will be ready to write your proposal. Your proposal should be fewer than 1000 words, excluding titles, section names, reference list, etc., but including the literature survey. It should use 12pt font, typed in PDF format (can be created using any software, e.g., LaTeX, Word), and with figures, tables, etc. whenever useful. If you haven’t already done so, please click here to see additional details about the Term Project.
Attendance and Participation
Participation accounts for 10% of your grade. Thus, if you are skipping classes, ignoring the readings, and/or failing to participate in class discussions, your participation grade will suffer.
Attending class is necessary to also successfully complete the course. We’ll often have in-class exercises and activities, and it’s expected that you will participate.
Readings will be assigned periodically, and these should be read before the next class, so that you can contribute to the discussion. Simply attending lectures will not be sufficient to fully understand the material.
You may miss one class for any reason; no excuse is necessary. Please notify me before class via email that you will be absent. (Any presentation requirements, assignment deadlines, etc. remain in effect for you.) For any additional absences, you must notify me before class, provide an explanation, and receive permission, or you will lose participation points.
- Reading Responses: No late days. All reading responses are due at 10am on the day of class. Responses to readings serve to stir class discussions, hence there is no point if you submit it at a later time after class. However, you are allowed to skip one reading reflection. Alternatively, if you do all reading reflections, the one where you scored the least will be skipped while grading.
- Warm-up Homework: Late days allowed, however, late assignments will be penalized at a rate of one grade step (e.g., A becomes A-) per day. Submissions more than five days late will not be accepted.
- Practicum spotlight: No late days. All materials due at noon on the day of spotlight presentation.
- Midterm project presentation: No late days.
- Midterm project report: Late days allowed, however, late assignments will be penalized at a rate of one grade step (e.g., A becomes A-) per day. Submissions more than five days late will not be accepted.
- Final project presentation: No late days.
- Final project report: No late days. Due at 11:59pm on December 14th.
The Virginia Tech Undergraduate Honor System is in effect for all work, whether performed individually or in teams. Be particularly careful to avoid plagiarism, which essentially means using materials (ideas, code, designs, text, etc.) that you did not create without giving appropriate credit to the creator (using quotation marks, citations, comments in the code, link to URL, etc.). Students are encouraged to consult with one another about project design and evaluation issues, as the sharing of ideas here will lead to better work. The final exam is entirely individual. Any suspected violations of the honor code will be promptly reported to the honor system, as required by university policy.
If you are a student with special needs or circumstances, if you have emergency medical information to share with me, or if you need special arrangements in case the building must be evacuated, please let me know privately as soon as possible.
Related Classes (Lots of materials adapted from them)
- Social Computing by Eric Gilbert at Georgia Tech (now moved to UMich)
- Social Computing by Munmun De Choudhury at Georgia Tech
- Designing Sociable Media taught by Judith Donath at The MIT Media Lab
- Social Computing by Karrie Karahalios at UIUC
- Computer Supported Cooperative Work by Bob Kraut at CMU
- Data Science and Analytics by James Caverlee at Texas A&M.