{ "metadata": { "name": "", "signature": "sha256:b6e129f367624c0610d1fa8863139d9fee2c81fac538e18d7a2ec721ce4da998" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ " Course Schedule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Physics On the Computer**: Introduction to using computers for solving problems in physics: differential equations, matrix manipulations, simulations and numerical techniques, nonlinear dynamics.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Summary:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook outlines the full archive of materials used for PHYS 202 at Cal Poly San Luis Obispo in Spring Quarter 2014. Students were provided all materials through the Cal Poly Learning Management System \"PolyLearn\", a customized Moodle implementation.\n", "\n", "Materials created and curated by J.L. Klay, with help and suggestions from B. Granger and J. Frederic. \n", "\n", "References and attribution for borrowed elements are included at the top of each page. They should be mostly accurate and complete, but please [report any omissions](mailto:jklay@calpoly.edu) and they will be corrected.\n", "\n", "All content is under a modified MIT License, and can be freely used and adapted. See the full license text [here](../../LICENSE).\n", "\n", "---" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Course Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Syllabus](../Syllabus/Syllabus-2014.ipynb)\n", "* [Learning Objectives](../Syllabus/Syllabus-2014.ipynb#Course-Objectives)\n", "\n", "\n", "* [iPython/Git installation](../Installation/Installation.ipynb)\n", "* [Setting up ssh](../../Content/SSH/SSHTour.ipynb)\n", "\n", "\n", "* Why learn to program? Not just because I think it's important. You might want a good job after graduating. \n", " [Wall Street Journal Op-Ed to College Grads, May 2013](http://online.wsj.com/news/articles/SB10001424127887323744604578470900844821388)\n", "\n", "\n", "* [Pre-learner Survey](../Assessment/Survey/PrelearnerSurvey2014.ipynb)\n", "* [Evaluations](../Assessment/Evaluations/Evaluations.ipynb)\n", "\n", "\n", "* [Grading Logistics](../Assessment/GradingLogistics.ipynb)\n", "* [Miscellaneous Course Notes](../Notes/CourseNotes.ipynb)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Schedule:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 1: Programming Bootcamp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1, LO2, LO3, LO4" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [CodeCademy](http://www.codecademy.com/)\n", "* [The UNIX Shell](../../Content/UNIXShell/UNIXShellTour.ipynb)\n", "* [Version Control with Git](../../Content/VersionControl/VersionControlTour.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 1 - Multiples of 3 and 5](https://projecteuler.net/problem=1)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day By Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 1](DayByDay/Day01.ipynb)\n", "* [Day 2](DayByDay/Day02.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Finish first seven modules of the Codecademy Python track by start of class on Thursday, April 3.\n", "* Finish next eight modules of the Codecademy Python track by start of class on Tuesday, April 8.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 2: Programming Bootcamp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [CodeCademy](http://www.codecademy.com/)\n", "* [Introduction to iPython/notebook](../../Content/iPythonIntro/iPythonTour.ipynb)\n", "* [ssh/dirac cluster](../../Content/SSH/SSHTour.ipynb)\n", "* [iPythonBlocks](../../Content/FunWithBlocks/FunWithBlocksTour.ipynb)\n", " * [Fun With Blocks Exercises](../../Content/FunWithBlocks/FunWithBlocksExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 6 - Sum square difference](https://projecteuler.net/problem=6)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 3](DayByDay/Day03.ipynb)\n", "* [Day 4](DayByDay/Day04.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Installfest! (Friday, 10am-2pm, Monday, 1pm-4pm, 180-620)** \n", "Drop in to my office with your laptop and I will help you get iPython and git installed and running." ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* The Codecademy Python track should be fully complete by start of class on Tuesday, April 15.\n", "* Battleship with ipythonblocks due on Wednesday, April 16, 11:59pm.\n", " \n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 3: Intro to NumPy/SciPy, Data I/O" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO9, LO11\n" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Introduction to numpy/scipy](../../Content/NumPy/NumPyTour.ipynb)\n", " * [NumPy Exercises](../../Content/NumPy/NumPyExercises.ipynb)\n", "* [Reading/writing data from/to files](../../Content/DataIO/DataIOTour.ipynb)\n", " * [Data I/O Exercises](../../Content/DataIO/DataIOExercises.ipynb)\n", "* [Counting Stars](../../Content/CountingStars/CountingStarsTour.ipynb)\n", " * [Counting Stars Exercises](../../Content/CountingStars/CountingStarsExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 2 - Even Fibonacci numbers](https://projecteuler.net/problem=2)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 5](DayByDay/Day05.ipynb)\n", "* [Day 6](DayByDay/Day06.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due Dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler Problem 2 is due by 11:59pm on Sunday, April 20. \n", "* NumPy Exercises, Data I/O Exercises, Counting Stars Exercises are due by 11:59pm on Wednesday, April 23. extended to 11:59pm on Friday, April 25.\n", " \n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 4: Graphics/Widgets/Animation, Error handling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Matplotlib graphics - publication-quality formatting, 3D](../../Content/Graphics/GraphicsTour.ipynb)\n", " * [Graphics Exercises](../../Content/Graphics/GraphicsExercises.ipynb)\n", " \n", " \n", "* [Widgets and interactive data analysis](../../Content/Widgets/WidgetsTour.ipynb)\n", "\n", "\n", "* [Error handling](../../Content/ErrorHandling/ErrorHandlingTour.ipynb) \n", " * [Error handling Exercises](../../Content/ErrorHandling/ErrorHandlingExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 16 - Power digit sum](https://projecteuler.net/problem=16)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 7](DayByDay/Day07.ipynb)\n", "* [Day 8](DayByDay/Day08.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due Dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler Problem 16 is due by 11:59pm on Sunday, April 27. \n", "* Graphics and Error Handling Exercises are due by 11:59pm on Wednesday, April 30.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 5: Midterm, Projects, Program Design" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO9" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Midterm exam on programming basics](../Assessment/Midterm/Midterm.ipynb) (Tuesday)\n", "\n", "\n", "* [Schelling Model](../../Content/Projects/SchellingModel/SchellingModel.ipynb)\n", "* [Avogadro's Number](../../Content/Projects/BrownianMotion/BrownianMotion.ipynb)\n", "* [Galaxy Mergers](../../Content/Projects/GalaxyMergers/GalaxyMergers.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 31 - Coin Sums](https://projecteuler.net/problem=31)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 9](DayByDay/Day09.ipynb)\n", "* [Day 10](DayByDay/Day10.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due Dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Project Euler 6 and 31 are due by 11:59pm on Sunday, May 4.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 6: Interpolation and Differentiation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO7, LO8, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Interpolation](../../Content/Interpolation/InterpolationTour.ipynb)\n", " * [Interpolation Exercises](../../Content/Interpolation/InterpolationExercises.ipynb)\n", "* [Differentiation](../../Content/Differentiation/DifferentiationTour.ipynb)\n", " * [Differentiation Exercises](../../Content/Differentiation/DifferentiationExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 19 - Counting Sundays](https://projecteuler.net/problem=19)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 11](DayByDay/Day11.ipynb)\n", "* [Day 12](DayByDay/Day12.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due Dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler 19 due by 11:59pm on Sunday, May 11. \n", "*Note: Implement the full logic without using the built-in `datetime` library. (Use `datetime` to check the solution.)*\n", "* Interpolation and Differentiation Exercises due by 11:59pm on Wednesday, May 15.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 7: Numerical Integration and Differential Equations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO7, LO8, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Numerical Integration](../../Content/Integration/IntegrationTour.ipynb)\n", " * [Numerical Integration Exercises](../../Content/Integration/IntegrationExercises.ipynb)\n", "* [Ordinary Differential Equations](../../Content/ODEs/ODEsTour.ipynb)\n", " * [ODE Exercises](../../Content/ODEs/ODEsExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 25 - 1000-digit Fibonacci number](https://projecteuler.net/problem=25)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 13](DayByDay/Day13.ipynb)\n", "* [Day 14](DayByDay/Day14.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due Dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler 25 due by 11:59pm on Sunday, May 18.\n", "* Integration and ODE Exercises are due by 11:59pm on Wednesday, May 21. extended to 11:59pm on Friday, May 23.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 8: Random Numbers and Monte Carlo Methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO7, LO8, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Monte Carlo integration](../../Content/MCIntegration/MCIntegrationTour.ipynb) \n", " * [MC Integration Exercises](../../Content/MCIntegration/MCIntegrationExercises.ipynb)\n", "* [Pseudo-random Numbers](../../Content/RandomNumbers/RandomNumbersTour.ipynb)\n", " * [Pseudo-random Numbers Exercises](../../Content/RandomNumbers/RandomNumbersExercises.ipynb)\n", "* [Monte Carlo Sampling and Simulations](../../Content/MonteCarlo/MonteCarloTour.ipynb)\n", " * [Monte Carlo Exercises](../../Content/MonteCarlo/MonteCarloExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 17 - Number letter counts](https://projecteuler.net/problem=17)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 15](DayByDay/Day15.ipynb)\n", "* [Day 16](DayByDay/Day16.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler 17 due by 11:59pm on Sunday, May 25.\n", "* MC Integration, Random Numbers and MC Simulation Exercises are due by 11:59pm on Wednesday, May 28. extended to 11:59pm on Friday, May 30.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 9: Linear Regression and Optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Optimization: Linear least squares regression and generalized curve fitting](../../Content/Optimization/OptimizationTour.ipynb)\n", " * [Optimization Exercises](../../Content/Optimization/OptimizationExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 20 - Factorial Digit Sum](https://projecteuler.net/problem=20)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 17](DayByDay/Day17.ipynb): No class Tuesday, May 27 due to Memorial Day holiday\n", "* [Day 18](DayByDay/Day18.ipynb)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler 20 due by 11:59pm on Sunday, June 1.\n", "* Optimization Exercises due by 11:59pm on Wednesday, June 4.\n", " \n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Week 10: Symbolic Analysis and Project Hack-a-thon!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Learning Objectives Covered:** LO1-4, LO5, LO6, LO11" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Materials:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Symbolic analysis with SymPy](../../Content/SymPy/SymPyTour.ipynb)\n", " * [SymPy Exercises](../../Content/SymPy/SymPyExercises.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Project Euler:** [Problem 4 - Largest Palindrome Product](https://projecteuler.net/problem=4)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Day by Day:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Day 19](DayByDay/Day19.ipynb)\n", "* [Day 20](DayByDay/Day20.ipynb)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extra office hours: Friday 12-3pm (180-272), Monday 12-4pm (180-272)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Due dates:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Project Euler 4 due by 11:59pm on Sunday, June 8.\n", "* Finished project notebooks are due by 11:59pm on Friday, June 6. extended to 11:59pm on Monday, June 9.\n", "* SymPy Exercises are due by 11:59pm on Friday, June 8. extended to 11:59pm on Friday, June 13.\n", "\n", "---" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Finals Week: Project Demos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "During the final exam period, each student makes a 5-7 minute demo presentation to the rest of the class on their project." ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Exams:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* **Section 02:** Tuesday, June 10, 13:10 - 16:00, 180-272\n", "* **Section 03:** Tuesday, June 10, 16:10 - 19:00, 180-272" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Peer Evaluation:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Project demos evaluated by all audience members using this [presentation evaluation form](../Assessment/PeerEvaluation/ProjectDemoEvaluationRubric.ipynb).\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " All content is under a modified MIT License, and can be freely used and adapted. See the full license text [here](../../LICENSE)." ] } ], "metadata": {} } ] }