Welcome to EP476, "Scientific Computing for Engineering Physics". This course will focus on bringing important scientific software development skills to students primarily in the Engineering Physics department.
Location: 2324 Engineering Hall
Class times: TR 1:00-2:15 PM
Office Hours: W 4-5:30 PM
Instructor: Prof. Paul Wilson
Office: 443 Engineering Research Building
Email: paul.wilson _at_ wisc.edu
Phone: 608-263-0807
Slack: uw-ne.slack.com
- Description
- Textbook
- Assessment
- Grades
- Topics
- Syllabus
- Homework Assignments
- Teaching and Learning Philosophy
- Code of Conduct
- Additional Resources
Scientific software development has transitioned from a field devoted almost entirely to numerical methods to one that increasingly relies on more advanced management of data and development of analysis workflows that involve multiple tools strung together in a sequence, and also numerical methods.
This course is designed to introduce a variety of concepts that will make engineers and scientists more effective at developing software that facilitates modern engineering analysis.
"Effective Computation in Physics", Anthony Scopatz & Kathryn Huff, O'Reilly, 2015
- approximately weekly
- continuation of in-class exercises
- develop skills and proficiency
Project: 40%
- implement your own software
- should use a variety of skills learned in class
- Command-line environment in Unix/Linux
- Version control with git
- Healthy software development communities
- Programming for human efficiency and maintainability
- Programming style: write code for people
- Programming modularity: don't repeat yourself
- Unit testing for robustness
- Continuous integration
- Understanding your tools
- Working with compiled languages: Using a compiler
- Fixing mistakes: Using a debugger
- Testing performance: Using a profiler
- Build & Installation Management
- Software Design
- Separation of concerns
- Introduction to object-oriented design
- Scientific Computing
- Numerical Methods
- Visualization
- Lecture #1: Introduction
- Lecture #2: Navigating the filesystem
- Lecture #3: Working with files
- Lecture #4: Managing your environment and searching files
- Lecture #5: Introduction to version control with git
- Lecture #6: Branching and working with remote repositories
- Lecture #7: Managing collaborative contributions and conflicts
- Lecture #8: Project scoping and design
- Lecture #9: Introduction to Python and best practices
- Lecture #10: Containers for effective data structures
- Lecture #11: Numpy arrays for numerical analysis
- Lecture #12: Program control flow
- Lecture #13: Group work to develop project ideas into plans
- Lecture #14: Finite difference equations & project management with Github
- Lecture #15
- Lecture #16 (Wilson traveling): Introduction to SciPy and Linear Algebra Review
- Lecture #17: Demonstration of Software Planning & Diagramming
- Lecture #18: Project Work Day
- Lecture #19: (Wilson traveling) - Project Work Day
- Lecture #20: (Wilson traveling/ANS Student Conference): Work on Homework #3
- Lecture #21: Managing input: command-line, python-as-input, YAML as a sample standard format
- Lecture #22: Working with files, debugging, and output formats
- Lecture #23:
- Lecture #24 (Wilson traveling): Project Work Day
- Lecture #25: HDF5, Dictionaries of functions, matplotlib
- Lecture #26: 3D plotting, testing and continuous integratino
- Lecture #27
- Lecture #28 - Final Project Presentatinos
- Homework #1 - Due 1 PM, Feb 6, 2018
- Video #1 - Due 11 PM, Feb 13, 2018
- Homework #2 - Due 1 PM, Mar 6, 2018
- Video #2 - Due 11 PM, Mar 13, 2018
- Homework #3 - Due 1 PM, Apr 12, 2018
- Proposal - Due 11 PM, Feb 13, 2018
- Timeline - Due 1 PM, Mar 13, 2018
- Diagramming - Due 1 PM, Mar 22, 2018
Successful learners take ownership of their own learning and seek guidance from the instructor to guide their learning process. The instructor's role is to chart a course through the material that will expose students to the concepts they need with appropriate examples. The student's role is to pursue the course set the instrutor with a curious thirst for the nuances and details of the concepts they experience along the way.
Please treat this classroom like a modern professional work environment:
-
All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any event.
-
Be kind to others. Do not insult or put down other students.
-
Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate.
-
Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
-
Diversity is a source of strength, creativity, and innovation. All students in this course are expected to value the contributions of each person and respect the ways in which their identity, culture, background, experience, status, abilities, and opinion enrich our learning experience and university community.
-
Disrespectful behavior or comments directed toward any group or individual will be addressed by the instructor.
-
Academic Integrity is critical to the mission of the University of Wisconsin-Madison, a research institution with high academic standards and rigor. All members of the University community play a role in fostering an environment in which student learning is achieved in a fair, just, and honest way.
-
The Greater University Tutoring Service (GUTS) is a Registered Student Organization (RSO) supported by segregated fees and dedicated to connecting UW students with volunteer tutors for assistance with academic courses, study skills, conversational English, and intercultural exchange. We provide free tutoring and mentoring to hundreds of students and university affiliates each semester!
-
Tutoring-by-Request (TBR) is a privately funded program that allows authorized students to obtain one-on-one help from tutors for a number of different courses. Typically TBR provides tutors for over 60 courses engineering students commonly take.
-
Becoming a member of the UW Student Section of the American Nuclear Society is a great way to start your participation in a professional organization related to your field, offering social and professional opportunities throughout the year. It can also be an important place to find academic help from peers or older students.
-
UHS mental health providers understand the complexities of student life and offer an open, safe, and confidential environment to help students through issues that may interfere with their well-being, academic productivity, and happiness.