Inspired by the Maker movement, this course provides a hands-on introduction to physical computing: techniques for sensing and responding to the physical world using computers. The main focus is on learning principles of electronic components and circuits, embedded programming, product design, and rapid prototyping through hands-on learning. The course will encourage and empower students to invent, design, and build practical hardware projects that can interact with the physical world.
Specific topics: introduction to basic electronics and circuit design, microcontroller programming using Arduinos, sensing and responding to the physical world, rapid prototyping techniques (such as 3D printing and laser cutting), soft circuits and wearable electronics. There will be in-class experiments, weekly homework/quizzes, discussion sections, a midterm, and a final project. This course has a required lab section.
Prerequisites: COMPSCI187 (or equivalent experience) and Basic Math Skills (R1). This course counts towards the CS lab science requirement. 4 credits.
You should consult the UMass academic calendar to make sure you are aware of important dates and events. The following are the weekly topics that will be covered during this course.
The topics of each week's lectures are listed below. Lecture slides are all posted in Piazza.
The course materials are self-contained and we do NOT require any textbook. However, we provide a list of recommended readings as listed below:
This course will use a number of web-based services. We will create accounts for you, but it is your responsibility to log in and check that everything has been set up correctly.
Piazza is an online course management system. It will be used as the main hub for communication in this course. Lecture slides, labs and solutions are all posted in Piazza. All questions and answers should also be posted in Piazza. You are responsible for visiting Piazza frequently to see updates, or subscribe to email notifications. Please check Piazza features to get an understanding of how to use it. Please observe the following guidelines:
The course staff (instructors and TAs) will monitor Piazza and answer your questions in a timely manner. If a question has already been answered in a previous post we may not respond to you right away (hence it’s important to learn to use the ‘search’ feature).
Moodle is used for tracking your grades only. Course materials are only posted in Piazza and not in Moodle.
Gradescope is used for managing and grading all submissions, including exam. Gradescope allows us to provide fast and accuracy feedback on your work, and allows the TA and grader to parallelize grading tasks and use a standard rubric for grading faireness. This also frees us from handing back papers in class! Regrading requests can be easily submitted and handled in Gradescope.
Every student will be given a toolbag to be used throughout the semester. The toolbag contains essential materials and supplies for the course, including circuit boards, cables, Arduinos, electronic components (e.g. resistors, capacitors, inductors, LEDs, batteries), basic tools (e.g. screwdrivers, tweezers, pliers). It is your responsibility to bring the toolbag to class and lab each time, and make sure you don't lose or damage it. If the toolbag is lost or damaged, you will be asked to cover its full cost.
Because the lectures and labs are taught in a classroom with no desktop computers, you must bring a laptop to each lecture and lab, in order to complete the Arduino programming exercises in class and lab. If you don't have a laptop, or your laptop stopped working, please contact the instructor immediately to arrange for a loaner laptop.
Lecture attendance and lab attendance are required. There will be in-class experiments and exercises every lecture. There will be several assignments, some written, some programming; weekly labs; one midterm and one final project.
Late submissions is NOT accepted for any assessment component, with the one exception noted below. It is your responsibility for maintaining your own schedule and being prompt with your submissions. We expect that you become familiar with the course submission software and verify that your submission has been properly uploaded. We will NOT accept late submissions due to lack of checking on this. We assume:
To cope with unexpected situations truly beyond your control, when calculating your final grade, we will drop your lowest assignment grade, lowest lab grade, and two lowest in-class exercise grades.
The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.
Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent.
Programming assignments present specific academic honesty issues. Programming is a creative activity, but also one where collaboration is both possible and desired. Students may work together on programming projects as long as two principles are observed: submitted programs must be the individual’s own work with respect to presentation, and all sources of help other than course staff must be declared. Students may determine the essential ideas of a solution together, but should write the actual code separately. Copying and pasting another student’s code is a violation of academic honesty, and course staff will endeavor to detect this by any means including automated similarity analysis of submitted assignments.