layout | title | nav_exclude | permalink | seo | ||||
---|---|---|---|---|---|---|---|---|
home |
CS 506 |
true |
index.html |
|
{: .no_toc .text-delta }
- TOC {:toc}
- Join Piazza
- Create a GitHub account
- Create a Kaggle account
- Fill out this form with your GitHub and Kaggle account username
- Install Python and Jupyter Notebook
- Sign up for GradeScope (code: 2KP6YP)
The goal of this course is to provide students a hands-on understanding of classical data analysis techniques and to develop proficiency in applying these techniques in modern programming languages (Python) while also learning about the social and ethical challenges of collecting and mining data by studying real world examples.
The course introduces students to a wide range of techniques that are commonly used in the analysis of data, such as clustering, classification, regression, and network analysis. Broadly speaking, the course breaks down into three main components, which we will take in order of increasing complication: (a) unsupervised methods; (b) supervised methods; and (c) methods for structured data.
Lectures will present the fundamentals of each technique and aim to help students understand the practical settings in which these theoretical/analytical methods are useful. In class, we will also study use cases and go over relevant Python packages that will enable students to perform hands-on experiments with their data. Class discussion will, for the most part, be extended office hours, review, or extra coding exercises. However, this is not a Python course, so self-study will be necessary for those students who do not already know the language.
Students taking this class must have some prior familiarity with programming at the level of CS 105, 108, or 111, or equivalent. CS 132 or equivalent (MA 242, MA 442) is required. CS 112 is also helpful.
The homework assignments will be due throughout the semester as relevant material is covered. There will be 7 assignments in total. Clarifying questions (in class or on Piazza) are encouraged or make reasonable assumptions and justify your decisions.
Late homeworks will not be accepted. The lowest homework grade will be dropped at the end of the semester.
You may discuss questions but you must submit individual code. You must list your collaborators in the homework.
The midterm will be a Kaggle Data Science competition among the students in the class with a live leaderboard. Students will need to submit predictions based on a training dataset and a report detailing the methods used and decisions made. 80% of the grade will be based on the report and 20% will be based on the competition score related to the quality of the predictions made.
BU Spark! offers students an opportunity to work on technical projects provided by companies or organizations in the Greater Boston area through our experiential learning lab (X-Lab). For this semester, Spark! has partnered with CS506 to offer a diverse selection of external data science projects scoped to support the course’s learning outcomes and enhance the student experience. To learn more about Spark!, please visit their website: https://www.bu.edu/spark/
Spark! projects are a great opportunity for students to get real-world project experience to highlight on their github and CV. These projects have already been curated and will be presented during “Pitch Day”. Project descriptions will be made available at the start of the semester. BU Spark! projects will be led by one of the Spark! Project managers.
Teams will have 3-5 students. These will be assigned based on a project preference form that you will be asked to submit after Pitch Day.
For complete details on BU Spark! projects please read the following guide.
Grading |
---|
20% midterm |
40% assignments |
40% final project |
5% extra credit |
Letter | Grade |
---|---|
A | 95% + |
A- | 90% - 95% |
B+ | 87% - 90% |
B | 83% - 87% |
B- | 80% - 83% |
C+ | 77% - 80% |
C | 73% - 70% |
C- | 70% - 73% |
D | 60% - 70% |
F | below 60% |
Extra credit can be earned by consistently:
- Attending class.
- Submitting completed worksheets.
- Asking and answering questions on Piazza.
- Submitting PRs to our class repository with code or class notes.
- Contributing to our class repository or course website (by fixing typos, providing clarification edits etc.)
If you notice an issue with a grade you’ve received, you must email your TA within 48h of receiving this grade. Anything beyond 48h will not be accepted for a re-grade.