CSCI 127: The Joy & Beauty of Data
Catalog description: Provides a gentle introduction to the exciting world of big data and data science. Students expand their ability to solve problems with Python by learning to deploy lists, files, dictionaries and object-oriented programming. Data science libraries are introduced that enable data to be manipulated and displayed.
Meeting times and locations
The course runs 6/10 through 7/5.
Lectures: Monday-Thursday, 8-10:35am in Barnard 126. These will be a mix of lectures and individual/group problem solving.
Labs: Monday-Thursday, 2-5pm in Barnard 254. On most days, you will have a lab assignment to complete individually or with a partner. You may also use this time to work on individual programming homework assignments.
Course resources
Textbook
We will use a free, online textbook for this course. It can be found here.
Additional problems
You can find some additional Python problems to work on here.
SmartyCats
There is a tutor available for this course. You can book appointments with him for $2 an hour (groups can also use this rate) by going to the website here and clicking “book a tutor.”
Exam review sessions
There will be exam review sessios with the SmartyCats tutor before the second and third Practicums, on 6/26 and 7/3.
Visualizing your code
You can paste your Python code into the tool here and see what executes with every step.
Checking your work
You can compare the output of your program with a sample output using a tool like https://www.diffchecker.com/. Just copy the sample output on one side and your program’s output on the other. After you press the Find Differences button, you will see any differences between the text on the left and the text on the right. You should aim to get your program’s output to be identical to the sample output.
Installing Python
If you would like to work on programming assignments or labs on your own personal computer, you will need to install Python and install a few packages. You can do this before the course starts, or come to class and I will help you. I am making videos to help with installation for both Mac and Windows. You can find them here.
Mac
Download the appropriate file at the bottom of this page (macOS 64-bit installer for OS X 10.9 and later, or macOS 64-bit/32-bit installer for Mac OS X 10.6 and later) and install. Then, to install packages, open a terminal window and run each of the following:
pip3 install --user numpy
pip3 install --user matplotlib
pip3 install --user pandas
pip3 install --user scikit-learn
Windows
Download the Windows x86-64 executable installer file at the bottom of this page and install. When installing, be sure to check the box to add Python to the PATH. Then, to install packages, open a terminal window and run each of the following:
python -m pip install numpy
python -m pip install matplotlib
python -m pip install pandas
python -m pip install scikit-learn
Course outcomes
By the end of this course, students should be be able to:
- Utilize lists, files, dictionaries and arrays to solve problems in Python.
- Utilize fundamental object oriented principles such as classes, objects, methods and inheritance to solve problems in Python.
- Utilize data science libraries to solve data science problems in Python.
- Understand the broad area of data science and its relevance.
Grading
- Practicum 1: 15%
- Practicum 2: 15%
- Practicum 3: 25%
- Labs: 15% (all weighted equally)
- Programming homework assignments: 30% (all weighted equally)
After any curving, your grade will be determined by your total score as follows: 93+: A; 90+: A-; 87+: B+; 83+: B; 80+: B-; 77+: C+; 73+: C; 70+: C-; 67+: D+; 63: D; 60: D-.
Collaboration policy
On both labs and programming homework assignments, you may:
- Share ideas with other individuals or groups.
- Help other individuals or groups troubleshoot problems
You may not:
- Share code you or your partner has written with other individuals or groups.
- Submit code that you or your partner did not write.
- Modify another group’s or individual’s solution and claim it as your own. Failure to abide by these rules will result in an F for the course and being reported to the Dean of Students.
Diversity statement
Montana State University’s campuses are committed to providing an environment that emphasizes the dignity and worth of every member of its community and that is free from harassment and discrimination based upon race, color, religion, national origin, creed, service in the uniformed services (as defined in state and federal law), veteran’s status, sex, age, political ideas, marital or family status, pregnancy, physical or mental disability, genetic information, gender identity, gender expression, or sexual orientation. Such an environment is necessary to a healthy learning, working, and living atmosphere because discrimination and harassment undermine human dignity and the positive connection among all people at our University. Acts of discrimination, harassment, sexual misconduct, dating violence, domestic violence, stalking, and retaliation will be addressed consistent with this policy.
Accommodations
If you have a documented disability for which you are or may be requesting an accommodation(s), please contact me and the Office of Disability Services as soon as possible.
How to succeed in this class
What you can do:
- Be physically and mentally present in all lecture periods and lab periods.
- Be an active participant in class. This means asking and answering questions during lecture, asking for help when needed during labs, and contacting me via email if questions arise outside of classtime.
- Be respectful of both your classmates and me.
- Do your own work.
What I can do:
- Grade and return labs before the following day’s lab period.
- Grade and return programming assignments before Monday morning the following week.
- Be available during all lab periods.
- Respond to all emails within one business day.
- Create a course atmosphere conducive to learning by respecting all of my students, coming to class prepared each day, and being enthusiastic about course material and my role in helping you learn.
Course schedule
Date | Lecture Outline | Lecture Video | Due |
---|---|---|---|
Monday 6/10 | Lecture 1 | Lecture 1 Video | Lab 1 |
Tuesday 6/11 | Lecture 2 | Lecture 2 Video | Lab 2 |
Wednesday 6/12 | Lecture 3 | Lecture 3 Video | Program 1 |
Thursday 6/13 | Lecture 4 | Lecture 4 Video | Lab 3 |
Friday 6/14 | |||
weekend! | |||
Monday 6/17 | Lecture 5 | Lecture 5 Video | Lab 4, Program 2 |
Tuesday 6/18 | Practicum 1 Review | Video | |
Wednesday 6/19 | Lecture 6 | Lecture 6 Video | Lab 5 |
Thursday 6/20 | Lecture 7 | Lecture 7 Video | Lab 6 |
Friday 6/21 | Program 3 | ||
weekend! | |||
Monday 6/24 | Lecture 8 | Lecture 8 Video | Lab 7 |
Tuesday 6/25 | Lecture 9 | Lecture 9 Video | Lab 8 |
Wednesday 6/26 | Lecture 10 | Lecture 10 Video (forgot to start until midway through) | Lab 9 |
Thursday 6/27 | Practicum 2 Review | Video | Program 4 |
Friday 6/28 | |||
weekend! | |||
Monday 7/1 | Lecture 11 | Lecture 11 Video | Lab 10, Program 5 |
Tuesday 7/2 | Lecture 12 | Lecture 12 Video | Lab 11 |
Wednesday 7/3 | Lecture 13 | Lecture 13 Video | |
Thursday 7/4 | |||
Friday 7/5 | Practicum 3 Review | Program 6 |