EF 230 - Computer Solutions of Engineering Problems Syllabus Fall 2023

## Course Description EF 230 - Computer Solutions of Engineering Problems (2 credit hours). Primary focus is on development of computer programs in a modern programming language to solve engineering problems. Prereq: EF 105 or EF 142 or COSC 101 or COSC 102 or COSC 111 ## Learning Outcomes (more details below) After completing this course, you should be able to - Build programs to solve engineering-related problems. - Apply common MATLAB approaches and conventions and understand common programming practices when creating and evaluating programs. - Manipulate data and present solutions in programming design projects. ## Course Coordinators Dr. Amy Biegalski (Dr B), Zeanah 363C (biegalski@utk.edu).
Dr. Andrew Espera, Zeanah 363D (aespera@utk.edu).
## Teaching Assistants See Instructors on the course website. ## Engineering Fundamentals Office Office: 260 Zeanah Engineering Complex, 865-974-9810, Cheryl Huskey ( chuskey1@utk.edu ) ## Learning Environment All sections will meet in Zeanah 170/178. This is a lab-based course, therefore most of class will be spent working through problems in small groups. Before each class you will be responsible for working through Prelab Assignments to prepare for the lab. During class time, you will apply those skills to work through practice problems, with the assistance of your peers and TAs. After class time, you will finish any practice problems you did not complete in class. ## How to be successful in the course - Participate in all activities during class. This class meets twice a week for 75 minutes. - Complete assignments by the due dates and dedicate the time to understand them. You should expect to work 4 hours per week outside of class. This outside of class time is standard for a 2-credit-hour lab class. - Completion of provided practice exams is highly recommended for exam preparation. There is a lot of material presented in this class and you are not expected to memorize everything, but to be successful you'll need a basic level of familiarity with the material; you will not have time to look everything up and learn on the fly. - Read all assignment directions and rubrics carefully to ensure you get all the easy points. - Ask questions during class and/or attend help sessions to efficiently use your time. - For team projects, participate in class on project days, meet with your team members outside of class, and contribute to the team effort. Students who come to all classes and complete all assignments tend to perform better on exams and projects and earn higher final grades. A positive attitude and a willingness to work with peers and instructors during class will help you be successful. The highest level of understanding comes from teaching others, so support your table mates and team members. Not all the information needed to complete weekly activities will be available on the class website. In EF230 there is an expectation that you will need to self-learn, experiment, and make use of external resources, including MATLAB documentation, to fully understand and complete the activities. ## Team Projects This semester, you'll complete a number of projects, including programming Sphero RVR robots with an on-board raspberry pi. In today's engineering workplace, collaboration and teaming are more important than ever. ABET student outcomes required for accreditation of your degree program include "an ability to function effectively on a team ..." and "an ability to communicate effectively with a range of audiences." Projects offer an interactive approach to programming and an opportunity for exploration and creativity. As instructors, we really enjoy EF230 projects! For projects you will be evaluated on team activities and lack of participation will result in a penalty or zero on the related grades. Because foundational skills are necessary to contribute effectively to team projects, module 1 class attendance and assignment completion is required to participate and earn points in the team project. ## Website: https://efcms.engr.utk.edu/ef230 - you must have consistent and reliable access to the website. The website contains all learning and assessment material. ## Communication Communication for this course will primarily occur through the course website. Use the course website to check course announcements every class day. Help is available through the Discussion Board, help sessions, and during and after class. Please post questions about the course and assignments to the Discussion Board so the entire class can benefit from the responses. For personal matters, please use email. The help session schedule is posted on the website menu item Help. Dr Biegalski and Dr Espera are also available via appointment to go over your questions. When emailing, please include your full name, EF230, and your section (time, CRN, or letter) in your email. You can expect to receive an email reply within 24 hours Monday through Friday. In some cases the reply may acknowledge your email was received and indicate a response is forthcoming but will need additional time to address. ## Textbooks and Required Materials There are no required textbooks for this course, all learning material will be made available on the [course website]. You are required to have a laptop meeting the Tickle College of Engineering [minimum requirements](https://tickle.utk.edu/ithelp/computers/). Note that devices running ChromeOS (e.g. ChromeBooks), iOS (e.g. iPads) or Android (e.g. non-Apple tablets) do *not* meet the minimum requirements. - Early in the course we will use MATLAB Online. A custom install of MATLAB will be required later in the course, an EF 105 install will not be sufficient. You will need to carefully follow the "Install It Now" Instructions under the menu item Access MATLAB on our course website. ## Grading
  1. (40%) Exams - a midterm (20%) and a final (20%)
  2. (30%) Projects - programming projects
  3. (30%) Assignments and participation - prelabs, practice and in-class assignments

