%INCLUDE{CSC310ForSyllabus}% ---++ Details for Fall 2020 * Topic: Internet of Things * Professor: Pete De Bonte * Office TBD * Class Time: 12:30-13:50 TR * Class Location: SB 025 * Textbook: None ---++ Description for Fall 2020 This course will introduce embedded application development, and the course topic will ultimately guide us toward a few particular facets of embedded systems: 1 Networking 1 Telecontrol 1 Telemetry [not actually covered, as the students limited programming experience hindered their project pace.] ; Processor : With the understanding that Java is the enrolled students' preferred programming language, an applications-grade processor has been selected to support a JVM.<br /> ; Board : Desiring to provide students with reusable experiences, a Single-Board Computer (SBC) from the [[https://www.raspberrypi.org/][Raspberry Pi]] series has been selected, as they are likely the most popular SBCs at this time. ---+++ Course Goals * Gain a working knowledge of common microcontroller peripherals * Greater exposure to industry best-practice / Application Lifecycle Management ---++ Course Content ---+++ Policies ---+++ Acceptable Work * [[AcceptableWork][Integrity]] * If any 3rd-party code is used in a project, its permission/license shall be documented in a LICENCE[.md] file. * Code lacking an explicit license and/or written permission statement shall not be used. * Additional documentation shall be submitted with any project for: 1 Attribution requirements: a plan for compliance, considering limitations of the embedded system 1 Multiple FOSS licenses: an explanation of their compatibility ---+++ Submissions Details in any particular CANVAS Assignment will take precedence; however, the following are typical: * Projects shall be submitted via !GitHub. * Work is typically 1 Due before class on the date stated in the assignment. 1 Late, yet still acceptable for half credit, up to the following class session. * As each project segment will typically build on the next, they must be completed, even for zero credit, before starting the next segment. That is particularly important for class projects, in which tardiness would affect your classmates. ---+++ Assignments [[https://bethelcollege.instructure.com/courses/14113/assignments][See the CANVAS Assignments page for this course]] (In general, any incomplete classwork should be completed before the next class, to avoid holding back your classmates) ---+++ Grades 1 First half of the course * more conceptual, so grades were dominated by quizzes; * however, I did give some credit for completing classwork (e.g. Raspberry Pi and GitHub setup). 1 Second half, as the project work has commenced, I expect to instead focus grading on project completion and quality. ---+++ Schedule | *Tuesday* | *Thursday* | | 8/18: Overview of Embedded Systems | 8/20: Version Control/Git | | 8/25: [[Wikipedia:Electrostatic_discharge][ESD]], Loading Raspbian | 8/27: jGRASP/Java on a Pi | | 9/1: First quiz, Ohm's law, LEDs, Multimeters, GPIO | 9/3: Quiz #2, Review quizzes, Diode measurements, ssh-keygen for Git | | 9/8: Quiz #3 (#1 Redux), push to Git | 9/10: !Pi4J v2.52 (the hidden Raspberry Pi 4 update) installed & verified | | 9/15: [[https://lowvoltagelabs.com/products/pi-traffic/][ Pi Traffic Light]] class #1: Hardware Verification, !GitHub Repo, Initial Design Discussion | 9/17: Pi Traffic Light class #2: Introduction to [[Wikipedia:Test-driven_development][TDD]]/Unit Testing | | 9/22: Pi Traffic Light class #3:<br><ul><li>Refine API<li> Clarify TDD</ul> | 9/24: Pi Traffic Light class #4: Discuss Unit Test Brainstorming Results | | 9/29: Pi Traffic Light class #5:<br><ul></li>Update JUnit<li>Study Java interfaces</ul> | 10/1: Pi Traffic Light class #6: Extending an abstract class for instantiation | | 10/3: | '''(10/5: Midterm grades due before midnight)''' | | 10/6: Pi Traffic Light class #7:<br><ul><li>Coding JUnit Tests<li>Git Forks</ul> | 10/8: Pi Traffic Light class #8:<br><ul><li>Q&A for JUnit and Git<li>Driver Project Overview</ul> | |10/13: Pi Traffic Light class #9:<br><ul><li>Updating Forks<li>Timer Options with Pi4J</ul> |10/15: Pi Traffic Light class #10: GPI and Interrupts | |10/20: Networking class #1: Device Firmware Upgrade (DFU) |10/22: Networking class #2: Internet Protocol | |10/27: [[https://bethelcollege.instructure.com/courses/14113/assignments/180063][Install and Configure Checkstyle for jGRASP]] |10/29: Networking class #3: Java Sockets and OutputStream | | 11/3: Networking class #4: Java Sockets and InputStream, with HTTP | 11/5: Networking class #5: Using a Packet Analyzer (Wireshark) for HTTP & ICMP | |11/10: Networking class #6:<br><ul><li>Suggest HTTP as our class network protocol, as context for studying [[Wikipedia:Constrained_Application_Protocol][CoAP]] in the future.<li>Discuss my Telecommand API proposal and 2nd GPI trigger requirement<li>Q&A for project programming assignments</ul> |11/12: Project programming help session | |11/17: Project programming help session | 11/19:<br><ul><li>Project programming help session<li>Project presentations (demonstrate functionality)</ul> | | Final Exam [[https://my.betheluniversity.edu/ICS/icsfs/Revised_FA2020_Finals_Schedule.pdf?target=dacba94a-8760-4bf1-89af-7db12fa7ff23][ 11/21: 15:30-17:00] (CAVEAT: Not a class day!) | 11/26: Thanksgiving Break | ---++Topics for a Part-Ⅱ course? * UDP broadcast and multicast * Security audit, if we have any cybersecurity majors in the class * [[https://pi4j.com/1.2/apidocs/com/pi4j/io/wdt/impl/WDTimerImpl.html][ Watchdog Timer] * [[Wikipedia:List_of_network_buses][Serial Busses]] (I²C and SPI) * Analog class #1: ADCs (Telemetry/Sensors) * Analog class #2: DAC (sound via javax.sound.sampled?) * !CoAP, branching from our previous HTTP study * Publishing/Database server (e.g. [[http://sonsetlink.org/ SonSet Link]], [[Wikipedia:OMA_LWM2M][OMA Lightwight M2M]]/CoAP) * [[https://www.iotforall.com/what-is-iot-device-management][ Device Management]] * Bluetooth? * RFID? * Relays and/or FETs? * Motors can also be inputs (generator or poll counting) * Graphing results on a PC? * Project [[Wikipedia:Automatic_meter_reading][Automatic Meter Reading (AMR)]]: strategies in use, include * Handheld (aka "walk-by" meter reading) * Satellite ⇒ needn't make "periodic trips to each physical location" * Marketing? Name your system, and/or maybe class vote on ideas for the class network? * ADC Project * make a software VOM or even a scope * Vote on the best * Then have the class collaborate on improvements (comply with the original student's license: e.g. attribution if requested) ---+++ Services ADA Statement for Syllabi: The Americans with Disabilities Act (ADA) is a law which provides civil rights protection for people with disabilities. Bethel University, in compliance with equal access laws, requests that students with disabilities seeking to acquire accommodations make an appointment with the Center for Academic SuccessDisability Services. It is located in the Miller-Moore Academic Center, 033. You may also phone 574-807-7460 or email rachel.kennedy@betheluniversity.edu for an appointment. %INCLUDE{Covid2020FA}%
This topic: CenterForComputing
>
WebHome
>
Syllabi
>
CSC310F2020Syllabus
Topic revision: r2 - 2021-10-15 - cathybareiss
Copyright © 2008-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback