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


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.


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 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.


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


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.


  • 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.


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

DateLecture OutlineLecture VideoDue
Monday 6/10Lecture 1Lecture 1 VideoLab 1
Tuesday 6/11Lecture 2Lecture 2 VideoLab 2
Wednesday 6/12Lecture 3Lecture 3 VideoProgram 1
Thursday 6/13Lecture 4Lecture 4 VideoLab 3
Friday 6/14   
Monday 6/17Lecture 5Lecture 5 VideoLab 4, Program 2
Tuesday 6/18Practicum 1 ReviewVideo 
Wednesday 6/19Lecture 6Lecture 6 VideoLab 5
Thursday 6/20Lecture 7Lecture 7 VideoLab 6
Friday 6/21  Program 3
Monday 6/24Lecture 8Lecture 8 VideoLab 7
Tuesday 6/25Lecture 9Lecture 9 VideoLab 8
Wednesday 6/26Lecture 10Lecture 10 Video (forgot to start until midway through)Lab 9
Thursday 6/27Practicum 2 ReviewVideoProgram 4
Friday 6/28   
Monday 7/1Lecture 11Lecture 11 VideoLab 10, Program 5
Tuesday 7/2Lecture 12Lecture 12 VideoLab 11
Wednesday 7/3Lecture 13Lecture 13 Video 
Thursday 7/4   
Friday 7/5Practicum 3 Review Program 6