The course grading is A (>=92),A- (>=89), B+ (>=86), B (>=82), B- (>=79), C+ (>=76), C (>=72), C- (>=69), D+ (>=66), D (>=62), and F (<62).

Early worker bonus: For prelabs, answers submitted at least 12 hours *before* your scheduled lab section earn a 10% bonus. If you have a final average of xx.5% it will be rounded up to the next percent for determination of your final letter grade. Contact Dr Biegalski and Dr Espera for grading inquiries. Deadlines including partial credit deadlines are clearly communicated for each assignment and vary by type of work: - All dropbox assignments display a "Due date for full credit" and an "uploads disabled" date on the dropbox page. Because dropbox files must be graded by hand, processing late submissions adds an additional burden on us. Therefore, a late penalty is imposed after the "Due Date for Full Credit" and dropbox projects/assignments will not be accepted after the "uploads disabled" date and the grade will be entered as a 0. - EF Homework system assignment partial credit due dates are shown using the "All due dates" button. Typically in-class assignments are due the evening after class to encourage you to efficiently use class time to complete assignments. For these auto-graded assignments, late credit is weighted by a value between 75% and 50% based on how late assignments are submitted. Because we have to be fair and consistent with deadlines for all students we will not accept work or give credit past the final deadlines. ## Team Projects In today's engineering workplace, collaboration and teaming are more important than ever. ABET student outcomes required for accreditation of your degree program include "an ability to function effectively on a team ..." and "an ability to communicate effectively with a range of audiences." Projects offer an interactive approach to programming and an opportunity for exploration and creativity. You will be evaluated on team activities and lack of participation will result in a penalty or zero on the related grades. Because foundational skills are necessary to contribute effectively to team projects, proficiency on Module 1 assignments, as demonstrated by successful and timely completion of Module 1 assignments, is required to participate and earn points in the team project. ## Absence Policy We expect you to attend and participate in class to ensure you have the resources you need to understand the material, complete the assignments, and be successful in the course. You are welcome to attend another section (space permitting). You should not attend class if you are sick or have respiratory symptoms or a fever. If you miss a class for any reason, complete a [missed class form](https://efcms.engr.utk.edu/ef230/gen/labmiss.php) and indicate a plan for reviewing the learning material and completing the required assignments. Except for extraordinary circumstances, missed class forms must be submitted no later than 24 hours after a missed class. For more than two absences submit an [absence notification to the Dean of Students](https://dos.utk.edu/absence-notifications/) and contact Dr Biegalski and Dr Espera to determine a mutually agreed-upon arrangement. Up to two extensions on assignments will be considered for extenuating circumstances if an extension request is submitted and approved via email before the assignment or project deadline. Notify and work with us to develop a plan to complete the work. You will not receive an extension if your extension request is submitted after the assignment or project deadline. After being approved for an extension, you MUST notify us via email when you complete the assignment (by the agreed upon date) so the assignment can be graded and the late penalty removed. Unless you request and are approved for an extension via email before the posted due date, even if you are absent, your work is still due by the posted due date. Attendance is mandatory on class days designated as Team Project Days on the Learning Calendar. If you will miss a team day, in addition to the missed class form, before your class time on Team Project Day you are responsible for composing a single email to all teammates (listed on your control panel) with a cc to Dr Biegalski and Dr Espera notifying them of your planned absence and your plan to contribute to make up the time missed and how you will update your teammates on the work you completed. Should you have an emergency the morning of the team day, send the email to notify your instructors and your teammates as soon as possible. Failure to notify your instructor and teammates and makeup the work will result in a zero for the team assignment(s). Repeated unexcused absences will result in removal from your team and a zero for the team project. ## Exam Absence Policy When possible, switch to another timeslot using the posted link on the announcements page prior to the start of your scheduled slot, instead of requesting a makeup exam. Makeup Exams will be given only for extenuating circumstances: medical emergencies, COVID19 related circumstances, emergency travel, family emergencies, and planned university sanctioned absences. Reasons one might miss the exam that would not result in a makeup exam being given include (but are not limited to): oversleeping, hangovers, not being able to find a parking spot, deciding to go out of town, leaving early for break, and forgetting there was a exam. - To schedule a makeup exam you must complete the **Exam absence form** using the missed class forms link on the website 24 hours prior to the exam. - Should you have an emergency or documented illness the morning of the exam, complete the **Exam absence form** as soon as possible. Makeup requests received after the exam day has concluded will not be considered. - **Valid Documentation** may be required for missed exams. Examples of Valid Documentation: Physicians note, documented notification of absence forwarded from the Dean of Students, obituary notice, automobile accident reports, airline/bus ticket/receipt for emergency travel. - You **must have permission** to take a makeup exam. If approved, you will receive a reply with instructions on how to make up the exam. If you do not receive instructions within 24 hours of the end of the scheduled exam, contact Dr Biegalski and Dr Espera. The format and date of the makeup exam is at our discretion. ## Academic Integrity Each student is responsible for their personal integrity in academic life and for adhering to UT's Honor Statement. The Honor Statement reads: "An essential feature of the University of Tennessee, Knoxville is a commitment to maintaining an atmosphere of intellectual integrity and academic honesty. As a student of the university, I pledge that I will neither knowingly give nor receive any inappropriate assistance in academic work, thus affirming my own personal commitment to honor and integrity." We encourage students to work collaboratively to learn in our course. Appropriate means of collaboration may include meeting collectively to work on assignments. During collective meetings, all members are expected to participate in discussion and contribute to collective understand and dialogue. The following actions are specifically identified as inappropriate: - Direct copy (in part or in whole) of another class member's assignment or work to turn in as one's own work. - Direct copy (in part or in whole) of a solution provided by anyone outside of our class. This may include (but is not limited to) previous students, tutors, or solutions gathered from websites like Chegg. - Posting on a website, like Chegg, to ask for a solution to an assignment or exam in order to copy the solution (in part or in whole) for submission. - Viewing solutions on a website, like Chegg, in order to submit solutions (in part or in whole) as one's own work for assignments or course exams. - Posting solutions or exam questions to social media, group chat, a website (like Chegg) or other communication means to provide the questions or solutions for others in the course. - Collaboration in ANY WAY during an exam - Working on an exam outside of the proctored testing room - Working on an exam after time is called - Copying code and submitting it as one's own work (in part or in whole) for dropbox assignments, without recognizing the original code developer. We take inappropriate or unethical work in this course VERY seriously. Inappropriate or unethical work is unfair to those students in the course who follow academic integrity guidelines. It also shows a lack of character in regards to future practice in the engineering profession. EF faculty and staff are dedicated to ensuring integrity of all work conducted throughout our courses and will pursue all means necessary, in partnership with the Tickle College of Engineering, the Dean of Students, and the Office of Student Conduct and Community Standards to ensure an equitable learning environment. Documentation - When you copy code from an external source, either a snippet or an entire module, you must credit the source. For this course, you must cite the URL. If you adapted the code, you should indicate “Adapted from:” or “Based on” so it is understood that you modified code that you did not develop. For team projects you are encouraged to view examples from other sources (MATHWORKS File Exchange, help center, etc) but you MUST document the author/source of parts of the code that are not your own and understand what each line is doing. Code will be checked for uniqueness. Examples of uniqueness include commands utilized, sequences of commands, variable names, and comments. When working alone or collectively on an individual assignment, the expectation is that your code is unique. Submitted code will be checked against code from this and previous semesters. Submitted code that does not appear to be original, does not have a properly documented source, or is not functional will be scrutinized via websearch for plagiarism. Any violations of the above guidelines will be considered a violation of the University's honor code and will be dealt with accordingly. ## AI Policy ### Limited Use When Designated with Disclosure In this course, students are only permitted to use Generative AI Tools such as ChatGPT for specific assignments as explicitly designated by the instructors. ### Disclosure and Attribution When use is explicitly granted, students must disclose any use of AI-generated material. Failure to disclose this use will be considered academic misconduct and could incur a significant penalty. As always, students must properly use attributions, including in-text citations, quotations, and references. A student should include the following statement in assignments to indicate use of a Generative AI Tool: “The author(s) would like to acknowledge the use of [Generative AI Tool Name], a language model developed by [Generative AI Tool Provider], in the preparation of this assignment. The [Generative AI Tool Name] was used in the following way(s) in this assignment [e.g., brainstorming, grammatical correction, citation, which portion of the assignment].” ## Digital Learning Policy Technology needs to be utilized in an appropriate manner. The following guidelines should be followed: - Be Respectful and Professional. You cannot use technology in a way that is distracting or harmful to others. This includes viewing content that does not pertain to that day's work as well as any type of behavior that is inappropriate or harmful to others in the class. There is a zero tolerance policy in our course as well as at UTK for any behavior that can be interpreted as harassment or bullying. Respect the diverse backgrounds of your classmates. Personal attacks, offensive language, and hateful comments, including those based on based on disability, language, race, age, religion, gender, sexual orientation, and national origin, will not be tolerated. - Follow device use regulations during exams. During exams you cannot use a device to communicate with others except instructors. Allowable computer tools are specified during exams. Calculators and non-sanctioned software and tools that circumvent the required solution method are prohibited. ## Course Material Copyright The instructors of this class own the copyright to the syllabus, handouts, assignments, and exams associated with the class. All presentations developed by the instructors, as well as the instructors' lectures, are also protected by copyright, whether these presentations are delivered live in-class, shared through Zoom or other videoconference platforms, or uploaded to a web site. Sharing any of this material without the written permission of the instructor is a violation of copyright law, and is therefore also a violation of the University’s policy on acceptable use of information technology resources (UT policy number IT0110). That policy states that students will not commit copyright infringement, “including file sharing of video, audio, or data without permission from the copyright owner” and that file sharing is a violation of the university’s student code of conduct. All such violations will be reported to the Office of Student Conduct and Community Standards. ## University Civility Statement Civility is genuine respect and regard for others: politeness, consideration, tact, good manners, graciousness, cordiality, affability, amiability and courteousness. Civility enhances academic freedom and integrity, and is a prerequisite to the free exchange of ideas and knowledge in the learning community. Our community consists of students, faculty, staff, alumni, and campus visitors. Community members affect each other’s well-being and have a shared interest in creating and sustaining an environment where all community members and their points of view are valued and respected. Affirming the value of each member of the university community, the campus asks that all its members adhere to the principles of civility and community adopted by the campus: http://civility.utk.edu/. ## Students with Disabilities The University of Tennessee, Knoxville, is committed to providing an inclusive learning environment for all students. If you anticipate or experience a barrier in this course due to a chronic health condition, a learning, hearing, neurological, mental health, vision, physical, or other kind of disability, or a temporary injury, you are encouraged to contact Student Disability Services (https://sds.utk.edu) (SDS) at 865-974-6087 or sds@utk.edu. An SDS Coordinator will meet with you to develop a plan to ensure you have equitable access to this course. If you are already registered with SDS, please contact your instructor to discuss implementing accommodations included in your course access letter. ## Accessibility Policy The University of Tennessee, Knoxville, provides reasonable accommodations for individual students with disabilities through its office of Student Disability Services Links to an external site.. The university is also committed to making information and materials accessible, when possible. Resources and assistance to support these efforts can be found at http://accessibility.utk.edu/. ## Wellness The Center for Health Education and Wellness empowers all Volunteers to thrive by cultivating personal and community well-being. The Center can answer questions about general wellness, substance use, sexual health, healthy relationships, and sexual assault prevention. The Student Counseling Center is the university’s primary facility for personal counseling, psychotherapy, and psychological outreach and consultation services. Any student who has difficulty affording hygiene products, groceries, or accessing sufficient food to eat every day is urged to contact the Big Orange Pantry (https://dos.utk.edu/big-orange-pantry/) for support. The Big Orange Pantry, located in Greve Hall, is a free resource for all students, faculty, and staff, no matter how great or small their need is. Students who need emergency financial assistance can also request funding from the Student Emergency Fund (https://dos.utk.edu/student-emergency-fund/). Students who are experiencing non-academic difficulty or distress and need assistance should call 974-HELP or submit an online referral (https://dos.utk.edu/974-help/). The 974-HELP team specializes in aligning resources and support to students experiencing mental health distress. ## Emergency Alert System The University of Tennessee, Knoxville, is committed to providing a safe environment for learning and working. When you are alerted to an emergency, please take appropriate action. Learn more about what to do in an emergency and sign up for UT Alerts. Check the emergency posters near exits and elevators for building specific information. In the event of an emergency, course schedules and assignments may be subject to change. If changes to graded activities are required, reasonable adjustments will be made, and you will be responsible for meeting revised deadlines. ## COVID-19 Guidelines CDC guidance recognizes the changing dynamics of living in a world with COVID-19. It rates COVID-19 community levels as low, medium, and high, with recommendations at each level about the use of masks and other precautions. At all levels of community spread, staying up-to-date with vaccination is the best way to protect yourself from serious illness and to limit the spread of COVID-19. Wearing a mask is always an option for any individual who chooses to do so, and the CDC recommends that those with high risk of severe illness talk with their health care providers. If you are sick, please stay in, avoid being around others as much as possible, and contact your health care provider for any symptoms that are worsening, moderate to severe, or concerning to you. For more information about vaccination or to self-report an illness and receive support, visit https://studenthealth.utk.edu/CommunityHealth. For more information about COVID-19, visit https://studenthealth.utk.edu/covid-19. ## Campus Syllabus The Campus syllabus provides you important information that applies to all UTK courses: https://utk.instructure.com/courses/55015/pages/ut-knoxville-campus-syllabus-%7C-2022-2023 ## Course Objectives View your progress on these on the "My Power Meter" menu item on the Course Website.

