- Course ID: 210156
- Time: Friday 14:10-17:00
- Classroom: TC-208 (ext. 94334492)
- Required Software:
-
PuTTY
0.83
- Vim
9.2
- Microsoft Edge
- Mozilla Firefox
(newest)
- Google Chrome (newest)
- Course Name: JavaScript Programming (JavaScript程式設計)
- 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.
- Prerequisite: C++ Programming
- Target Students: 1234
- Upper-limit: 16 students
- Instructor: Dr. Quincy Wu
- TA:
- Credit: 3
- Grading Criteria:
- Quiz (20%)
- Homework (20%)
- Online Participation (10%)
- Forum Discussion (20%)
- Term Project (20%)
- Demo (10%)
- Discussion Platform: Stack
Overflow
- Textbook:
- Alex Banks, Eve Porcello, "Learning
React", 2nd Edition, O'Reilly Media, June
2020. (307 pages)
- References:
- [W3Schools] JavaScript Tutorial
- Axel Rauschmayer,
Speaking JavaScript, O'Reilly, Mar 12, 2014.
- [eBook] Jeremy Keith and Jeffrey Sambells,
DOM Scripting : Web Design with JavaScript and
the Document Object Model, Springer-Verlag, 2005.
- [eBook] Cody Lindley,
DOM Enlightenment:
Exploring JavaScript and the Modern DOM, O'Reilly, 2013.
- [eBook] Cody Lindley,
jQuery Enlightenment,
O'Reilly, 2009.
- Terry McNavage,
JavaScript for absolute beginners, Apress 2010.
- Nicholas C. Zakas,
"The
Principles of Object-Oriented JavaScript",
No Starch Press, 2014. (local
copy)
- Peter Lubbers, Brian Albers, and Frank Salim,
"Pro
HTML5 Programming", Apress, 2nd edition, 2011.
- Vanessa Wang, Frank Salim, and Peter Moskovits,
The Difinitive Guide to
HTML5 WebSocket
- Tom Hughes-Croucher and Mike Wilson,
Node:
Up and Running
-
ECMAScript(R) 2015 Language Specification
- Collaborative Learning Strategies:
- Team Assisted Instruction for Homework
- Think-Pair-Share for Online Test
- Group Investigation for Term Project
- 彈性教學 (Flexible Teaching): 以本學期課程為範圍,以二至三人為一組,參考網路資源,討論並完成期末專題(六小時)。程式及簡報繳交期限在八月底。
- Schedule in 2026
- Introduction - The Power of JavaScript
- Console
- DOM
- Event
- Form
- [Further Reading] Speaking JavaScript: Part I - JavaScript Quick
Start
- HyperText Markup Language (HTML) & Form
- h, p, ol, ul, li, img, a, title
- font, table,
- div, span, and Styles
- input form
- [Further Reading] W3Schools Tutorials
- [Tips] 游標停在一個 start tag 時標出 end tag
- Function
- Function Expression
- Debugger
- [Ex] GCD
- "Step" vs. "Step Into"
- Arrow Functions
- Modules
- Arrays
- Array
- [Ex] Horse Racing
- [Ex] Rolling a Dice
- [Ex] Two Dices
- Object
- Spreak Operator
- Destructuring
- Strings
- Match
- Regular Expression
- [Ex] Words ending with a vowel
- Objects & Classes
- Construct an Object
- Properties and Methods
- Class & Inheritance
- JavaScript Objects
- Document Object Model (DOM)
- [Ex] createElement
- [HW] JavaScript Form Validation
- JavaScript Object Notation (JSON)
- [Ex] JSON Array
- WebSocket
- Server
- Client
- [Ex] Word Lookup in a Dictionary
- Cookie
- [Ex] Remember Me for 2 Minutes
- JavaScript Canvas
- [Ex] Shapes with Holes
- Rotate 360 Degrees
- [Code] Solar System
- React.js
- [Ex] 9x9 Multiplication Table
- [Ex] Horse Racing (3)
- [Ex] Login
- JSX
- Convert Some HTML to JSX
- Extract a Component
- [Ex] 9x9 Multiplication Table (2)
- Translator
from HTML to JSX
- JSX with Event Handler
- [Ex] Font Size
- [Ex] Zip Code
- Set
Character Encoding
- State in React
- [Ex] CSIE Teachers
- [Ex] BgColor of 9x9 Multiplication Table
- Bootstrap
- TypeScript (1): Introduction & Setup
- Basic Types & Type Annotations
- Functions & Objects
- Type Narrowing & Type Guards
- TypeScript (2): Core TypeScript Features
- Interfaces, Types & Object-Oriented TS
- Generic Functions
- Advanced Types
- TypeScript (3): Additional Topics
- Modules, Namespaces & Declaration Files
- Error Handling, Async & Modern JS Features
- Configuration & Tooling
- Topics:
- JavaScript's Syntax
- Values
- Operators
- Booleans
- Numbers
- [HW] Chickens and Rabbits (雞兔同籠)
- [HW] BMI (Body Mass Index)
- [HW] What day is January
1st?
- Strings
- Statements
- [HW] Syracuse Sequence
- [HW] Tree of Stars
- [HW] Switch Case
- Exception handling
- [HW] lastModified
- [HW] 1A2B
- [HW] Monty Hall
- Functions
- [HW]
setAttribute()
- [HW]
Pass Functions as
Arguments to Another Function
- [HW]
Indefinite Number of Arguments
- Variables: Scopes, Environments, and Closures
- [HW]
Immediately Invoked
Function Expression (IIFE)
- [HW]
scrollIntoView()
- [HW]
setProperty()
- Objects and Inheritance
- [HW]
Enter Personal
Information
- Arrays
- [HW]
Sorting an Array of
Objects
- [HW]
Sudoku
- Regular Expressions
- [HW]
Email Address
Validation
- [HW]
Registration
Verification
- [HW]
Colorize C++ Code
- [HW]
Binary Tree
- [HW]
Complete/Full/Perfect
Binary Tree
- [HW]
Daily Report
- Dates
- [HW]
Date Conversion
- [HW]
Date Calculator
- Math
- [HW]
Horse Racing
- [HW]
Quick Sort
- [HW]
styleSheet()
- JSON
- [HW]
Add an Event Listener
- [HW]
FileReader
- [HW]
JSON.parse()
- [HW]
Air Quality
- Standard Global Variables
- Unicode and JavaScript
- A Meta Code Style Guide
- Language Mechanisms for Debugging
- Subclassing Built-ins
- JSDoc: Generating API Documentation
- Libraries
- Module Systems and Package Managers
- Presentation Topics
- Educational Goals:
- 配合國家經濟發展,培養符合資訊產業需求的工程技術人才
- 配合國家科技發展,培養具備前瞻資訊科技研發潛能的人才
-
配合全球永續發展潮流,培養具備國際視野、工程倫理、人文關懷及社會責任的科技人才
- Core Capabilities:
- 具備資訊科學基礎數理知識並應用於發掘、分析與解釋數據的能力
- 具備程式設計基礎知識並應用於設計及實作資訊軟體的能力
- 具備使用英文閱讀資訊領域技術文件及學術論文的能力
- 具備團隊合作及獨立執行資訊工程領域學術研究的能力
- 理解資訊工程專業倫理、敬業態度、環境保護及社會責任
Further Readings
- JavaScript.info
-
JavaScript Tutorial - W3Schools
-
Introduction to the DOM - Mozilla Developer Network
- Jitsi WebRTC
Exercises
- Good Examples of Student Exercises
- 西元和中國年份對應: 清光緒26年。
- I am the 4th
Related Links
- MOE
數位學習課程認證指標
- CSS (Cascading Style Sheet)