2017년 6월 14일 수요일

Courses


Introduction to Engineering Design (공학설계입문)

for 1st year students

  • Creative design using Lego Mindstorms EV3
    • Lego for creating customizable & programmable robots
    • Students should use sensors and motors

  • EV3 software
    • Effective for beginners to understand key concepts of programming

  • Hardware design using mechanical elements

    • Encourage students to make a creative hardware system as well as software system

  • Give a highly-motivating creative experience of hardware-software convergence

  • Term project outputs
    • Pinball game
    • Voting machine
    • Toilet paper cutting machine
    • ...



C Programming (C프로그래밍)

for 1st year students

  • First principle: Ensure all students do not lose interest until the end of the semester.

  • Start each lesson with review of prev. lesson & brief overview of today’s lesson.
  • Give time for hands-on coding practice and questions between each sub-topics.
  • Daily assignments are given 10-15 mins before the end of each lesson and recommended to be submitted within the lecture hours.
  • Give prompt feedback for prev. daily assignments in the next lesson.

  • For frequent assignments and prompt feedback, I developed PACERs (Programming Assignments Compiling, Executing, and Reporting system) script.



Advanced C Programming and Code Design (고급 C프로그래밍 및 설계)

for 1st year students

  • Advanced topics not covered in “C Programming”

  • + SDL(Simple DirectMedia Layer) programming, to let students understand
    • What is a library and how to use it
    • Basic concept of GUI programming (main-loop)
    • How “boring” C grammar is used to make something “interesting”

  • SDL assignment examples
video video



Open Source Software Development (오픈소스 소프트웨어 개발)

for 2nd year students
Scheduled to be taught in the 2nd semester of 2017.

  • Theoretical and practical knowledge about the open source software development process

  • Topics to be covered
    • Open source development process
    • Cross-platform build system (CMake)
    • Version control system (Git)
    • Open source development platform (Github)
    • Developer communication (bug/issue tracking, patch / pull request)
    • Documentation (Doxygen)
    • Open source software license
    • ...