Difference between revisions of "EGR 103/Fall 2020"
(→Labs) |
(→Labs) |
||
Line 66: | Line 66: | ||
** [[EGR 103/Fall 2020/Lab 8 | Lab 8 Main Pundit Page]] | ** [[EGR 103/Fall 2020/Lab 8 | Lab 8 Main Pundit Page]] | ||
** Lab handout references: [[Python:Linear_Algebra]] | ** Lab handout references: [[Python:Linear_Algebra]] | ||
− | * Lab | + | * Lab 9 |
** [[EGR 103/Fall 2020/Lab 9 | Lab 9 Main Pundit Page]] | ** [[EGR 103/Fall 2020/Lab 9 | Lab 9 Main Pundit Page]] | ||
** Lab handout references: [[Python:Fitting]], [[General Linear Regression]], [[Statistics Symbols]] | ** Lab handout references: [[Python:Fitting]], [[General Linear Regression]], [[Statistics Symbols]] | ||
+ | * Lab 10 | ||
+ | ** [[EGR 103/Fall 2020/Lab 10 | Lab 10 Main Pundit Page]] | ||
+ | ** Lab handout references: [[Python:Fitting]], [[Python:Extrema]] | ||
+ | ** SciPy references (all from [https://docs.scipy.org/doc/scipy/reference/optimize.html Optimization and root finding]): | ||
+ | *** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin.html scipy.optimize.fmin] - unbounded minimization | ||
+ | *** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fminbound.html scipy.optimize.fminbound] - bounded minimization | ||
<!-- | <!-- | ||
* Lab 7 | * Lab 7 |
Latest revision as of 16:47, 3 November 2020
EGR 103 is a required course for all students planning to earn a Bachelor of Science in Engineering Degree at Duke University. This page is meant to provide answers to general questions about the course, not necessarily specific questions about content. There is also a Category:EGR 103 that will list all pages relevant to EGR 103. Note at the bottom of this page that it is a member of that category. Finally, there is an EGR 103 Startup page in progress, meant as a kind of "Guide to your first 100 hours taking an EGR class." Note that in the Fall of 2018 the course changed significantly in that the primary programming language used to teach the material became Python 3; MATLAB will still be covered at the end of the course.
Contents
Support Pages for Fall 2020
Working on your computer
There is now a page on Working on your computer which includes the software you will need to install and the processes you will need to follow to do work through the Duke CIFS system with programs installed on your own computer. Please note - you are not required to have a computer for this class. Also, if you generally do work on your computer but something goes wrong with your computer, you are still expected to do work on the Duke public systems.
Python Common Mistakes
There is now a page on Python:Common Mistakes with a list of common pitfalls in Python. If you are experiencing bugs in your scripts, it can be useful to check this page for common errors and fixes.
Test Reviews
TBA
Lectures
Any resources useful in support of particular lectures will be posted here.
Labs
Lab support pages. Generally, you will want to start by going through the steps at EGR 103/Fall 2020/Beginning of Lab. Also, note that assignments will be at the Assignments page at the classes site.
- Lab 1:
- Lab 1 Main Pundit page
- Lab 1 will be submitted as a PDF, see the EGR 103/Uploading Solutions page for details.
- Lab 2
- Lab 2 Main Pundit page
- Lab handout references: Python, Python:Script, Python:Plotting, Pandas, EGR 103/Uploading Solutions
- Lab 3
- Lab 3 Main Pundit Page
- Lab handout references: Python:Script, Python:Plotting
- Lab 4
- Lab 4 Main Pundit Page
- Lab handout references: Python:Script, Python:Plotting Python:Logical Masks
- Lab 5
- Lab 5 Main Pundit Page
- Lab handout references: Python:Debugging
- "Chapra Pythonified" files from Chapter 4 in the Resources folder on Sakai
- Lab 6
- Lab 7
- Lab 7 Main Pundit Page
- Lab handout references: Python:Plotting, Python:Plotting Surfaces
- Lab 8
- Lab 8 Main Pundit Page
- Lab handout references: Python:Linear_Algebra
- Lab 9
- Lab 9 Main Pundit Page
- Lab handout references: Python:Fitting, General Linear Regression, Statistics Symbols
- Lab 10
- Lab 10 Main Pundit Page
- Lab handout references: Python:Fitting, Python:Extrema
- SciPy references (all from Optimization and root finding):
- scipy.optimize.fmin - unbounded minimization
- scipy.optimize.fminbound - bounded minimization
Introduction and Information about Laboratory Work
Purpose
The primary goal of the laboratory assignments is to give students practical, hands-on exposure to some of the most common computational methods used by engineers. In accomplishing this, we employ short- and medium-scale problems from the major fields of engineering that Duke has to offer in the hopes that students will be able to better choose which engineering discipline(s) to pursue during their undergraduate career. Furthermore, we extend computational methods outside the computer itself using analog and digital inputs and outputs, reinforcing the real-world importance of computers and computational methods with respect to engineering.
Grand Challenges
EGR 103 will also be looking at the 14 Grand Challenges for Engineering chosen by the National Academy of Engineering. One of the Challenges, "Engineer the tools of scientific discovery," is a large part of what this course is all about. Computational methods can be used to collect, analyze, and present data from various experiments in order to get a better sense of how the universe works. The inclusion of data acquisition techniques in this class allows us to use a wide array of sensors for gathering that data rather than being limited to "cooked" data sets of unknown origin.
Another of the Grand Challenges, the quest to "Advance personalized learning," relates to looking at the different ways people can learn information for themselves. While there will be several opportunities for students to be taught as a group, we will be providing different resources for individual students to expand the breadth and depth of learning on their own. This includes making sure all class assignments are posted on the web, providing a discussion forum for students and class staff to talk about different aspects of the course, and creating a wiki-based interactive knowledge database. Also, we will present and explore different approaches to solving various problems in the knowledge that different students perceive computational methods in different ways.
For the remaining 12 Grand Challenges, we will link specific assignments to the relevant field or fields that may support it. For example, a problem on optimizing the dimensions of a water channel will relate to both the challenge to "Provide access to clean water" as well as the challenge to "Restore and improve urban infrastructure." Laboratory assignments introducing students to sensors and sensor technology relate to the challenge to "Prevent nuclear terror," in that accurate, rapid, and long-distance detection of fissile material is a key element of such prevention.
Note also that the Pratt School of Engineering is host to the NAE Grand Challenge Scholars Program at Duke. The program description, found on the web site, is:
The Duke NAE Grand Challenge Scholars Program educates engineering undergraduates to have the technical expertise, breadth of knowledge, and the social, ethical, and environmental awareness to successfully pursue leadership positions in addressing the NAE Grand Challenges for Engineering...this will be accomplished by requiring each GC Scholar to propose and complete a five-component GC portfolio, and by completing a GC senior thesis.
Ownership of Work
All the work you do for this class needs to be properly documented and owned. For the reports, this is most easily done with a title block at the top of the assignment. For any graph that you create, you will be including your NetID in the title of the graph as a statement of ownership and adherence to the Community Standard.
For all functions and scripts you create for graded assignments in this course, you must include a title block as well. The format of the title block depends on whether the function or script in question will be turned in on its own or attached to a lab report. Furthermore, the contents of the title block depends on whether the code you have written is original or a modified form of pre-written code.
Standalone Programs
For programs you write yourself that will be turned in on their own, you need to use the following header:
"""
[Function or Script Name]
[Your Name]
[Date Written]
I understand and have adhered to all the tenets of the
Duke Community Standard in creating this code. I understand
that a violation of any part of the Standard on any part of
this assignment can result in failure of this assignment,
failure of this course, and/or suspension from Duke University.
Signed: [Your NetID]
"""
If you are given a piece of code to modify and then turning in the result on its own, the following header must be used:
"""
[Function or Script Name]
[Your Name]
[Date Modified]
Based on: [Original Script or Function]
Written by: [Original Author]
I understand and have adhered to all the tenets of the
Duke Community Standard in creating this code. I understand
that a violation of any part of the Standard on any part of
this assignment can result in failure of this assignment,
failure of this course, and/or suspension from Duke University.
Signed: [Your NetID]
"""
An example header might look like the following:
"""
sample.py
Jane Doe
August 27, 2020
I understand and have adhered to all the tenets of the
Duke Community Standard in creating this code. I understand
that a violation of any part of the Standard on any part of
this assignment can result in failure of this assignment,
failure of this course, and/or suspension from Duke University.
Signed: jjd9
"""
Programs Attached to Lab Reports
For EGR 103, you will generally be submitting codes as appendices to lab reports. Since the "full" text of the Duke Community Standard will be on the cover page of the lab report, you are allowed to use a shortened version on subordinate works. Specifically, for original code you may use:
"""
[Function or Script Name]
[Your Name]
[Date Modified]
I have adhered to all the tenets of the
Duke Community Standard in creating this code.
Signed: [Your NetID]
"""
and for modified code you may use:
"""
[Function or Script Name]
[Your Name]
[Date Modified]
Based on: [Original Script or Function]
Written by: [Original Author]
I have adhered to all the tenets of the
Duke Community Standard in creating this code.
Signed: [Your NetID]
"""
F.A.Q.
Do I need to buy Python or MATLAB?
- No - Python is free and MATLAB will be provided on Duke's public computing system. During the first classes and lab, you will learn how to access the public clusters and how to run programs on public clusters from your own computer. PCs (using MobaXterm, Mac (using X11R6), and Linux systems can all do this.
Do I need a Lab Notebook
- Nothing special - whatever you use to take notes in class should be fine for lab.
Questions
Post your questions by editing the discussion page of this article. Edit the page, then scroll to the bottom and add a question by putting in the characters *{{Q}}, followed by your question and finally your signature (with four tildes, i.e. ~~~~). Using the {{Q}} will automatically put the page in the category of pages with questions - other editors hoping to help out can then go to that category page to see where the questions are. See the page for Template:Q for details and examples.
External Links
- http://classes.pratt.duke.edu/EGR103F20 - Lab page for EGR 103
- Sakai link - Sakai page for EGR 103
- CampusWire link - CampusWire page for EGR 103 - you will need to verify your account first (which involves a code sent to your email) and then use the class four-digit code to subscribe to the course (posted on Sakai in the Announcements)