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 electronics and microcontrollers. 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, and rapid prototyping techniques (such as 3D printing and laser cutting). There will be in-class experiments, weekly homework/quizzes, a midterm, and a final project. This course has a required lab section.
Prerequisites: COMPSCI187 (or CICS210) and Basic Math Skills (R1). This course counts towards the CS lab science requirement. 4 credits.
By the end of the course, students should be able to:
Explain fundamental concepts in basic electronics, including voltage, current, resistance, Ohm's law, and how to use basic electronic components such as resistors, capacitors, diodes, and transistors in simple circuits.
Develop a solid grasp of Arduino programming principles, including digital and analog input/output, digital-analog conversion, and serial communication. They will be able to create Arduino-based projects using the ESP32 Microcontroller.
Demonstrate proficiency in various circuit assembly and rapid prototyping techniques though assembling electronic components in circuits, soldering (perf board and surface mount), 3D printing, designing 3D models with TinkerCad, and utilizing laser cutting.
Collaborate in groups to design and build a practical hardware project that can interact with the physical world through a range of sensors and actuators.
Lectures: Mon/Wed 1:00pm-2:15pm @ LGRC104 (CICS MakerSpace)
Instructor: Md Farhan Tasnim Oshim (Farhan)
Lab: Friday 10:10am-12:10pm @ LGRC A104 (CICS MakerSpace)
TA: Eduardo Calle Ortiz
UCAs: Enver Amboy, Roberto Rubio Fernandez
Office Hours:
Farhan’s office hours
30 min after each lecture (or longer if there are sufficient questions)
Zoom upon request (at least a day in advance)
TA’s office hours
Wednesdays from 10:00 AM to 12:00 PM.
Additional office hours available upon request.
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.
In-class exercises are due by 11pm the same day of the lecture.
Homework is released each Friday and due by 11pm the following Friday.
All Labs are on Mondays, and each lab report is due by 11pm on Wednesdays of the same week.
All in-class exercises, homework, and lab reports are submitted to and graded in Gradescope.
The topics of weekly lectures are listed below. Lecture slides are all posted in Piazza.
Week 1: Introduction and Electronics 1. Topics: voltage, current, power, batteries, resistors, Ohm’s law, KCL and KVL laws, potentiometer, voltage divider, how to use a multimeter, how to use a breadboard.
Week 2: Electronics 2. Topics: capacitors, RC charging, principles of capacitive sensing, switch, inductors, solenoids, relays.
Week 3: Electronics 3. Topics: semiconductors, diodes, LEDs, transistors, transistor applications.
Week 4: Arduino Programming. Topics: introduction to Arduino programming, the ESP32 microcontroller, principles of digital input/output, analog input/output, principles of digital-analog conversion (ADC), Serial input/output.
Week 5: More on Arduino Programming. Topics: sound theory, buzzer and tone generation, color theory, color LED strip and matrix, OLED display
Week 6: Sensing the Physical World. Topics: principles of photoresistor and light sensor, thermistor and temperature sensor, microphone sensor, distance sensor, PIR motion sensor, tilt sensor, water sensor, accelerometer, DIY sensors.
Week 7: Responding to the Physical world. Topics: motor, servo, muscle wire, heat wire, speaker.
Week 8: Arduino projects. Topics: introducing several practical Arduino projects that combine sensors and actuators, such as night light (darkness-triggered light), temperature-triggered alarms, thermostat, automatic plant watering system, automatic garage door opener.
Week 9: Project Pitching, Midterm. Topics: form project groups (2-person teams), provide example project topics, in-class presentation of project proposals.
Week 10: Circuit Design and Assembly Techniques. Topics: creating a simple circuit board using the EagleCAD software, printed circuit board, home PCB method, soldering, perf board, surface mount assembly (solder pasting, pick and place, reflow).
Week 11: Wireless Communication. Topics: principles of signal modulation, radio-frequency communication using RF transmitter and receiver, basics of WiFi communication using the ESP8266 microcontroller, writing a simple embedded webserver.
Week 12: Fabrication and Rapid Prototyping Techniques. Topics: principles of 3D printing, designing 3D models using TinkerCad, constructive solid geometry (CSG), laser cutting, CNC, injection molding, vacuum forming.
Week 13: Project Advising and Additional Topics. Topics: advising students on their final projects, additional topics such as Raspberry Pi, Internet of Things (IoT).
The course materials are self-contained and we do NOT require any textbook. However, we provide a list of recommended readings as listed below:
Learn Electronics with Arduino: An Illustrated Beginner's Guide: beginner's guide to physical computing using Arduino.
Practical Arduino: Cool Projects for Open Source Hardware: intermediate-level Arduino programming guide with practical projects.
Practical Electronics for Inventors (4th edition): advanced-level and in-depth coverage of electronic components, circuit designs.
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.
Gradescope is used for managing and grading all submissions, including exams. Gradescope allows us to provide fast and accurate feedback on your work, and allows the TA and grader to parallelize grading tasks and use a standard rubric for grading fairness. This also frees us from handing back papers in class! Re-grade requests can be easily submitted and handled in Gradescope as well.
Piazza is used to release course materials and manage discussions for this course. All questions and answers should also be posted in Piazza. You are responsible for visiting Piazza frequently to see any announcements, and updates, or subscribe to email notifications. Please check Piazza features to get an understanding of how to use it. Please observe the following guidelines:
You should use Piazza to ask technical questions and get advice on projects. But you may not make public posts that contain code or solutions, either in questions or answers to others’ questions.
If your post must contain code or solutions, make it a private post, which is only visible to the instructor and TA.
Your question may already have been asked by someone. Before posting, make use of the search feature to see if your questions have already been answered. You should only post after thinking through the problem and clearly articulating your question.
You are encouraged to help other students with answering questions.
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)
Every student will be given a toolbag to be used throughout the semester. This so-called Makerbag contains essential materials and supplies for the course, including circuit boards, cables, multimeter, electronic components (e.g. resistors, capacitors, inductors, LEDs, batteries), basic tools (e.g. screwdrivers). 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.
Unlike other courses, we don't use Canvas for this course.
Lecture attendance and lab attendance are required. Each in-class exercise contains attendance credit. There will be in-class experiments and exercises in most lectures. There will be several assignments, some written, some programming; weekly labs; one midterm and one final project.
In-class exercises (5%)
Homework (20%)
Labs (25%)
Midterm (25%)
Final project (25%)
All submissions are due in Gradescope by 11pm of the designated due date. To allow for sufficient time to upload, we set Gradescope to accept submission by 11:59pm.
Late submissions beyond the deadline is NOT accepted for any assessment component, except if you have DS accomodations or have a documented excuse such as a doctor's note. 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:
You are an adult and have the ability to check and verify your work has been received properly.
You are capable of using DropBox, Google Drive, or some other backup software to ensure that your work is not lost in the event of a computer failure.
You have a back-up plan in place in the event that your computer fails or your Internet connection is unavailable. Make sure you have a plan B and C if your computer crashes or your Internet is unavailable. This is your responsibility.
To cope with unexpected situations truly beyond your control, when calculating your final grade, at the end of the semester we will drop
Your lowest assignment grade
The lowest lab grade
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. For more information, consult the Disability Services website at http://www.umass.edu/disability/
The class is named "MAKE," embodying the maker movement's motto of "Everyone can make" and promoting the democratization of the manufacturing process. This class embraces and values everyone, regardless of age, background, citizenship, disability, sex, education, ethnicity, family status, gender, gender identity, geographical origin, language, military experience, political views, race, religion, sexual orientation, socioeconomic status, and work experience. Every individual in this course is deserving of respect and dignity. My primary aim is to support your understanding of the subject matter in a way that is meaningful to you, fostering an enjoyable and empowering learning experience. Please remember that we all enter this class with varying backgrounds. Some may be new to hardware courses, while others bring prior experience. We are all on this learning journey together, and there are no "dumb" questions. This class involves working together on labs and projects, so it's important that we all treat each other with respect and offer assistance to one another as we learn.
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 a 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. If in doubt about the ethics of any particular action, look at the university guidelines.
This course is interactive, emphasizing active participation in class and labs to fulfill assignment tasks. The goal is to acquire skills through hands-on experience. You are not allowed to use generative AI tools to complete assignments in this course. All content you submit is ultimately your responsibility, therefore, if discovered usage of such tools, it will be treated as an academic dishonesty case.
Everyone has the right to be addressed by the name and pronouns that they use for themselves. You can indicate your preferred/chosen first name and pronouns on SPIRE, which appear on class rosters. I am committed to ensuring that I address you with your chosen name and pronouns. Please let me know what name and pronouns I should use for you if they are not on the roster. Please remember: A student’s chosen name and pronouns are to be respected at all times in the classroom.
To learn more read: Intro Handout on Pronouns
https://www.umass.edu/stonewall/sites/default/files/pronouns_intro.pdf
UMass is committed to fostering a safe learning environment by responding promptly and effectively to complaints of all kinds of sexual misconduct. If you have been the victim of sexual violence, gender discrimination, or sexual harassment, the university can provide you with a variety of support resources and accommodations.
If you experience or witness sexual misconduct and wish to report the incident, please contact the UMass Amherst Equal Opportunity (EO) Office (413-545-3464 | equalopportunity@admin.umass.edu) to request an intake meeting with EO staff. Members of the CICS community can also contact Erika Lynn Dawson Head, director of diversity and inclusive community development (erikahead@cics.umass.edu | 860-770-4770).
There are also a range of resources on campus, including:
UMass Libraries: https://www.library.umass.edu/
Writing Center - http://www.umass.edu/writingcenter
Learning Resource Center - http://www.umass.edu/lrc
Assistive Technology Center - https://www.umass.edu/it/assistive
Disability Services - https://www.umass.edu/disability/
Student Success - https://www.umass.edu/studentsuccess/
Center for Counseling and Psychological Health (CCPH) http://www.umass.edu/counseling
English as a Second Language (ESL) Program - http://www.umass.edu/esl
CMASS Success Coach Program - https://www.umass.edu/cmass/get-involved/success/academic-support
Single Stop Resources - https://www.umass.edu/studentlife/single-stop