Course Overview

Course Description

Content

This course brings together students from different disciplines who use or want to use computer programming in their work. For students without programming experience, a significant part of the course will be devoted to learning computer programming in Python. Students who already know how to program will also gain experience using libraries for data science such as Scrapy, Selenium, NumPy, SciPy, and Matplotlib to collect, visualize and analyze data. Other topics will be covered based on student interest, and new programmers will be paired with experienced programmers to solve research problems.

Prerequisites
Students are expected to have familiarity with mathematical topics such as algebra, trigonometry, statistics, and vector/matrix representations.

Motivation

I like to collaborate with researchers from different disciplines to solve interesting problems. Collaborating with others motivated me to learn a lot more technical topics and become more computationally diverse. My goal for the students in this class is to find an exciting research problem and use it to motivate your inquiry into computer programming and computational methods to help solve that problem. Think about what you spend the most time doing: Do you spend a lot of time getting data from web pages? Do you have to convert between esoteric file formats? Do you find yourself making dozens of spreadsheets to wrangle your data into meaningful charts or tables? Generally, do you have more data than you know what to do with? In this class, you will write custom computer programs that automate tasks like these.

For the computer science majors in this class, I want you to apply your skills to help collaborators make progress on research projects. Because of your experience you are in a better position to learn advanced topics relevant to the research. You will go deeper to apply concepts in visualization and machine learning. These concepts are central to the current hot topics of "big data" and "data science" that apply computer science and statistics to other domains. If you want to use computer science to solve problems in other disciplines, this is the course for you!

Structure

The first part of the semester will be devoted to learning to write computer programs in Python. After building the foundation, specific Python packages for data science will be introduced. In consultation with the instructor additional topics can be proposed. Students with common interests may work together on the project, but every individual is responsible for demonstrating their learning on their own.

Objectives

  1. learn how to read and write computer programs using Python;
  2. learn fundamental data science libraries such as numpy, pandas, matplotlib and scikit-learn;
  3. demonstrate what you've learned by writing code;
  4. work on a problem outside your discipline; and
  5. build something cool.

Instructor Information

Biography

Dr. Parry grew up in Indiana, went to college at the University of Virginia, and graduate school at Georgia Tech. His research interests include signal processing, machine learning, and visualization, especially applied to music, sports, and education. He prefers teaching and learning when it can be motivated by challenging and interesting problems.

Course Requirements

Materials

Required

Supplemental Materials

Assignments

All assignments are to be completed individually unless expressly stated otherwise.

Students will be divided into four groups:

Intro Python Students will spend about 11 weeks learning the fundamentals of Python programming, culminating with a project.

Accelerated Python Students will spend about 7 weeks learning the fundamentals of Python programming, followed by 6 weeks of data science packages, culminating with a project.

Advanced Python Students will spend about one week ramping-up Python skills, 9 weeks of data science packages, culminating with a project.

Data Science Students will complete a semester-long project with individualized topics specifice to their project.

Intro to Python Programming Assignments

Students complete homework assignments, graded by in-class quizzes (2 points each), and programming assignments (4 points each).

Data Science programs

Programs demonstrating skill in web scraping and data science libraries (6 points each).

Project

Students will complete a semester project applying computer programming to a problem selected in consultation with the instructor (12-30 points).

Professionalism

Professionalism can be demonstrated by reading the textbook, asking/answering good questions, and participating in in-class activities class. Unexcused absences will deduct 1% from your final grade.

Grading & Policies

Course Policies

University Policies

ASU has official policies that are considered part of this syllabus, including the Academic Integrity Code, accommodations for students with disabilities, Attendance Policy, and the Statement on Student Engagement with Courses:
Syllabi Policy and Statement Information

Additional Syllabus Statements

In addition, this syllabus incorporates the following statements on Food Insecurity, Title IX Reporting Obligations, and Public Sharing of Course Materials:
Optional Syllabi Policy and Statement Information

COVID

This course will observe the latest University policies on COVID:
App State Coronavirus Information

Grading

Calendar

The official sequence of class activities is maintained on ASULearn.