We will practice the following skills this semester. Exposing you to the many techniques and capabilities in MATLAB will enhance your ability to use computing tools and languages to solve engineering problems you encounter in your future academic and professional career.

  1. Build programs to solve engineering-related problems
    Use programming operations to calculate solutions
    Determine better and more accurate solutions
    Perform and evaluate algebraic and trigonometric operations using built-in functions
    Assign and manage variables
    Manipulate arrays, implement indexing, understand dimensions
    Generate linearly spaced vectors
    Create and execute a script
    Create and evaluate x-y plots suitable for technical presentation
    Create, test, and execute user-defined functions and local functions
    Apply input validation to functions
    Distinguish between the different MATLAB ‘data types’
    Create and manipulate Structures and Character arrays
    Perform and evaluate relational and logical operations
    Load, analyze, and manipulate images
    Obtain and utilize user input
    Manage and format text output
    Import and export numeric data using other filetypes (e.g. .csv, .xls, and .txt)
    Perform curve fits and interpolation
    Perform numeric and symbolic differentiation and integration
    Solve non-linear systems of equations
    Solve numeric ODE’s
    Build a block diagram in Simulink to perform an operation
    Perform numerical optimization
    Analyze Signals

  2. Apply common MATLAB approaches and conventions and understand common programming practices when creating and evaluating programs
    Note: To meet this objective, you are required to submit WORKING programs on your exams.
    Achieve competency and familiarity with common MATLAB features and methods
    Recognize common programming elements across multiple computer languages
    Utilize debugging techniques: isolate and test sections of a program, suppress or display intermediate operations, write debuggable code, and trace variables to locate errors
    Utilize proper techniques and conventions to manipulate data and name files and variables
    Employ effective and consistent commenting and logical organization to communicate your objective, method, and results
    Implement basic techniques to increase code efficiency: reuse components where possible, remove redundancy (DIE: duplication is evil), and anticipate errors to minimize risk for error

  3. Manipulate data and present solutions in programming design projects
    Demonstrate initiative to self-learn how to use computer based tools/devices
    Demonstrate innovation and creativity in your approach to solve complex problems
    Implement your coding skills to acquire sensor data and program an autonomous response
    Deliver a successful product
    Demonstrate successful teamwork
    Demonstrate effective technical communication to present project data and solutions
