General Course Description
Hardware Programming (CTI-3B3)
Course Description
The Hardware Programming course is conducted in the 5th semester. This course requires prerequisite courses, namely Digital Systems and Computer Organization and Architecture. The Hardware Programming course provides students with an understanding of hardware architecture, hardware usage, communication protocols, sensing, controlling, and hardware assembly. Through this course, students are required to actively participate both inside and outside the classroom (laboratory classes) using an independent small group model (2-4 people). The course is conducted over 16 meetings using various methods, discussions, presentations, individual assignments, paper tracing, and major projects.
Expected Learning Outcomes
CLO-1 Students are able to explain programming concepts, programming language structure, and hardware programming models (C4, P3, A3)
CLO-2 Students are able to apply the use of hardware design platforms in building hardware design prototypes (C5, P4, A4)
CLO-3 Students are able to apply digital and analog sensing programming as well as digital and analog actuator programming (C5, P4, A4)
CLO-4 Students are able to apply hardware communication protocol programming (C5, P4, A4)
Lecture References
Bayle, Julien. 2013. C Programming for Arduino. Packt Publishing: Birmingham, UK.
Purdum, Jack. 2015. Beginning C for Arduino: Learn C Programming for the Arduino (1st ed.). Apress: USA.
Amariei, Cornel. 2015. Arduino Development Cookbook. Packt Publishing: Birmingham, UK.
Fritzing Community. 2013. Open-source software for documenting prototypes, learning interactive electronics, and PCB production.
Main Topics
Introduction to Hardware Programming
Hardware Programming Language Structure
Hardware Modeling and Architecture
Hardware Design Modeling Platforms
Prototyping on Hardware Design Modeling Platforms
Programming the Use of I/O on Hardware
Programming Digital Sensing on Hardware
Programming Analog Sensing on Hardware
Programming Analog and Digital Actuators on Hardware
Programming Digital Communication Protocols on Hardware
Programming Wireless Communication Protocols on Hardware
Using Debugging Tools on Hardware
Lecture Rules
In each lecture session, you are expected to actively participate in:
Paying attention to and/or studying the material provided by the lecturer
Completing each quiz (pre and post) at every meeting
Completing every class and individual assignment
Participating in discussions regarding the material
At the beginning of each class, a pre-quiz will be held to measure your basic ability within a given time. Afterwards, you will be given lecture materials according to the topic of that meeting. The materials may include slides, digital books, codes, or instructions. Then, you are expected to complete the class assignment given during the session. Finally, before the meeting ends, you are expected to complete a post-class quiz to assess your learning outcome.
Lecture Announcements Forum
Study Plan (RPS) URL
Students can manually mark this activity as completed: Study Plan (RPS)
Announcements
Video 1 Introduction to Arduino Interactive Content
Students can manually mark this activity as completed: Video 1 Introduction to Arduino
Video 2 Arduino Components Interactive Content
Students can manually mark this activity as completed: Video 2 Arduino Components
Video 3 Other Components Interactive Content
Students can manually mark this activity as completed: Video 3 Other Components
Video 6 Actuator Programming Interactive Content
Students can manually mark this activity as completed: Video 6 Actuator Programming
Video 4 Digital Input Programming Interactive Content
Students can manually mark this activity as completed: Video 4 Digital Input Programming
Video 5 Analog Input Programming