Spring 2022
-->

# syllabus

## info

A hands-on exploration of interactive electronics with a programmable microcontroller and various sensors, motors, lights and switches in order to see the basics of circuits, coding, and the techniques behind the DIY (Do It Yourself) “Maker” culture. We’ll first use the recipes in the Sparkfun Inventor’s kit as a starting point to learn about “for” loops, “if” statements, volts, amps, resistance, and then build on those examples to create your own project. No previous experience needed. (Warning: this activity may be habit forming.)

## Learning Outcomes

In this course you will learn to

• build simple electronic devices including a robot car
• understand the basics of circuits including voltage, current, and resistance
• practice the basics of programming, including loops and conditionals

## schedule

We'll be following along the recipes in the "Experimenter's Guide", doing one section every two weeks, and leaving time at the end for a final project of your own design. And along the way we'll and some of the basics of circuits (volts, amps, resistance and all that) and programming ("if" statements, "for" loops, and all that).

 -- calendar -- week
Feb   15       00       getting started
22       01       light A
Mar   01       02       light B
Mar   08       03       sound A
15       04       sound B
22       05       motion A
29       06       motion B
Apr            07
12       08       display A
19       09       display B
26       10       robot A
May   03       11       robot B
10       12       final project - your design
17       13       ...
24       14       ...


## format

The course will consist of

• Once per weekly class/lab meetings
• a short lab write-up every other week
• One end of semester student chosen project
• Regular tutoring and office hours discuss the material, ask questions, and get help in zoom meetings and slack conversations.
• A slack channel where you can ask questions.

As a 2 credit course, you should expect to spend roughly 6 hours of time per week on this course, including class time.

• First and foremost, you are expected to act as adults in this class, behaving responsibly and fostering a safe and welcoming environment for everyone.
• You will participate in all required activities. More than two absences (excused or unexcused) will jeopardize your standing in the course.
• You will be an active participant and collaborator in group sessions.
• You will submit all assigned work by their due dates. Late work is usually accepted for reduced credit; however, if too much of the work is late or it is extremely late, it may not be accepted.
• You will seek out help promptly if you are struggling or falling behind.
• Work submitted will be your own, with appropriate references to sources and resources used. Academic dishonesty will not be tolerated, and will be passed along to the appropriate administrative or judicial entity.

A note on attribution, code, and the culture of programming...

The "culture" surrounding programming is one that encourages sharing and collaboration. Open-source software, online communities such as StackOverflow, GitHub/Gist, and the fast-paced nature of the technology world have all led to a vast collection of places where programmers can quickly and easily get help in solving common and not-so-common problems. This is a fantastic and vital part of being a 'programmer', and I encourage you to use and contribute to these communities.

This being said, there are a few important guidelines that MUST be followed in order to strike a balance between collaboration and academic integrity:

• You must provide attribution for ALL ideas you have consumed from sources outside of your own scope of knowledge. This may be done in a variety of ways, but must be noted explicitly - either via code comments, a note at the time of submission, or via some other mechanism that clearly indicates:
• What part of your work, specifically, has been influenced by an outside source, and how.
• What the outside source was - whether another student, a web site, other code, etc.
• Outside contributions to your work must not comprise a substantial portion of the solution to the problem or module you are working on. Your work must be your own and your Google or interpersonal skills, no matter how sophisticated, do not equate to mastery of course material!
• If you provide assistance to others (in individual projects), or other groups (in group work), you must share this information with the instructor. Helping your fellow students learn is an essential and valuable part of the learning experience. However, providing "too much" help by providing answers or clues that substantially undermine the challenge and learning objectives of an assignment is not helpful and, in fact, a violation of academic integrity. Therefore:
• If you assist another student in class, notify the instructor via email or some other mechanism, indicating who was helped, when, and what the nature of the help was.
• It is also expected (per the 'attribution' paragraph above), that the student who was assisted will also indicate that they were assisted.
• Those helping or being helped should feel secure in the knowledge that the exchange of assistance will not negatively or positively impact their grade on the assignment or work in question.

Here's an example of quoting your sources : a lot of the preceding language in this syllabus is from Andrew Cencini's Fall 2019 edition of this course. ("Hi Andrew!")

The overall course grade will be the average of

• a participation (mainly attendence) grade
• a single homework grade for the semester

The homework grade is based on the number of assignments (lab writeups) completed and submitted on time.

Project grades will be based on

• the quality and clarity of your code,
• documentation of your work - wiring diagrams, illustrations, etc
• evidence of an appropriate amount of work spent on the project.

If circumstances outside of your control - illness, technology issues, your dog ate your homework - get in the way, please do let me know, and we will try to work things out.