## Why be an engineer? You'll have the power to make a difference! An engineer is a person who uses special knowledge of math, science, and the principles and methods of engineering analysis, acquired by engineering education and engineering experience, to solve technical problems that are important to society. ## Why learn programming? Engineering problem solving requires a methodical, detail oriented, tenacious approach using available resources and limited by constraints to determinate the best solution. This is a process you'll need to repeat many times as a successful practicing engineer. We do not expect you to have significant programming experience when you start this class, and we do not expect you to be an expert programmer at the end of this class. However, the ability to write, understand, and manipulate code is a skill required by employers that hire engineers. Using a computer to solve a problem requires the programmer (you) to
  • Understand how to solve the problem
  • Break the problem into very small parts
  • Have a problem solving plan (pseudocode, flowchart, etc)
  • Be able to find errors (bugs)
  • Be patient
  • Be persistent
WARNING: It rarely works the first time! When you first start, you’ll very quickly run up against this experience: you’ve set up everything the way you’re supposed to, you’ve checked and re-checked it, and it still doesn’t work. You don’t know how to fix it. You might be tempted to give up. But this experience is common for everyone, it will happen to you as a beginner, but it will also happen to you as an experienced programmer. Either way, things are going wrong for a logical and discoverable reason, and the problem can be fixed and the goal can be accomplished with patience. ## Why learn MATLAB?
  • Because of its many strengths, this university and most top engineering schools have selected MATLAB as the computer language to be taught to engineering students.
  • You may find you will need MATLAB in many of your engineering courses at UT.
  • MATLAB can be used to solve a wide range of problems, with the ability to rapidly prototype and visualize data. We will attempt to cover several specific capabilities of MATLAB (robotics, data analysis and acquisition, solving differential equations, optimization, image processing, machine learning databases, etc.).
  • MATLAB includes an extensive amount of built-in toolboxes and functions, without the need to install extra packages
  • MATLAB is easy to learn as a beginner as a gateway to other languages with its robust IDE and live help as you type
  • Even if MATLAB is not your favorite, this course will help you:
    1. Practice problem solving and thinking in a logical, methodical, and detailed manner
    2. Practice using computing tools to solve complex and constrained engineering problems more efficiently.
    3. Gain coding experience to facilitate your ability to learn and apply other coding languages more readily.
In this course, in your studies, and in your engineering career you'll learn and use many languages. The key skill is how to program. Once you get a feel for it, you should be able to pick up new languages quickly.