2016-2017 Materials

Incoming 2017 Juniors: these labs are very similar to what you will do in the fall, but not identical. They may be helpful for getting an early start, but take careful note that these labs are written for Python 2.7, but your labs will be written for Python 3.6. You might want to read  this blog for an overview of the differences between 2.7 and 3.6.

The first 3 labs for each volume (updated for Python 3.6) will be sent to you by the end of June so that you can get a real head start.

 

VOLUME 1

Data files: http://acme.byu.edu/data/Introduction/.

Lab 1 – Intro to Python (name your file “python_intro.py”)
Lab 2 – Intro to Numpy (numpy_intro.py, NumPy Visual Guide)
Lab 3 – Intro to Matplotlib (plotting_intro.py)

Data files: http://acme.byu.edu/data/Vol1A/.

Lab 4 – Linear Transformations (linear_transformations.py)
Lab 5 – Linear Systems (linear_systems.py)
Lab 6 – Iterative Solvers (iterative_solvers.py)
Lab 7 – QR 1: Decomposition (qr_decomposition.py)
Lab 8 – QR 2: Least Squares and Computing Eigenvalues (qr_lstsq_eigs.py)
Lab 9 – Image Segmentation (image_segmentation.py)
Lab 10 – SVD and Image Compression (svd_image_compression.py)

Intro to Jupyter Notebook – JupyterIntro.ipynb

Lab 11 – Facial Recognition* (FacialRecognition.ipynb)
Lab 12 – Data Visualization*

Data files: http://acme.byu.edu/data/Vol1B/.

Lab 13 – Testing (specs.py, test_specs.py)
Lab 14 – Numerical Differentiation (numerical_differentiation.py)
Lab 15 – Symbolic and Automatic Differentiation (sympy_autograd.py)
Lab 16 – Newton’s Method (newtons_method.py)
Lab 17 – Conditioning and Stability (conditioning.py)
Lab 18 – Monte Carlo 1: Integration (montecarlo_integration.py)
Lab 19 – Monte Carlo 2: Importance Sampling (montecarlo_sampling.py)
Lab 20 – Complex Numbers* (complex_numbers.ipynb)
Lab 21 – Profiling (profiling.py)
Lab 22 – PageRank (pagerank.py)
Lab 23 – Intro to Shell (Shell1.zip)
Lab 24 – The Drazin Inverse (drazin.pysocial_network.csv)

 

VOLUME 2

Lab 1 – The Standard Library (standard_library.py, box.py)
Lab 2 – Object Oriented Programming (oop.py)
Lab 3 – Exceptions and File I/O (exceptions_fileIO.py)

Data files: http://acme.byu.edu/data/Vol2A/.

Lab 4 – Data Structures 1: Linked Lists (linked_lists.py)
Lab 5 – Data Structures 2: Trees (trees.py)
Lab 6 – Data Structures 3: K-d Trees (kdtrees.py)
Lab 7 – Breadth-First Search (bfs_kbacon.py)
Lab 8 – Markov Chains (markov_chains.pytswift1989.txt)

Intro to Jupyter Notebook – JupyterIntro.ipynb

Lab 9 – Fourier 1: The DFT*
Lab 10 – Fourier 2: Filtering and Convolution*
Lab 11 – Wavelets* (WaveletImages.zip)
Lab 12 – Gaussian Quadrature (gaussian_quadrature.py)

Data files: http://acme.byu.edu/data/Vol2B/.

Lab 13 – CVXOPT (cvxopt_intro.py)
Lab 14 – Simplex (simplex.py) (2 Weeks)
Lab 15 – Optimization with SciPy (scipy_optimize_intro.pyblackbox_function.py)
Lab 16 – 1-D Optimization (one_dimensional_optimization.py)
Lab 17 – n-D Optimization 1: Newton and Quasi-Newton Methods (quasi_newton.py)
Lab 18 – n-D Optimization 2: Gradient Descent Methods (gradient_methods.py)
Lab 19 – SQL 1
             (sql1.pystudent_grades.csvmajor_info.csvcourse_info.csvstudent_info.csv)
Lab 20 – SQL 2  
(sql2.pyclasses.csvfields.csvgrades.csvstudents.csv)
Lab 21 – Interior Point 1 (interior_point1.py)
Lab 22 – Interior Point 2 (interior_point2.py)
Lab 23 – Dynamic Optimization (dynamic_opt.py)

 

Incoming 2017 Seniors: If you want to get a head start over the summer, take a look at Shell 2, Regular Expressions, Pandas 1-4, Web Tech 1-2, and Web Scraping 1-2. We will be doing highly revised versions of these labs in the fall, but you can start learning the packages now.

 

VOLUME 3

Data files: http://acme.byu.edu/data/Vol3A/.

Lab 1 – Unix Shell 1
Lab 2 – Unix Shell 2, pyshell_spec.txt
Lab 3 – Regular Expressions (regex_spec.pycontacts.txttransactions.txt)
Lab 4 – SQL 1
             (sql1.pystudent_grades.csvmajor_info.csvcourse_info.csvstudent_info.csv)
Lab 5 – SQL 2 
(sql2.pyclasses.csvfields.csvgrades.csvstudents.csv)
Lab 6 – Pandas 1: Introduction to Pandas 
(crime_data.txtPandas1.ipynb)
Lab 7 – Pandas 2: Plotting with Pandas
Lab 8 – Pandas 3: Groupby and Pivot Tables 
(titanic.csv)
Lab 9 – Pandas 4: Time Series
             (DJIA.csvfinances.csvpaychecks.csvwebsite_traffic.csv)
Lab 10 – Bokeh

Data files: http://acme.byu.edu/data/Vol3B/.

Lab 11 – Web Technologies 1: Internet Protocols (nameserver.py)
Lab 12 – Web Technologies 2: Serialization (random_newyork_locations.csvwater_bokeh.py, webtech2.pybooks.xml )
Lab 13 – Web Scraping 1 (web_scraping1.pyexample.htmSanDiego.htmBig Data dates.htm)
Lab 14Web Scraping 2 (federalreserve.htmweb_scraping2.py)
Lab 15 – Unit Testing (specs.py, test_specs.py)
Lab 16 – MongoDB (restaurants.json, mylans_bistro.jsonmongo.pynew_restaurants.json)
Lab 17 – IPyParallel (parallel.py)
Lab 18 – MPI (mpiSpecs.tar.gz)

 

VOLUME 4

Lab 1 – Numerical Methods for IVPs
Lab 2 – Weight Change and Predator-Prey Models
Lab 3 – The Shooting Method for BVPs
Lab 4 – Modelling the Spread of an epidemic: SIR models
Lab 5 – Lorenz Equation
Lab 6 – Hysteresis
Lab 7 – Finite Difference Method
Lab 8 – Heat Flow
Lab 9 – Anisotropic Diffusion
Lab 10 –  Wave Phenomena
Lab 11 – Poisson Equation
Lab 12 – Finite Volume Methods

Lab 13 – 1-D Finite Element
Lab 14 – 2-D Finite Element Method
Lab 15 – Pseudospectral Methods 1
Lab 16 – Pseudospectral Methods 2
Lab 17 – Solitons
Lab 18 – River Crossing
Lab 19 – Inverse Problems
Lab 20 – Total Variation and Image Processing
Lab 21 – Inverted Pendulum
Lab 22 – Optimal Spacecraft Reentry
Lab 23 – HIV Treatment