1. Time: Friday 10:00-13:00
  2. Classroom: TC-208 (ext. 94334492)
  3. Required Software: PuTTY, Vim, Firefox, Chrome; EverCam (只需安裝在教師電腦)
  4. Course Name: JavaScript Programming (JavaScript程式設計)
  5. 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.
  6. Prerequisite: C++ Programming
  7. Target Students: 1234
  8. Upper-limit: 10 students
  9. Instructor: Dr. Quincy Wu
  10. TA:
  11. Credit: 3
  12. Grading Criteria: Homework (40%), Midterm/Final Exams (30%), Oral Presentation (30%)
  13. Discussion Platform: Stack OverflowStack Overflow
  14. Textbook:
  15. References:
  16. Syllabus
    1. HTML (HyperText Markup Language) Tutorials
    2. CSS (Cascading Style Sheet)
    3. HW: Interactive webpages
    4. Speaking JavaScript: Part I - JavaScript Quick Start
    5. JavaScript Form Validation
  17. 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
  18. Presentation Topics
  19. Educational Goals:
    1. 配合國家經濟發展,培養符合資訊產業需求的工程技術人才
    2. 配合國家科技發展,培養具備前瞻資訊科技研發潛能的人才
    3. 配合全球永續發展潮流,培養具備國際視野、工程倫理、人文關懷及社會責任的科技人才
  20. 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. 西元和中國年份對應: 清光緒26年。
  2. I am the 4th