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
- learn how to read and write computer programs using Python;
- learn fundamental data science libraries such as numpy, pandas, matplotlib and scikit-learn;
- demonstrate what you've learned by writing code;
- work on a problem outside your discipline; and
- 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
-
Fundamentals of Python Programming
by Richard Halterman, 2018.
Fundamental of Python Programming GitHub Repository -
Hands-on Web Scraping with Python
by Anish Chapagain,
Packt Publishing, 2019.
Hands-on Web Scraping GitHub Repository -
Python Data Science Handbook
by Jake VanderPlas,
O'Reilly Media, 2016.
Python Data Science Handbook GitHub Repository - Can-do attitude!
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
- All grades will be posted to ASULearn.
- Your final grade will be determined by the following point system:
-
Category Points Intro Python Students Accelerated Python Students Advanced Python Students Python Homework 2 points each ×10 ×6 ×1 Python Programs 4 points each ×10 ×6 ×1 Exams 6 points each ×2 ×1 ×0 Data Science programs 6 points each ×0 ×6 ×9 Project 18 points 12 points 30 points Total 90 90 90
-
The maximum percentage required to earn each letter grade is shown
below:
GradeScore Required
A 93 A- 90 B+ 87 B 83 B- 80 C+ 77 C 73 C- 70 F < 70
Calendar
The official sequence of class activities is maintained on ASULearn.