Software prototyping
Spring 2025
Class overview
This software prototyping (ID311) course offered in the department of Industrial Design at KAIST aims to provide students with the theoretical and practical programming background to develop software for the web. Students who take this course should be already familiar with the basics of programming and are expected to spend considerable time during the semester programming short assignments and a final project. The course objectives are 1) to teach computational thinking through programming, 2) to familiarize students with the developing environment and language for web applications (i.e. Ecmascript 6 a.k.a. JavaScript), 3) to practice with common programming paradigms such as Object-Oriented Programming, Functional Programming, and Event-Driven programming.
⭐️Highlights 2023 ⭐️
Class resources 🔗
SCHEDULE ⏰
Monday - Wednesday 10:00 am - 12:00 pm (noon)
Building N25, Room 215 (2nd floor) - OFFLINE
Office hours: before and after class, or by appointment
Week 1
Slides 1.1 - Course introduction + Setting up
Slides 1.2 - Types and Variables
Setting up (due Sunday March 2nd, 11:59 pm)
Sign in git.prototyping.id (use your KAIST email or KAIST ID, the default password is "software" => then change the default password)
Homework
Intro survey / Quiz 0 (due Thursday, February 27th at 11:59 pm)
Homework 0 (due Sunday, March 2nd at 11:59 pm)
This is a video to help you getting started
Week 2
Monday March 3rd - No class
Slides 2.2 - Control structures and git
Homework
Homework 1 (due Tuesday, March 11th at 11:59 pm)
Week 3
Slides 3.1 - Arrays and objects
Slides 3.2 - Functions & sort
Homework
Homework 2 (due Tuesday, March 18th at 11:59 pm)
Week 4
Slides 4.1 - Recursion
Slides 4.2 - DOM and event handling
Homework
Homework 3 (due Tuesday, March 25th at 11:59 pm)
Week 5
Slides 5.1 - Higher Order functions (+ wrapping up DOM)
Slides 5.2 - Composition
Optional
Slides 5.3 - jquery
Homework
Homework 4 (due Sunday, April 6 at 11:59 pm)
👉 Week 6
Slides 6.1 - Module and Libraries
Slides 6.2 - Event Loop, Tasks and Transformations
👷 The rest of this schedule is tentative and it will be adjusted
Week 7
Markdown
Svelte
Homework
Homework 5 (due at 11:59 pm)
Week 8
Monday: Project feedback
Wednesday no class
Project start
Week 9
OOP and classes
Inheritance
Week 10
Errors (video lecture)
Week 11
Design patterns
Async programming
Project due
Homework6 out
Week 12
Node and a simple server
Cursor
Final project starts
Week 13
Firebase
Project feedback
Week 14
Connecting to hardware
Project feedback
Week 15
Project Feedback
Week 16
⭐️ FINAL PRESENTATIONS ⭐️ Wednesday June XX @ 10:00 am - noon in N25 - 215