Welcome to the class website of ENGR 21 @ Swarthmore Engineering, Fall 2025. This page serves as the syllabus for this course, and will be updated regularly throughout the semester.
Instructor: Emad Masroor emasroo1@swarthmore.edu
Meeting Times: TR 8:30 to 9:45
Lecture Location: SCI 199
Emad’s Office Hours: Tue 1:00 to 2:00 & by appointment
Pre-requisities: MATH 25, ENGR 17
Lab: Mon/Thu 1:15 to 4:00 PM in Singer 222
Lab Instructor: Will Johnson wjohnso3@swarthmore.edu
Will’s Office Hours: W 9:20 to 10:20 AM in Singer 105
URL: https://emadmasroor.github.io/E21-F25/
Course Moodle Page: Moodle
Midterm: None; 6 tests
Final Exam: None; Project
Homework Due Date: Tue at 11:59 PM
Wizard Session: Mon 7:00 to 9:00 PM in Singer 346
| Schedule | Lab Schedule | Teaching Team | Policies | Learning Objectives | Mid-semester survey |
| Resources | Current HW | Final Project | Lab 1 | Lab 2 | Lab 3 | Lab 4 | Lab 5 |
| Week.Lec | Date | Day | Topic | HW Due / Test |
|---|---|---|---|---|
| 1.1 | 09/02 | Tue | Introduction & Installation; variables & types | |
| 1.2 | 09/04 | Thu | Programming basics: variables, types, conditionals | |
| 2.1 | 09/09 | Tue | Base systems; Analog vs. digital data | HW 1 [solutions] |
| 2.2 | 09/11 | Thu | For/while loops; Relative & absolute errors; | |
| 3.1 | 09/16 | Tue | Accuracy and precision; Saving data; | HW 2 [solutions] |
| 3.2 | 09/18 | Thu | Writing data to the board; Functions; Python installation slides | Test 1 |
| 4.1 | 09/23 | Tue | Command line; floating point | HW 3 [solutions] |
| 4.2 | 09/25 | Thu | Floating point numbers | |
| 5.1 | 09/30 | Tue | Introduction to numpy |
HW 4 [solutions] |
| 5.2 | 10/02 | Thu | Data Visualization for Engineering in Python | Test 2 |
| 6.1 | 10/07 | Tue | Root-finding | HW 5 [solutions] |
| 6.2 | 10/09 | Thu | Root-finding | |
| Fall break | ||||
| 7.1 | 10/21 | Tue | Linear Systems | HW 6 [solutions] |
| 7.2 | 10/23 | Thu | Linear Systems | Test 3 |
| 8.1 | 10/28 | Tue | Linear Systems: LU Decomposition | HW 7 [solutions] |
| 8.2 | 10/30 | Thu | Linear Systems: Iterative methods | |
| 9.1 | 11/04 | Tue | Optimization | HW 8 [solutions] |
| 9.2 | 11/06 | Thu | Optimization | Test 4 |
| 10.1 | 11/11 | Tue | Optimization | HW 9 [solutions] |
| 10.2 | 11/13 | Thu | Optimization | |
| 11.1 | 11/18 | Tue | Curve-fitting and Interpolation | HW 10 [solutions] |
| 11.2 | 11/20 | Thu | Curve-fitting and interpolation | Test 5 |
| 12.1 | 11/25 | Tue | Work on Final Project | |
| 11/28 | Thu | Thanksgiving | ||
| 13.1 | 12/02 | Tue | Optional: Initial Value Problems | HW 11 [solutions] |
| 13.2 | 12/04 | Thu | TBD | Test 6 |
| 14.1 | 12/09 | Tue | Final Project |
Labs will meet in Singer 222. Find out which lab section is yours.
| Date | Day | Lab |
|---|---|---|
| 09/08 | Mon | Lab 1 |
| 09/11 | Thu | Lab 1 |
| 09/15 | Mon | Lab 1 |
| 09/18 | Thu | Lab 1 |
| 09/22 | Mon | Lab 2 |
| 09/25 | Thu | Lab 2 |
| 09/29 | Mon | Lab 2 |
| 10/02 | Thu | Lab 2 |
| 10/06 | Mon | Lab 3 |
| 10/09 | Thu | Lab 3 |
| Fall Break | ||
| 10/20 | Mon | Lab 3 |
| 10/23 | Thu | Lab 3 |
| 10/27 | Mon | Lab 4 |
| 10/30 | Thu | Lab 4 |
| 11/03 | Mon | Lab 4 |
| 11/06 | Thu | Lab 4 |
| 11/10 | Mon | Lab 5 |
| 11/13 | Thu | Lab 5 |
| 11/17 | Mon | Lab 5 |
| 11/20 | Thu | Lab 5 |
| 11/24 | Mon | |
| 11/27 | Thu | Thanksgiving |
| 12/01 | Mon | |
| 12/04 | Thu | |
| 12/08 | Mon |
| Name | Role |
|---|---|
| Instructor | Emad Masroor |
| Lab Instructor | Will Johnson |
| Wizards | Ian Forehand |
| Paolo Bosques-Paulet | |
| Brad Johnston | |
| Emily Chen | |
| Nick Fettig | |
| Graders | Owen Hoffman |
| Howard Wang | |
| Hannah Poon | |
| Liam Worden |
| Component | Grade % |
|---|---|
| Homework | 20% |
| Tests | 45% |
| Lab | 15% |
| Final Project | 15% |
| Participation | 5% |
Lectures for this class will be in person. They will not be recorded, and remote participation is not possible. You are expected to attend all lectures unless you have received an exception from the Instructor.
Since this is a computer-based class, you are required to bring a laptop computer. If this causes you some material hardship, please contact the Instructor. There are charging stations in Singer 033, but you are encouraged to bring a fully-charged computer to avoid disruptions to the class.
Homework will be assigned approximately every week, and will typically be due by midnight on the Tuesday following the week in which it was assigned. You can generally expect HW n to cover the material from week $n$, and to be due in week n+1. Typically, homework will be submitted on Moodle using Gradescope.
Most homework assignments will have a written component as well as a programming component.
The purpose of holding six tests instead of one or two midterms is so that you have low-stakes opportunities to demonstrate your mastery of the course material at regular intervals. In general, you can expect these tests to be independent of each other, as opposed to being cumulative.
These tests will be held on Thursdays during the first half of class time (typically for 20 to 25 minutes), and will typically be closed-book, closed-notes and closed-computer. The tests will usually be incremental rather than cumulative, and will only cover the material from approximately two weeks prior to each test. Typically, Test n will cover the material from week 2n and week 2n, and will be held on week 2n+1; for example, test 1 will cover weeks 1 and 2 and will be held on the Thursday of week 3; test 2 will cover weeks 3 and 4 and will be held on the Thursday of week 5, etc.
Labs will be held on Mondays or Thursdays from 1:15 to 4:00. You should be signed up for either Monday (CRN 19688) or Thursday (CRN 19689).
In lieu of a final exam, you will have a final project, aka ‘Lab 6’. There will be dedicated class time to work on your final project in the last two weeks of class.
We will use the Ed Discussion platform for course communication. While you are still welcome to email the instructor directly with questions you may have, please use Ed Discussion as a first step when you have a question about the course; you are encouraged to answer each other’s questions (as long as you are not directly providing solutions to homework problems or lab assignments). The Instructors as well as Wizards will monitor Ed Discussion and answer questions.
The college’s policies on Academic Misconduct apply to this class.
In this class, you will have six regularly-spaced tests instead of one or two midterms. Reflecting the hands-on nature of the content of E21, a large proportion of the grade depends on your performance in labs and the final project (30%). There is no final exam for this course, and your final project plays the role of a ‘final’. The full breakdown of how your grade will be calculated is shown in the following table.
The participation grade will primarily be determined based on attendance.
The grade thresholds are shown below. The Instructor, in consultation with the Lab Instructor, reserves the right to revise these numbers downward, but will not revise these numbers upward.
| To get a grade of | You must score at least |
|---|---|
| A- | 90 |
| B- | 80 |
| C- | 70 |
| D- | 60 |
A score of 60 out of 100 is the minimum passing grade for this course.
The class will not be ‘curved’. The instructor’s interpretation of letter grades is the following: an A is an excellent grade; a B is a good grade, and a C is an acceptable grade. A D reflects a barely passing grade, and a score less than 60 is a failing grade.
Violations of this policy will be treated as cases of academic misconduct.
The reliance on AI tools to produce work that you should know how to do yourself puts you at a serious disadvantage compared to your peers who learned the same material without the help of these tools. If you only know how to solve a problem by `asking an AI to do it’, you have not learned what you were supposed to learn.
Please note that, because of the fast-paced nature of this course and the interdependence of tests on homework assignments, requesting a deadline extension for homework assignments is discouraged.
If you miss a test without prior notice, it will not be rescheduled for you in fairness to other students and you will score a zero for that test. To request an alternate time under extenuating circumstances, you must write to the Instructor at least two days prior to the test, i.e., latest by the end of Tuesday for tests on Thursday. Such a request will be granted at the discretion of the Instructor.
Students with disabilities or chronic medical conditions requesting accommodations, such as additional time on examinations, extensions to course deadlines, or exceptions to classroom policies, should submit an official request through the College’s centralized portal for the communication of this information, known as `Accommodate’. In addition, the student should speak with the Instructor to determine the appropriate accommodations.
At the end of this course, you will be able to:
numpy arraysnumpy