Introduction to Matlab Programming with Applications
Time: 1900 ~ 2200, Wednesday and Saturday
Location: Room 223A, 德田館
``All science is dominated by the idea of approximation.''
-- Bertrand Russell (1872-1970)
To the students,
This short course is designed for the students who want to learn Matlab programming without any experiences before the class. The students will be introduced to Matlab features and syntaxes. Besides, the fundamentals of programming concepts are well-presented and delivered with elegant algorithms.
You are expected to be capable to implement programs with Matlab independently after five weeks of lectures (about 30 hours). In addition, I expect that you could feel more confident of learning another programming languages and dealing with advanced topics in the future.
Have fun with programming.
- Mastering MATLAB, Duane C. Hanselman and Bruce L. Littlefield, 2013
- Learning to Program with MATLAB: Building GUI Tools, Craig S. Lent, 2013
- Matlab: A Practical Introduction to Programming and Problem Solving, Stormy Attaway, 3/e, 2013
- Introduction to MATLAB for Engineers, W. J. Palm III, 3/e, 2011
- MATLAB for Engineers, Holly Moore, 3/e, 2011
- MATLAB: An Introduction with Applications, R. V. Dukkipati, 2010
- MATLAB Programming (online resource)
- MATLAB程式設計《入門篇》 (online resource)
- MATLAB程式設計《入門篇》- Exercises, Prof. Roger Jang (張智星)
- Linear algebra
- CS053 Reloaded - The Matrix In Computer Science (Linear Algebra), Phil Klein, Brown University, 2014
- Linear Algebra, Stephen H. Friedberg, Arnold J. Insel, and Lawrence E. Spence, 4/e, 2002
- Matrix Computations, Gene H. Golub and Charles F. van Van Loan, 3/e, 1996
- Numerical methods and analysis
- Data mining and machine learning with Matlab
- Additional readings
- Does MATLAB pass parameters using "call by value" or "call by reference"?, Mathworks, 2012.10.23
- 為什麼要學各種程式語言, NiwaSho Lin, 2012.11.21
- 關於工程師 59 條搞笑但卻真實無比的語錄, INSIDE, 2013.12.20
- 如何成為一個偉大的開發者？, TechOrange, 2014.6.20
- 前蘋果高層史丹佛畢典演講：想換工作，別在辦公室等著別人幫你下決定, TechOrange, 2014.7.7
- 沒神奇公式和捷徑，這11步驟就是成為頂尖Coder的必備條件, TechOrange, 2014.7.9
- 高生產力工程師的兩個特徵：聰明、懶惰, INSIDE, 2014.7.14
- 笑傲「演算法」江湖的獨孤九劍, INSIDE, 2014.8.14
- Google 工程師親授：菜鳥開發者一定要投資的十大標的, TechOrange, 2014.9.17
- 你自己選吧：當工程師不需數學好，但神級工程師的數學都很好, TechOrange, 2015.5.4
- 程式初學者的失落之鑰 - ``Computational Thinking'', 程式教育的唐吉訶德, 2015.6.2
- 【洪士灝 v.s 蘇文鈺】真正的資訊教育不在學寫程式，關鍵在學用電腦解決問題, TechOrange, 2016.1.4
- 人工智慧有多恐怖？聽聽「天才」Demis Hassabis 怎麼說！, INSIDE, 2016.2.21
- 葉丙成：學程式者，能成麒麟之才？, 翻轉教育, 2016.2.26
The major topics covered in the short course, if time permitting, are listed below for your reference.
Simulink, symbolic programming, and MCC/MEX are introduced by simple examples.
- Variables, data types, and operators
- Simple data structures: arrays, cell, structures
- Control structures: if-else, for loop, while loop, switch-case, try-catch
- Analysis of algorithms and vectorization
- Built-in and user-defined functions
- 2D and 3D plotting
- Matrix computation and numerical linear algebra
- User-controlled input and output
- Graphic user interfaces
- Simulink tutorial
- Symbolic programming tutorial
- MCC/MEX tutorial
Note that some of these topcis are introduced as examples in Essentials.
- Numerical methods (curve fitting, finite difference, numerical integration, ODE, PDE)
- Computational statistics and Monte Carlo simulation
- Digital image processing
- Time series analysis
- Financial engineering
- Machine learning and data mining
2016.4.2 no class (long weekend)
2016.4.9 (final project demo), feedback
- Problem 1: Random sequence. Write a program which outputs a random sequence containing five 0s and three 1s. In particular, these three 1s are not allowed to be consecutive, say 11 or 111.
- Problem 2: String search algorithm. Write a program which implements Knuth-Morris-Pratt algorithm.
- Problem 3: 2D Possion equation. Write a program which implements the finite difference for a 2D electrostatics problem.
- Problem 4: Perceptron learning. Write a program which implements one technique of machine leanring, perception leanring.
- Problem 5: Linear congruential generator. Write a program which implements LCG algorithm and outputs a sequence following the standard uniform distribution.
Do not copy and paste if you are beginners. Proceed at your own risk.