ME 400 – Course Syllabus and Policies¶
In [1]:
messages = ["Welcome to ME 400!", \
"It's important that you understand the course and its policies.", \
"So take some time and read this document carefully!"]
for m in messages:
print(m)
Welcome to ME 400!
It's important that you understand the course and its policies.
So take some time and read this document carefully!
Contact Information¶
- Lecture MW 1:30–2:20pm, DUE 1109
- Instructor: Jeremy Roberts
- Phone: 785-532-7182
- Email: jaroberts@ksu.edu
- Office: Ward 137D
- Office Hours: M/W, 2:30-4:00pm (or by appointment; refer to my calendar before suggesting a time)
- Laboratories
- Lab 1: F 7:30–9:20am, DUR 3056
- Lab 2: F 9:30–11:20am, DUR 3056
- Lab 3: F 2:30–4:20pm, DUR 3056
- Graduate Teaching Assistants
- Richard Reed
- Email: rlreed@ksu.edu
- Office: Ward 133B
- Office Hours: T 4–6pm
- Bolun Xu
- Email: blxu@ksu.edu
- Office: Ward Computer Lab
- Office Hours: M/W 4–5pm
- Richard Reed
- Undergraduate Teaching Assistants
- Ben Logan
- Office: Ward 133
- Office Hours: T 2–3:30pm
- Aimee Neilsen
- Erin O’Toole
- Office: Ward 137D
- Office Hours: W 2:30–4pm
- Ben Logan
Course Description and Objectives¶
From the catalog: The development and application of computer techniques to the problems of design and analysis in mechanical engineering, including computer programming (abstraction and problem solving; algorithms; control structures; input/output; functions; arrays and array processing).
My informal description: ME 400 is all about teaching you, the student, how to use the computer to solve problems. We’ll use the Python programming language, which is as easy a language to learn as any I’ve encountered. The Python language offers much more with all of the add-on packages available, all for free. What you will come out of the class with, at the least, is (1) a basic ability to understand, implement, and debug computer programs and (2) knowledge of tools (symbolic and numerical) within the Python ecosystem that can be used to solve engineering problems.
Note, while the central core of this course is about the basics of programming, the course extends this core content to numerical and other applications. In other words, do not expect this course to be just about “coding.” I repeat, this is not a “coding” course.
Specific objectives (with corresponding ABET outcomes) include:
- A good understanding of the basics of computer programming [a, e, k]
- Proficiency in the Python programming language [a, k]
- Ability to program from scratch [k]
- Ability to use flow charts and other problem-solving skills [c, e]
- Ability to use basic numerical methods [a, b]
- Ability to use skills learned in ME 400 in later classes and career [e, k]
Textbook¶
Although there are a plethora of good books on the Python language, there is a sufficient wealth of information online to learn the language without books. Most of the content I’ll present lives in these online course notes. Reading assignments will be based on this material in addition to supplementary material. Lectures will have standalone slides that augment the readings.
The notes (and slides) are organized by lecture. Moreover, these notes are written using Jupyter notebooks, a format that lets you interactively program in a document-like environment—all in your browser. These notebooks are easy to load and run, and students are encouraged to explore them interactively early in the course.
The primary resource you’ll need to access beyond the notes is the documentation for Python, NumPy, and SciPy. Most of what you need will be right there when we program, but you can also look online at: - www.python.org - www.numpy.org - www.scipy.org
Prerequisites¶
Prerequisite or concurrent: MATH 340. Historically, this class required MATH 551, but we’ll cover the basics like vectors, matrices, matrix-matrix multiplication, matrix-vector multiplication, dot products, and vector norms along the way.
In addition, this course sits in the middle of the MNE undergraduate curriculum. Consequently, I can count on you having had and to be able to apply knowledge learned in previous courses. These previous courses include but are not limited to basic physics and calculus classes. If something we do in this class requires that previously learned material, it is your responsibility to review it as necessary.
Some examples of what I expect you to know: - know that acceleration is \(a = \frac{d^2 x}{dt^2}\) - know how to balance forces in simple trusses via free-body diagrams - know how to differentiate and integrate functions - be able to solve \(\frac{dy}{dt} + 2y(t) = t\) subject to \(y(0) = 1\).
Related Courses¶
For those seeking knowledge of the C language, consider CIS 209, C Programming for Engineers. Those who like the material they learn in ME 400 may wish to consider ME 701, Development of Computer Applications in Mechanical Engineering, which is a course focused on the elements of scientific computing.
Amount of Study Required¶
For the average student (with respect to reading and analytical abilities) to earn an average grade will require approximately 6 to 9 hours per week of study outside of class. This is consistent with university policy, which suggests 2 outside hours per 1 in-class hour. Here, to study implies reading, preparation for lecture, solving homework sets, visiting with the instructor and GTAs, and anything else that contributes actively to the learning process. Historically, roughly half the class has earned A’s and B’s, meaning the average grade is near the B/C cutoff.
For the average student, I’d suggest the following breakdown of out-of-class work:
- 2 hours per week reading, taking notes, and executing example code
- 1 hour per week on pre-lecture activities
- 3–6 hours per week on homework problems
These times indicate real, uninterrupted times. Glancing at the reading while watching TV, surfing Reddit, etc., will not do much for one’s learning.
Lectures¶
Lectures are an important part of the curriculum. Your job is to come to lecture prepared to learn and to engage in any discussions and other activities. Activities will be assigned for each lecture, often as online quizzes to gauge understanding of the reading prior to lecture. Some lectures may also include in-class activities; attendence is necessary to participate in these activities.
The lectures in ME 400 will often be best thought of as hands-on, informal tutorials. If you have a laptop, you are encouraged to bring it to class to do in-class examples. If you do not have a laptop, I have approximately 5 old ones available for in-class use. Use of laptops should be limited to in-class examples and not for surfing and other activities unrelated to the lecture. The use of other electronic devices is distracting, so turn your phones to vibrate and put them away.
Netiquette and Discussion Expectations¶
Netiquette is a set of rules for behaving properly online. Here are some points to consider when interacting with your peers while in this course:
- Profanity is unprofessional and, therefore, unacceptable in this course.
- Avoid using ALL CAPITALS, as it seems to suggest virtual “shouting.”
- Although not all online interactions are formal, you should do your best to use proper spelling and grammar. Use of “textspeak” is strictly prohibited b/c it is unprofessional imho.
- Respect others’ opinions and avoid “flaming” (publicly attacking or insulting) your peers. We’re here to learn together, and being nice helps us do that.
Part of good netiquette consists of using appropriate language (and structure) in emails (should they be necessary). Here’s an example of a suitable (but still informal, say “business casual”) email:
Hi Prof. Roberts,
Here is my important message.
Thanks,
Jane Appleseed
In follow-up emails, the greeting (Hi...) and signature (Thanks...) are less important and may be omitted. Some folks might prefer a bit more formality, while some would accept less formality. When interacting with me, the “business casual” approach is just fine.
See also the University policy on classroom conduct below.
Laboratories and Homework¶
Laboratories are interactive experiences and will be comprised of a quick review and exercises that must be completed within the laboratory session. Attendance in laboratory sessions is expected, and credit can be earned only if you are present. Any remaining time may be used to continue on at-home exercises, which will involve more in-depth problems.
Students will work in pairs as part of some laboratories. In some laboratories, formal pair programming will be required as a learning activity, with specific instructions to be given as needed.
However, students should complete homeworks as individual efforts. Let me be more specific. It is allowed to work informally on assignments, but the final product (usually, “code”) you submit must be your own. Do not look at someone else’s code, and do not share your own code. A good “litmus test” is to ask yourself, “Can I explain everything I’ve submitted to the instructor?” You’ll be tested based on your knowledge of programming, so do yourself a favor and complete the homework on your own. (Please also see the discussion below on the Honor Code and plagiarism.)
For homework questions, students should visit office hours or use the discussion board. If emailed, the course personnel will direct students to the discussion board unless the question is a private matter. The discussion board is preferred so that (1) a given question need only be asked (and answered) once, and (2) a record of such questions can be kept for posterity. Moreover, if a homework is due at 11:59 pm, don’t wait until 5 pm to post questions and expect immediate responses.
Assessment¶
Assessment for the course is based on the following breakdown:
- Formative Activities (10%)
- Laboratory Exercises (10%)
- Homework Exercises (20%)
- Examinations (60%)
As a starting point, the standard 90/80/70/60 rule will be applied for A/B/C/D. These will never be shifted higher, though they may be adjusted lower, if deemed appropriate, at the assignment of final grades. My rule of thumb, subject to change, is that each grade boundary is shifted down by the average numerical score of the top 5% of the students. Hence, if the top five scores in a class of 100 students are 100, 99, 98, 97, and 96, their average is 98, and the B cutoff would be shifted down to 78, a C to 68, etc. This policy protects students overall from an exam question or homework sets that are particularly challenging (relative to past semesters). This is applied to the overall score, i.e., individual exams or other tasks are not adjusted. Any grade shifts will be announced during the last week of class.
Three grades are computed in the course, and students keep the best of these. The grade options are:
- Option 1 includes all formative activities (with three drops), all laboratories (with two drops), Homeworks 1-7 (with two drops), and Exams 1 and 2. Students can earn up to a C with their Option 1 score.
- Option 2 includes all formative activities (with three drops), all laboratories (with two drops), Homeworks 1-11 (with two drops), and Exams 1-3. Students can earn up to a B with their Option 2 score.
- Option 3 includes the entire course (with the same drops) and culminates with the fourth, final examination. Students can only earn an A through Option 3.
Canvas cannot compute multiple grades! Rather, Canvas will always be set up to compute the Option 3 score (i.e., the whole course). Students must keep track of their grade and should verify it with me as needed.
In summary: at the end of the course, we compute three grades for you corresponding to each option. You keep the best one of the bunch. No need to let us know!
Formative Activities¶
Before most (if not all) lectures, students will complete a “pre-lecture” activity. These activities will most often take the form of an online (Canvas-based) quiz with questions that cover the reading assigned for the lecture in question. These activities may also include more open-ended responses from students. In cases where there is a “right” answer, students will be given as many chances as needed to answer the question correctly. For these cases, “right” answers are automatically shown after the due time. Some lectures will also have in-class activities (which may be short problems, worksheets, etc.). These in-class activities can only be completed if you attend the lecture, and they will not be announced. The lowest three scores will be dropped from the calculuted score, so there are no make-up activities. Hence, if you are absent from class for any reason (official or not), there is no make-up activity.
Laboratory Exercises¶
The purpose of the laboratories is to review and to put in practice the concepts and tools discussed in lecture. Part of this experience will be laboratory exercises that must be completed in the alotted laboratory time. Generally, full credit is earned if students attend the laboratory and put forth a good-faith effort. There are 12 laboratories.
Students may drop their lowest two scores (which can include absences of any kind). Consequently, no makeups will be allowed. You do not need to inform the instructor of absences; you simply will not earn credit for that laboratory. Absences of *any k
Homework¶
Each homework extends the topics covered in the laboratory sessions. There are 12 homework assignments. The two lowest scores are dropped.
All homework is due at 11:59pm on the due date via electronic submission (unless otherwise specified in class). Unless otherwise announced, this due date will be the Wednesday before the following laboratory (or, in some cases, an exam). Generally, homework will be posted one week in advance.
No late homework is accepted unless a class-wide extension is given.
Homework solutions will not be posted, but students may visit office hours to see the solution.
Important: all homework should run without a run-time error. If running a submission leads immediately to an error, grading it becomes very difficult. A homework testing file will be provided with instructions on its use. Students should use this tool (following the given guidelines) to ensure their programs execute without error or risk automatic point deductions.
Examinations¶
Mid-Term Examinations¶
The three mid-term examinations are in-laboratory examinations and will consist of a written (pen and paper) and coded (Python program, etc.) component. Students may use one 8.5’’ by 11’’ sheet of hand-written notes for both components. For the coded component, the internet, past homeworks, and any other resources are not to be used.
With multiple laboratory sessions, a number of students will complete an examination after their classmates. Although all students should expect unique exams, please note that any communication regarding the exam before all exams are submitted is prohibited, and any violations of this policy will result in an XF in the course.
Final Examination¶
The final examination consists of only a written component and will be completed in the normal lecture room. One sheet of hand-written notes may be used, but no other resources are allowed. The final exam emphasizes the last quarter of the course but should be considered cumulative.
Accomodations and Make-Up Examinations¶
Any student with a documented disability who requests more time on examinations must inform me two weeks prior to the first examination or risk forfeiting the accomodation.
Make-up examinations will be offered only when absolutely necessary, e.g., for serious personal issues (e.g., documented illness) or official school business (e.g., documented conference).
Contesting Grades, etc.¶
If you wish to request a regrade on any assessed task, you must inform a GTA within 48 hours of when the grade is posted and (1) describe what the task was, (2) what you think was marked incorrectly, and (3) why you think your approach was correct. For reference, grades for homeworks (with automated feedback) and exams (with rubric) are posted the Monday after their submission. Thus, re-grade requests should generally be submitted by close of business on the following Wednesday.
Extra Credit and End-of-Semester Charity¶
The only extra credit available in ME 400 is for extra problems on homeworks and exams. These arise most often when (1) I want to encourage a problem to be tackled even though it is a bit open ended or difficult, or (2) when an exam is written with one too many problems and I simply don’t want to delete one. These problems are never planned, and announced only when you see it. In other words, do not plan on extra credit – the real world has no analog.
The best way to earn better scores is to ask for help early and often. The end of the semester (e.g., the last week, or after the final) is not the time to start getting this help or to ask for favorable rounding. I repeat: ask for help early and often.
Assessing Me¶
I’m open to (and actively seek) feedback continuously. However, formal assessment of the course and its personnel (via TEVALs) will take place during the final laboratory session, which also serves as a review for the final exam.
Course Schedule¶
Lecture | Date | Topics | HW Due |
---|---|---|---|
1 | Wednesday, January 23 | Administrivia. Overview of Python. Spyder and Jupyter. Basic types. | |
Friday, January 25 | LAB 1 | ||
2 | Monday, January 28 | Basic operators and common, built-in functions. | |
3 | Wednesday, January 30 | Basic data processing with NumPy and Matplotlib. | HW 1 |
Friday, February 1 | LAB 2 | ||
4 | Monday, February 4 | More on NumPy arrays. Slicing operations. | |
5 | Wednesday, February 6 | Algorithms, flowcharts, and pseudocode. | HW 2 |
Friday, February 8 | LAB 3 | ||
6 | Monday, February 11 | Conditional statements and the structure of Python programs | |
7 | Wednesday, February 13 | More on conditionals. The graphical debugger. | HW 3 |
Friday, February 15 | LAB 4 | ||
8 | Monday, February 18 | For and while loops. | |
9 | Wednesday, February 20 | More on for and while loops. | HW 4 |
Friday, February 22 | EXAM 1 (Lectures 1-8, HW 1-4) | ||
10 | Monday, February 25 | Python container types: lists, tuples, and dictionaries. | |
11 | Wednesday, February 27 | Processing text data. | |
Friday, March 1 | LAB 5 | ||
12 | Monday, March 4 | Basics of functions. | |
13 | Wednesday, March 6 | More on functions. | HW 5 |
Friday, March 8 | LAB 6 | ||
Monday, March 11 | SPRING BREAK | ||
Wednesday, March 13 | SPRING BREAK | ||
Friday, March 15 | SPRING BREAK | ||
14 | Monday, March 18 | Search algorithms; linear, binary, and meaning of order. Built-in magic. | |
15 | Wednesday, March 20 | Sorting; bubble and merge. Built-in magic. | HW 6 |
Friday, March 22 | LAB 7 | ||
16 | Monday, March 25 | Developing modules and packages. Navigating more complex programs. | |
17 | Wednesday, March 27 | Unit testing and defensive programming. | HW 7 |
Friday, March 29 | EXAM 2 (Lectures 9-17, HW 1-7) | ||
18 | Monday, April 1 | Numerical differentiation | |
19 | Wednesday, April 3 | Numerical integration | |
Friday, April 5 | LAB 8 | ||
20 | Monday, April 8 | Quick review of \(\mathbf{Ax}=\mathbf{b}\). Elimination and numpy.linalg. | |
21 | Wednesday, April 10 | Root finding | HW 8 |
Friday, April 12 | LAB 9 | ||
22 | Monday, April 15 | Optimization | |
23 | Wednesday, April 17 | Modeling Data with Least-Squares Fits | HW 9 |
Friday, April 19 | LAB 10 | ||
24 | Monday, April 22 | Modeling Data with Interpolation | |
25 | Wednesday, April 24 | Brief review of ODEs. Numerical solution of IVPs using Euler’s methods. | HW 10 |
Friday, April 26 | LAB 11 | ||
26 | Monday, April 29 | Systems of IVPs. | |
27 | Wednesday, May 1 | Numerical solution of BVPs using finite differences. | HW 11 |
Friday, May 3 | EXAM 3 (Lectures 18-25, HW 1-11) | ||
28 | Monday, May 6 | Basics of symbolic computing with SymPy: symbols, expressions, and equations. | |
29 | Wednesday, May 8 | Symbolic solution of differential equations. | |
Friday, May 10 | LAB 12 - Exercises | HW 12 | |
Tuesday, May 14 | FINAL EXAM - 11:50 AM-1:40 PM - In Normal Lecture Room |
Academic Honesty¶
The University’s Statement¶
Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance that, in academic matters, one’s work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, ac- knowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reached via the following URL: www.ksu.edu/honor . A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: “On my honor, as a student, I have neither given nor received unauthorized aid on this academic work.” A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.
My Statement¶
Students in ME 400 are expected to uphold the Honor Pledge. Students who are identified to have collaborated on or otherwise received unauthorized assistance on examinations will automatically earn an XF in the course. Infractions related to other graded tasks will be judged on a case by case basis.
On Plagiarism¶
Programming can be hard, and often, students may find that “copying and pasting” from the internet is the path of least resistance: but this can easily lead to plagiarism.
In the simplest terms, plagiarism is the act of using the work of someone else as part of your own without saying so. Probably the most common form of plagiarism involves the uncredited borrowing of text (or ideas) in written works (like those reports in Writing 101). However, plagiarism is not just using another’s text verbatim in your report: it includes using someone else’s solution for a problem, whether it comes from another student or a solution manual. This is a particular case of which many engineering students are not aware but may be guilty.
To avoid plagiarizing, the ideas you present in your problem solutions and laboratory reports must be your own. When you adapt the ideas of another, you need to reference those ideas correctly. If you fail to do so, you are committing academic dishonesty, for which the potential penalties are described in the statement below.
For some basic tips on how to avoid plagiarism in writing, see http://en.writecheck.com/ways-to-avoid-plagiarism.
Students with Disabilities¶
Students with disabilities who need classroom accommodations, access to technology, or information about emergency building/campus evacuation processes should contact the Student Access Center and/or their instructor. Services are available to students with a wide range of disabilities including, but not limited to, physical disabilities, medical conditions, learning disabilities, attention deficit disorder, depression, and anxiety. If you are a student enrolled in campus/online courses through the Manhattan or Olathe campuses, contact the Student Access Center at accesscenter@k-state.edu , 785-532-6441; for Salina campus, contact the Academic and Career Advising Center at acac@k-state.edu, 785-826-2649.
Expectations for Classroom Conduct¶
All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Governing Association By Laws, Article VI, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.
In [2]:
message = "!gnidaer rof sknahT"
print(message[::-1])
Thanks for reading!