1. Course ID: 210156
  2. Time: Friday 14:10-17:00
  3. Classroom: TC-208 (ext. 94334492)
  4. Required Software:
    1. PuTTY 0.81
    2. Vim 9.1
    3. Firefox (newest)
    4. Chrome (newest)
  5. Course Name: JavaScript Programming (JavaScript程式設計)
  6. Overview: This course has been prepared for programmers, by a programmer. So, in order to get the most from it, you should enjoy writing programs everyday, and have already known object-oriented programming languages such as C++, Python, or PHP. Thus, the course's target audience is programmers who want to learn JavaScript quickly and properly, and JavaScript programmers who want to deepen their skills and/or look up specific topics.
  7. Prerequisite: C++ Programming
  8. Target Students: 1234
  9. Upper-limit: 19 students
  10. Instructor: Dr. Quincy Wu
  11. TA:
  12. Credit: 3
  13. Grading Criteria:
  14. Discussion Platform: Stack Overflow[Stack Overflow]
  15. Textbook:
    • Alex Banks, Eve Porcello, "Learning React", 2nd Edition, O'Reilly Media, June 2020. (307 pages)
      [Learning React]
  16. References:
  17. Schedule in 2024
    1. Week 1
      1. Console
      2. DOM
      3. Event
      4. Form
    2. Week 2
      1. Debugger
        • [Ex] GCD
      2. Function Expression
        • [Ex] Callback cards
      3. Arrow Functions
        • [Ex] Counter
      4. Modules
    3. Week 3
      1. Array
        • [Ex] Horse Racing
      2. Object
        • [Ex] Date()
      3. Spreak Operator
      4. Destructuring
  18. Syllabus
    1. HTML (HyperText Markup Language) Tutorials
    2. CSS (Cascading Style Sheet)

      JavaScript

    3. Speaking JavaScript: Part I - JavaScript Quick Start
    4. Something Special in JavaScript Language
    5. DOM
    6. jQuery

    7. [W3Schools] jQuery Tutorial
    8. Midterm Exam

      HTMX

    9. HTMX

      React

  19. Outline:
    1. JavaScript's Syntax
    2. Values
    3. Operators
    4. Booleans
    5. Numbers
      1. [HW] Chickens and Rabbits (雞兔同籠)
      2. [HW] BMI (Body Mass Index)
      3. [HW] What day is January 1st?
    6. Strings
    7. Statements
      1. [HW] Syracuse Sequence
      2. [HW] Tree of Stars
      3. [HW] Switch Case
    8. Exception handling
      1. [HW] lastModified
      2. [HW] 1A2B
      3. [HW] Monty Hall
    9. Functions
      1. [HW] setAttribute()
      2. [HW] Pass Functions as Arguments to Another Function
      3. [HW] Indefinite Number of Arguments
    10. Variables: Scopes, Environments, and Closures
      1. [HW] Immediately Invoked Function Expression (IIFE)
      2. [HW] scrollIntoView()
      3. [HW] setProperty()
    11. Objects and Inheritance
      1. [HW] Enter Personal Information
    12. Arrays
      1. [HW] Sorting an Array of Objects
      2. [HW] Sudoku
    13. Regular Expressions
      1. [HW] Email Address Validation
      2. [HW] Registration Verification
      3. [HW] Colorize C++ Code
      4. [HW] Binary Tree
      5. [HW] Complete/Full/Perfect Binary Tree
      6. [HW] Daily Report
    14. Dates
      1. [HW] Date Conversion
      2. [HW] Date Calculator
    15. Math
      1. [HW] Horse Racing
      2. [HW] Quick Sort
      3. [HW] styleSheet()
    16. JSON
      1. [HW] Add an Event Listener
      2. [HW] FileReader
      3. [HW] JSON.parse()
      4. [HW] Air Quality
    17. Standard Global Variables
    18. Unicode and JavaScript
    19. A Meta Code Style Guide
    20. Language Mechanisms for Debugging
    21. Subclassing Built-ins
    22. JSDoc: Generating API Documentation
    23. Libraries
    24. Module Systems and Package Managers
  20. Presentation Topics
  21. Educational Goals:
    1. 配合國家經濟發展,培養符合資訊產業需求的工程技術人才
    2. 配合國家科技發展,培養具備前瞻資訊科技研發潛能的人才
    3. 配合全球永續發展潮流,培養具備國際視野、工程倫理、人文關懷及社會責任的科技人才
  22. Core Capabilities:
    1. 具備資訊科學基礎數理知識並應用於發掘、分析與解釋數據的能力
    2. 具備程式設計基礎知識並應用於設計及實作資訊軟體的能力
    3. 具備使用英文閱讀資訊領域技術文件及學術論文的能力
    4. 具備團隊合作及獨立執行資訊工程領域學術研究的能力
    5. 理解資訊工程專業倫理、敬業態度、環境保護及社會責任

Further Readings

  1. JavaScript.info
  2. JavaScript Tutorial - W3Schools
  3. Introduction to the DOM - Mozilla Developer Network
  4. Jitsi WebRTC

Exercises

  1. Good Examples of Student Exercises
  2. 西元和中國年份對應: 清光緒26年。
  3. I am the 4th