Information Science 380
Data Science Programming
Overview/Syllabus, Spring 2013

Back to the IST380 home page

General Information


Instructor:   Zach Dodds
Office:  Beckman B111 on Harvey Mudd's campus
Directions:  Enter the Olin building at 1250 N Dartmouth Ave. Go down the steps in the center of the foyer - you will see a sign for "Beckman Auditorium." Go left (north) until the hallway turns right (east) - make that right and continue down a gentle slope until the hallway branches to the right (south). Take that right and Beckman B111 will be on the right at the bottom of the hallway.
Phone:  x70867   (909-607-0867)
Official Office Hours  F 9-11am
Real Office Hours  Anytime -- just email me to set one up!

Is IST380 for you?


Absolutely! IST380 is intended as an introduction to R and its use to solve data-analysis and -prediction problems. It does not assume any knowledge of R, though it does presume that you are comfortable with basic programming concepts, e.g., from CGU's IS 313 course. This Spring 2013 offering is an experiment and an exploration - join us!

Date / Time / Place


IST 380 meeting on Monday evenings from 7pm to 9:50pm in the Academic Computing Building (ACB), room 219.



The primary text for the class will be Jeffrey Stanton's book

An Introduction to Data Science

This text is freely available from the link above.

We will complete Stanton's book before the end of the course; as a result, we will supplement that material with some additional machine-learning algorithms (already available in R). An excellent, comprehensive, and free reference for machine learning (using R) is The Elements of Statistical Learning by Stanford's Hastie, Tibshirani, and Friedman.



The software packages needed for IS 313 are all freely available from the web and work under Windows, Mac OS X, and Linux. I will be happy to help get things installed on your laptop during the class's lab time, but you should also feel free to explore these packages. There is considerable documentation available for each:



Your grade in the course will be based on a combination of your homework, your participation, and your final project deliverables. There will be a programming-based homework assignment due in many weeks of the course. For the final few weeks, you will have a larger project -- for that, there will be short preliminary and final presentations, as well as the delivered results. Those presentations, along with your presence and contributions in class, are the participation part of the grade.

% of points letter grade
95-100% A
90-94.9 A-
86-89.9 B+
83-85.9 B
80-82.9 B-
76-79.9 C+
73-75.9 C
70-72.9 C-
65-69.9 D+
60-64.9 D
< 60 F
Here are how the points are approximately divided:
Assignments 800 points (each is about 100 pts)
Final project 400 points

Homework Assignments


There will be weekly homework assignments, usually due at the following times:

     11:59pm Tuesday evenings of the following week

This timing ensures that you have a chance to ask questions in the following class, which is held on Monday evening, before the assignment is due.

Remember, you can always ask about things before you submit your actual product. Also, you can always submit again -- the new submission will supersede the old one, but the old one will still be there (you won't lose it).

Getting Help and Academic Honesty Policy


This course follows CGU's academic honesty policy.

As a summary of that policy's spirit, your assignments and project submission must be your own work. On some assignments and on the final project, you may work in a team of two. When you work on a team, the submitted material must be the team's own work and each of the team members must contribute equally to the final product.

Debugging help?    With programming courses, a common question is whether or not you can seek out help if you run into a particular problem or error with a program. The answer is yes: you should absolutely seek out help, as long as the work is your own. Syntax errors and memory lapses happen -- you're encouraged to seek help for those! This is the key criterion for whether programming work is your own: If you deleted all of the code in your project, would you be able to re-create it yourself? If the answer is no, then the work is not your own; if the answer is yes, then it is. Be sure the work you submit is your own.

More generally, it is important that you actively seek out help if you are having trouble! Ask questions in the lecture and/or the lab about things in the notes you don't understand. Come to me or consult with your assignment partner with more questions. Don't be afraid to return many times if something doesn't make sense. And an extra pair of eyes is always helpful when debugging.

If your schedule allows it, I would suggest that you work in a team of two or three people: often being able to talk through things with a partner makes the process smoother, more efficient, and more fun!

Too many times a student will bang his or her head against a wall for hours trying to figure out why a program isn't working, when a few minutes with the professor or another student is enough to make it clear! Don't spend more than 15-20 minutes on a problem (if no progress is being made)... instead, seek out help from a peer or drop me an email!