Difference between revisions of "EGR 103/Spring 2019"
Line 10: | Line 10: | ||
* [[EGR_103/Spring_2019/Test_2|Test 2]] | * [[EGR_103/Spring_2019/Test_2|Test 2]] | ||
+ | <!-- | ||
===Project=== | ===Project=== | ||
Here are some helpful pages for the project: | Here are some helpful pages for the project: |
Revision as of 17:59, 2 April 2019
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 Spring 2019
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.
Test Reviews
Lectures
Any resources useful in support of particular lectures will be posted here. There is also a list of concepts by lecture: EGR 103/Concept List
Labs
New commands and concepts by lab: EGR 103/Concept List
- Lab 1:
- Lab 1 will be submitted as a PDF, see the EGR 103/Uploading Solutions page for details.
- Lab handout references: EGR 103 Startup, MobaXterm, UNIX, UNIX Tutorial, Emacs, LaTeX, X11 for Mac users
- Lab support documents: UNIX Lab
- Guided tour / common questions: EGR 103/Spring 2019/Lab 1
- Notes:
- The EGR 103 Startup may be helpful after going through the lab if you need a refresher on what was done
- The User:DukeEgr93/WindowsPermission page has information on setting up your Duke account - do not try this on your own, we will go over it in lab!
- Lab 2
- Lab handout references: Lab:B209, Python, Python:Script, Python:Plotting, EGR 103/Uploading Solutions
- Self-guided tour: EGR_103/Spring 2019/Lab 2
- Lab 3
- Lab handout references: Python:Script, Python:Plotting
- Self-guided tour: EGR_103/Spring 2019/Lab 3
- Lab 4
- Lab handout references: Python:Script, Python:Plotting Python:Logical Masks
- Shortcuts: BASH Shortcuts (likely best to not try this on your own)
- Self-guided tour: EGR_103/Spring 2019/Lab 4
- Lab 5
- Lab handout references:
- Self-guided tour: EGR_103/Spring 2019/Lab 5
- Lab 6
- Lab handout references: Python:Linear_Algebra
- Self-Guided tour: EGR 103/Spring 2019/Lab 6
- Lab 7
- Lab handout references: Python:Fitting
- Self-Guided tour: EGR 103/Spring 2019/Lab 7
- Minilab 1
- Lab handout references: Python:Plotting, Python:Plotting Surfaces
- Minilab 2
- Lab handout references: Python:Finding roots, Python:Extrema
- SciPy references (all from Optimization and root finding):
- scipy.optimize.brentq - closed method root finding
- scipy.optimize.fsolve - open method root finding
- scipy.optimize.fmin - unbounded minimization
- scipy.optimize.fminbound - bounded minimization
DAQ Assignments
- DAQ 1
- Lab handout references: DAQ 1, MATLAB:CB-68LP Pinout, Resistor Color Codes, Transferring_Files
- DAQ 2
- Lab handout references: DAQ 2, MATLAB:CB-68LP Pinout, Resistor Color Codes, Transferring_Files
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 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.
For more information on this program, be sure to visit the web page or contact Associate Dean Martha Absher, the Program Coordinator.
Equipment for Laboratories
The labs will be held in the EGR 103 lab in FCIEMAS B209. The B209 lab is equipped with computer systems running the Windows operating system. Half of these machines have a National Instruments data acquisition card and relevant software installed. These systems can take data from a variety of electrical sources and will be used to perform various experiments involving measurement and analysis.
To complete assignments outside of class, you will have 24/7 access to several public computer clusters - these are listed on the OIT Computer Labs at Duke web page. You can also do work on personal computers with internet connections - information on working from your own computer will be discussed in class and during lab or you can check out the Pundit page on Working from home.
Office Hours / TA Support
Given that much of the work for this course will be done outside of formal class hours, each teaching assistant will be assigned office hours in the Teer Building to help students with their programming, analysis, and reports. These office hours should be used to get help about general concepts and about particular aspects of an assignment which you have worked on but run up against some form of roadblock. Office hours should not be seen as a means to shortcut the learning process and get "easy" answers - the TAs will be specifically asked to help students through the thinking process and not just give out the end result.
Office hours will be posted on the class page as early as possible during the semester. If you have questions and cannot make a particular set of office hours, you can also contact your lab TAs for help - generally, however, it is best to ask questions face-to-face either during office hours or during any extra time that may exist during a particular lab. The instructors will also set up times for meetings or be available by appointment.
Report Format
For this course, work will be documented and presented using a written report of some kind. You will receive the specific formatting requirements and skeleton files for each assignment. Generally, you will be asked to write programs and present the results of those programs in a compact format - including a brief problem statement, data and graphs produced to answer the particular problem, your answer, and any required justification. Note that the title block and community standard will be included on each report. When assigned, you will also include your lab subsection. This is primarily to make sure the appropriate teaching assistant receives and grades your work during the semester.
For this course, you must include copies of all codes used to solve the problems as well as any required graphs and tables. Often, these items will go into an appendix to the report. While the main focus of this course is teaching people computational methods, it is also important that people learn how to properly document, interpret, and present the results of those methods. This includes not only generating valid results but also producing a professional document free from formatting, grammar, and spelling mistakes.
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.m
Jane Doe
August 28, 2018
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 my own computer?
- No. Having your own computer can certainly be a convenience, but it is not a requirement. You can do the work for this class on the public clusters around campus. On the other hand, if you do want your own computer, there's a page on Recommended Hardware with suggestions from various people about what to get.
Should I bring a computer to class?
- Only if you plan to use it to take notes about class. For Fall 2018, we will be in Griffith - the desks are relatively small and there are few power outlets. Also - students sometimes bring computers to class hoping to do other things, such as Snapchat, Facebook, Twitter, games, movies, etc. These are disruptions to the class and will not be tolerated.
Should I bring a computer to lab?
- During the first week or two of lab, if you want help getting your computer set up, you can bring it to lab. We will generally ask that you do your work on the stations provided in the lab room rather than on your own computer during lab time, however.
Should I bring a computer to office hours?
- Yes, if possible. There are limited computers in the Teer building; there are several locations to plug in at or near the space the TAs will be holding office hours.
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.