Course Materials will be posted on Canvas interface.
Class Period: 7 ( 1:55-2:45 pm) M-W-F
Civil and Coastal Engineering Catalog Link
Course Description
This course is designed to provide students with the ability to manipulate and analyze large data sets produced by multiple sensor measurements, online databases, and other sources using Python. It will be assumed that the students know basic Python programming. The course will begin with a very quick review of Python and installation of the Anaconda program which includes the Jupyter Notebooks and Spyder programming environments. Advanced techniques using Numpy will be discussed. Following that, the Pandas library in Python will be covered in detail. Pandas is a very popular Python Data Analysis library. Techniques for Data Visualization will also be described. The course ends with a discussion of analyzing data using Machine Learning.
Course Pre-Requisites / Co-Requisites
The course requires CGN 3421 Computer Methods in Civil Engineering taught using Python. Alternatively, the student must have proficiency in Python programming including the standard data types and objects, the programming structures (conditionals, loops, etc.), and the numpy and matplotlib packages.
Course Objectives
The objectives are for students to gain proficiency in the following:
• Advanced data manipulation techniques using numpy.
• Advanced data manipulation techniques using pandas.
• Handling missing data in small or large data sets.
• Combining all or subsets of small or large data sets according to specified variables.
• Time-series analysis
• Data structures and methods for fast processing of large data sets
• Visualizing multi-dimensional data
• Scikit-Learn python package for machine learning.
• Machine learning algorithms including at least the following:
• Bayes classifiers,
• Linear regression,
• Decision trees and random forests,
• K-means clustering
• Principal Component Analysis (PCA)
• Multi-dimensional Scaling (MDS)
The course will require many programming assignments. You will often be assigned to work in teams of two or more students. There will be two tests that will focus primarily on your knowledge of the methods required to complete the programming assignments. The assignments and tests will contribute the following percentages to the final grade:
Test 1 | 25% |
Test 2 | 25% |
Homework | 50% |
The final grades will be based on a curve.