Difference between revisions of "EGR 103/Spring 2023"

From PrattWiki
Jump to navigation Jump to search
(Created page with "EGR 103 is a course for students planning to earn a Bachelor of Science in Engineering Degree at Duke University and who have limited previous computational experience. S...")
 
(Labs)
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
== Support Pages for Spring 2023 ==
 
== Support Pages for Spring 2023 ==
 
=== Concept List ===
 
=== Concept List ===
The list of concepts covered in each lecture will be available at [[EGR 103/Concept List/F22]]
+
The list of concepts covered in each lecture will be available at [[EGR 103/Concept List/S23]]
  
 
===Working on your computer ===
 
===Working on your computer ===
Line 39: Line 39:
 
Lab support pages.  Generally, you will want to start by going through the steps at [[EGR 103/Spring_2023/Beginning of Lab]].
 
Lab support pages.  Generally, you will want to start by going through the steps at [[EGR 103/Spring_2023/Beginning of Lab]].
 
Also, note that assignments will be at the [http://classes.pratt.duke.edu/EGR103S23/assignments.html Assignments] page at the classes site.
 
Also, note that assignments will be at the [http://classes.pratt.duke.edu/EGR103S23/assignments.html Assignments] page at the classes site.
<!--
+
* Lab 0:
 +
** Read [[Box]] and follow the instruction to get Box Drive installed on your computer and create a folder inside your Box folder for EGR103S23
 +
** Read [[Installing_Anaconda_and_Spyder]] and follow the instructions to install the Anaconda distribution of Python on your computer if you do not already have it or make sure you have Anaconda and Spyder 5.2.2 if you have previously installed Anaconda
 +
** Deliverable: Have Box Drive and Anaconda installed and working on your computer and have a folder called EGR103S23 in your Box Drive.
 
* Lab 1:
 
* Lab 1:
** [[EGR 103/Fall 2022/LAB 01| Lab 1 Main Pundit page]]
+
** [[EGR 103/Spring 2023/LAB 01| Lab 1 Main Pundit page]]
** Lab 1 will be submitted as a PDF, see the [[EGR 103/Uploading Solutions]] page for details.  We will go over the entire process during Lab 2.
+
** Lab 1 will be submitted as a PDF, see the [[EGR 103/Uploading Solutions]] page for details.
 
* Lab 2
 
* Lab 2
** [[EGR_103/Fall 2022/Lab 2| Lab 2 Main Pundit page]]
+
** [[EGR_103/Spring 2023/Lab 2| Lab 2 Main Pundit page]]
 
** Lab handout references:  [[Python]], [[Python:Script]], [[Python:Plotting]], [[Pandas]], [[EGR 103/Uploading Solutions]], [[Installing_Anaconda_and_Spyder]]
 
** Lab handout references:  [[Python]], [[Python:Script]], [[Python:Plotting]], [[Pandas]], [[EGR 103/Uploading Solutions]], [[Installing_Anaconda_and_Spyder]]
 
* Lab 3
 
* Lab 3
** [[EGR_103/Fall 2022/Lab 3| Lab 3 Main Pundit Page]]
+
** [[EGR_103/Spring 2023/Lab 3| Lab 3 Main Pundit Page]]
 
** Lab handout references: [[Python:Script]]
 
** Lab handout references: [[Python:Script]]
 
* Lab 4
 
* Lab 4
** [[EGR_103/Fall 2022/Lab 4 | Lab 4 Main Pundit Page]]
+
** [[EGR_103/Spring 2023/Lab 4 | Lab 4 Main Pundit Page]]
 
** Lab handout references: [[Python:Script]], [[Python:Plotting]]  
 
** Lab handout references: [[Python:Script]], [[Python:Plotting]]  
 
* Lab 5
 
* Lab 5
** [[EGR_103/Fall 2022/Lab 5 | Lab 5 Main Pundit Page]]
+
** [[EGR_103/Spring 2023/Lab 5 | Lab 5 Main Pundit Page]]
 
** Lab handout references:  [[Python:Logical Masks]], [[Python:Plotting#Using_Different_Scales]] for finding values and locations of max and min values
 
** Lab handout references:  [[Python:Logical Masks]], [[Python:Plotting#Using_Different_Scales]] for finding values and locations of max and min values
 
* Lab 6
 
* Lab 6
** [[EGR 103/Fall 2022/Lab 6 | Lab 6 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 6 | Lab 6 Main Pundit Page]]
** Lab handout references: [[Python:Plotting]], [[Python:Plotting Surfaces]]
+
** Lab handout references: [[Python:Plotting]], [[Python:Plotting/Subplots]] (including [[Python:Plotting/Subplots#Mondrian_Subplots]]), [[Python:Plotting Surfaces]] (including [[Python:Plotting_Surfaces#Color_Bars|Color Bars]] example and [[Python:Plotting_Surfaces#There_Is_No_Try|Donut]] example),
 +
** From matplotlib.org: [https://matplotlib.org/stable/gallery/color/colormap_reference.html Colormap reference], [https://matplotlib.org/stable/gallery/color/named_colors.html Named colors] (including [https://matplotlib.org/stable/gallery/color/named_colors.html#css-colors CSS Colors])
 
* Lab 7
 
* Lab 7
** [[EGR 103/Fall 2022/Lab 7 | Lab 7 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 7 | Lab 7 Main Pundit Page]]
 +
** Lab handout references:
 +
* Lab 8
 +
** [[EGR 103/Spring 2023/Lab 8 | Lab 8 Main Pundit Page]]
 
** Lab handout references: [[Python:Linear_Algebra]]
 
** Lab handout references: [[Python:Linear_Algebra]]
* Lab 8
 
** [[EGR 103/Fall 2022/Lab 8 | Lab 8 Main Pundit Page]]
 
** Lab handout references:
 
 
* Lab 9
 
* Lab 9
** [[EGR 103/Fall 2022/Lab 9 | Lab 9 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/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
 
* Lab 10
** [[EGR 103/Fall 2022/Lab 10 | Lab 10 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 10 | Lab 10 Main Pundit Page]]
 
** Lab handout references: [[Python:Fitting]], [[Python:Extrema]]
 
** Lab handout references: [[Python:Fitting]], [[Python:Extrema]]
 
** SciPy references (all from [https://docs.scipy.org/doc/scipy/reference/optimize.html Optimization and root finding]):
 
** SciPy references (all from [https://docs.scipy.org/doc/scipy/reference/optimize.html Optimization and root finding]):
Line 74: Line 78:
 
*** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fminbound.html scipy.optimize.fminbound] - bounded minimization
 
*** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fminbound.html scipy.optimize.fminbound] - bounded minimization
 
* Lab 11
 
* Lab 11
** [[EGR 103/Fall 2022/Lab 11 | Lab 11 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 11 | Lab 11 Main Pundit Page]]
 
** Lab handout references: [[Python:Finding roots]]
 
** Lab handout references: [[Python:Finding roots]]
 
** SciPy references (all from [https://docs.scipy.org/doc/scipy/reference/optimize.html Optimization and root finding]):
 
** SciPy references (all from [https://docs.scipy.org/doc/scipy/reference/optimize.html Optimization and root finding]):
Line 80: Line 84:
 
*** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fsolve.html scipy.optimize.fsolve] - open method root finding
 
*** [https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fsolve.html scipy.optimize.fsolve] - open method root finding
 
* Lab 12
 
* Lab 12
** [[EGR 103/Fall 2022/Lab 12 | Lab 12 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 12 | Lab 12 Main Pundit Page]]
 
** Lab handout references: [[Numerical Differentiation]]
 
** Lab handout references: [[Numerical Differentiation]]
 
* Lab 13
 
* Lab 13
** [[EGR 103/Fall 2022/Lab 13 | Lab 13 Main Pundit Page]]
+
** [[EGR 103/Spring 2023/Lab 13 | Lab 13 Main Pundit Page]]
 
* Lab 14
 
* Lab 14
** [[EGR 103/Fall 2022/Lab 14 | Lab 14 Main Pundit Page]]  
+
** [[EGR 103/Spring 2023/Lab 14 | Lab 14 Main Pundit Page]]  
 
** [[Python:Ordinary_Differential_Equations]]
 
** [[Python:Ordinary_Differential_Equations]]
 
** [[Python:Ordinary_Differential_Equations/Examples]]
 
** [[Python:Ordinary_Differential_Equations/Examples]]
 
** [[Python:Ordinary_Differential_Equations/Templates]]
 
** [[Python:Ordinary_Differential_Equations/Templates]]
 
+
<!--
  
 
* Lab 6
 
* Lab 6
Line 396: Line 400:
  
 
== External Links ==
 
== External Links ==
* [http://classes.pratt.duke.edu/EGR103S22 http://classes.pratt.duke.edu/EGR103F22] - Main page for EGR 103  
+
* [http://classes.pratt.duke.edu/EGR103S23 http://classes.pratt.duke.edu/EGR103S23] - Main page for EGR 103  
* [https://sakai.duke.edu/portal/site/egr103F22 Sakai link] - Sakai page for EGR 103
+
* [https://sakai.duke.edu/portal/site/egr103S23 Sakai link] - Sakai page for EGR 103
* [https://edstem.org/us/courses/27511/discussion/ Ed Link] - Ed page for EGR 103
+
* [https://edstem.org/us/courses/34359/discussion/ Ed Link] - Ed page for EGR 103
  
 
== References ==
 
== References ==

Latest revision as of 23:29, 18 April 2023

EGR 103 is a course for students planning to earn a Bachelor of Science in Engineering Degree at Duke University and who have limited previous computational experience. Students with AP credit for Computer Science A or significant programming experience may choose to take CS 201 instead.

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."

Support Pages for Spring 2023

Concept List

The list of concepts covered in each lecture will be available at EGR 103/Concept List/S23

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 for this class.

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.


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/Spring_2023/Beginning of Lab. Also, note that assignments will be at the Assignments page at the classes site.



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.


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
January 29, 2023

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?

  • No - Python is free.

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

References