book
book
以下列出我覺得內容很有特色的書籍,也許你會有興趣。
幾乎都是學術書籍。書籍內容源自學術論文,書籍作者平時也有撰寫學術論文。學術書籍內容可靠,不是作者自己說了算。
why books?
想要學習一個領域,無非是求學或自學。求學效率大於自學效率,大家也都盡可能去學校求學。然而台灣國情特殊。計算機科學的大多數領域,難以求學,只好自學。想要自學,無非是讀講義或讀書。讀講義效率大於讀書效率,大家也都盡可能從課程網站找到講義。然而講義難找,書好找。大多數時候還是得讀書。
讀講義方面,使用領域名稱作為搜尋關鍵字,並添加lecture note,在美國搜尋引擎網站花點時間找找,就能找到國際大學院校的課程網頁,從中找到課程講義。或者在美國慕課網站、美國影音網站花點時間找找,就能找到熱心的地球人拍影片念講義給你聽。
讀書方面,使用領域名稱作為搜尋關鍵字,在美國購物網站隨手一找,就能找到專業人士所寫的專業書籍,數量多到目不暇給。之後可以前往台灣的大學圖書館,借閱紙本書籍或者下載電子檔案。
每個人的生活都不同,每個人的見聞也不同。每個人所寫的講義和書籍,都是作者自身的偏見。想要客觀瞭解一個領域,無非就是多讀。嘮叨就到這裡吧。
algorithm
algorithm
「演算法」是資料的計算過程,搭配資料結構一起使用。主要目標是減少儲存空間、縮短計算時間。如果不能兩全其美,那就隨機應變吧。
Algorithms Algorithms Techniques for Designing and Analyzing Algorithms Introduction to Algorithms Introduction to Algorithms: A Creative Approach Algorithms in a Nutshell: A Practical Guide Algorithm Design An Introduction to the Analysis of Algorithms The Algorithm Design Manual
課程網站。
Jeff Erickson Erik Demaine David Eppstein
科普書籍。
アルゴリズム図鑑 絵で見てわかる26のアルゴリズム 繁:《演算法圖鑑:26種演算法 + 7種資料結構,人工智慧、數據分析、邏輯思考的原理和應用全圖解》 簡:《我的第一本算法书》 Grokking Algorithms: An illustrated guide for programmers and other curious people 繁:《寫程式前就該懂的演算法:資料分析與程式設計人員必學的邏輯思考術》 繁:《白話演算法!培養程式設計的邏輯思考》 簡:《算法图解》 Out of their Minds: The Lives and Discoveries of 15 Great Computer Scientists 繁:《勇闖資訊新未來:打造資訊科技的幕後英雄》 简:《奇思妙想:15位计算机天才及其重大发现》 Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers 繁:《改變世界的九大演算法:讓今日電腦無所不能的最強概念》 简:《改变未来的九大算法》 Automate This: How Algorithms Came to Rule Our World 繁:《演算法統治世界》 简:《算法帝国》
data structure
「資料結構」是資料的儲存格式,搭配演算法一起使用。主要目標是減少儲存空間、縮短計算時間。如果不能兩全其美,那就隨機應變吧。
Fundamentals of Data Structures in C++ Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox Foundations of Multidimensional and Metric Data Structures Compact Data Structures: A Practical Approach Purely Functional Data Structures
computational mathematics
mathematics / computational mathematics
「數學」分為四大分支。
數論:研究數字。0 1 2 3 4 5。 代數:研究運算。寫成符號、寫成規則。 幾何:研究連續數組。點、線、面。 分析:研究連續函數。斜率、容積。
「計算數學」是數學引入演算法。數學的每一種分支都可以引入演算法,形成新領域。
number theory 數論 computational number theory 計算數論 algebra 代數 computational algebra 計算代數 geometry 幾何 computational geometry 計算幾何 analysis 分析 numerical analysis 數值分析
其下還可以細分許多分支。本站只涉及其中一些分支:擁有實際用途的那些分支。
computational graph theory 計算圖論 應用:複雜網路分析 combinatorial optimization 組合最佳化 應用:運籌學 computational number theory 計算數論 應用:編碼理論 analytic number theory 解析數論(數學分支) 應用:工程計算機 computational geometry 計算幾何 應用:地圖、模型、電玩 discrete differential geometry 離散微分幾何(數學分支) 應用:模型製作 numerical analysis 數值分析 應用:各種工程領域 numerical linear algebra 數值線性代數 應用:計算機科學的各種應用領域
本站也額外整合了一些應用數學領域。
engineering mathematics 工程數學 應用:各種工程領域 discrete mathematics 離散數學 應用:計算機科學 data processing 資料處理 應用:商業分析 signal processing 訊號處理 應用:財經分析、生醫訊號處理、音訊處理、通訊設備、振動分析 string processing 字串處理 應用:文字處理、基因序列比對 coding theory 編碼理論 應用:通訊設備、儲存設備
graph theory / computational graph theory
「圖論」探討多個元素的兩兩關係。
「計算圖論」同時使用演算法與圖論的知識,橫跨兩個領域。
例如森林(無環)、二分圖(無奇環)、弦圖(無奇洞)就是考慮了時間複雜度所得到的圖。
Algorithms in C++, Part 5: Graph Algorithms Algorithms on Trees and Graphs: With Python Code Algebraic Graph Algorithms: A Practical Guide Using Python Guide to Graph Algorithms: Sequential, Parallel and Distributed Basic Graph Theory Graph and Matrices
combinatorics / combinatorial optimization
「組合學」又譯作「組合數學」,探討排列與組合。例如找出排列數量、組合數量,遵循給定規則。高中數學課程已經介紹了一些簡潔的數學公式。
「組合最佳化」則是進一步找出最佳排列、最佳組合,遵循給定規則。因為大家推導不出簡潔的數學公式,所以大家只好依賴繁雜的電腦演算法。
大多數情況下,那些給定規則,即是多個元素的兩兩關係,即是圖。因此「圖論」與「組合學」密切相關,「計算圖論」與「組合最佳化」密切相關。大家現在已經默認圖論是組合學的分支。
順帶一提,管理學的分支「作業研究operations research」又譯作「運籌學」,即是在探討「組合最佳化」。經典範例是Dijkstra提出的最短路徑問題。
Network Flows: Theory, Algorithms, and Applications Network Flow Algorithms Data Structures and Network Algorithms Graphs, Networks and Algorithms Digraphs: Theory, Algorithms and Applications Pearls in Graph Theory: A Comprehensive Introduction Combinatorial Optimization / Cook et al. Combinatorial Optimization: Algorithms and Complexity Combinatorial Optimization: Theory and Algorithms Scheduling Algorithms Scheduling: Theory, Algorithms, and Systems
number theory / computational number theory
「數論」探討自然數的性質,諸如因數、質數、餘數。
「計算數論」同時使用演算法與數論的知識,橫跨兩個領域。
例如篩法、因數分解就是考慮了時間複雜度所得到的演算法。
另外,在此領域之下,我擅自收錄了計算代數(群論)、計算組合學(排列組合、序論)的演算法。在數學領域當中,這些領域各自獨立;但是從演算法的觀點,這些領域互相聯繫。
Elementary Number Theory and Its Applications Algorithmic Number Theory, Volume 1: Efficient Algorithms Computational Number Theory / Abhijit Das The Art of Computer Programming, Volume 2: Seminumerical Algorithms A Computational Introduction to Number Theory and Algebra Hacker's Delight Matters Computational: Ideas, Algorithms, Source Code
Introductory Combinatorics Combinatorics: The Art of Counting Combinatorial Methods with Computer Applications Concrete Mathematics: A Foundation for Computer Science
analytic number theory
「解析數論」利用分析來探討數論,諸如級數、生成函數。
另外,在此領域之下,我擅自收錄了計算代數(多項式運算)、訊號處理、碎形與混沌的演算法。在數學領域當中,這些領域各自獨立;但是從演算法的觀點,這些領域互相聯繫。
Analytic Number Theory for Beginners
Algorithmes Efficaces en Calcul Formel Algorithms for Computer Algebra Modern Computer Algebra
Chaos and Fractals: An Elementary Introduction Elegant Chaos: Algebraically Simple Chaotic Flow Elegant Fractals: Automated Generation of Computer Art https://w2.mat.ucsb.edu/200C/spring_2015/schedule.html http://www.math.mcgill.ca/jakobson/courses/math480-19-fractals.html
geometry / computational geometry
「幾何」探討點線面、長度角度、形體內外交錯。
「計算幾何」同時使用演算法與幾何的知識,橫跨兩個領域。
例如簡單多邊形(邊不相交)、凸多邊形(邊斜率遞增)就是考慮了時間複雜度所得到的形狀。
Computational Geometry: Algorithms and Applications Computational Geometry in C Discrete and Computational Geometry Computational Geometry: An Introduction Visibility Algorithms in the Plane
differential geometry / discrete differential geometry
「微分幾何」探討連續平滑的表面。
「離散微分幾何」利用微分幾何來探討不連續平滑的表面。
例如網格就是不連續平滑的表面。
本世紀才興起的領域。目前沒有教科書,只有課程講義。
Visual Differential Geometry and Forms: A Mathematical Drama in Five Acts Discrete Differential Geometry: An Applied Introduction A Short Course in Computational Geometry and Topology Geometric Folding Algorithms: Linkages, Origami, Polyhedra
https://mirelab6.wixsite.com/dgpslides http://school.geometryprocessing.org/ http://www.cs.uu.nl/docs/vakken/ddm/2019-2020/ https://cims.nyu.edu/gcl/teaching.html https://graphics.stanford.edu/courses/cs468-13-spring/schedule.html https://cseweb.ucsd.edu/~alchern/teaching/cse274_wi22/ http://ddg.cs.columbia.edu/ http://www.cs.cmu.edu/~kmcrane/ http://wordpress.discretization.de/geometryprocessingandapplicationsws19/2019/10/17/lecture-progress/ http://fernandodegoes.org/ https://graphics.tudelft.nl/Publications-new/2016/VCDPBHB16/
analysis / numerical analysis
「分析」探討連續函數的性質,例如測度、泰勒展開。
「數值分析」探討連續函數的演算法,例如方程式求解。
各種工程領域經常使用數值分析。應用最為廣泛!
Numerical Analysis for Engineers: Methods and Applications Numerical Methods for Engineers / Steven Chapra, Raymond Canale Numerical Analysis / Timothy Sauer Numerical Analysis / Richard L. Burden, J. Douglas Faires, Annette M. Burden Numerical Methods: Design, Analysis, and Computer Implementation of Algorithms Numerical Algorithms: Methods for Computer Vision, Machine Learning, and Graphics Numerical Recipes: The Art of Scientific Computing
Algorithms for Optimization An Introduction to Optimization Convex Optimization Introduction to Online Convex Optimization
linear algebra / numerical linear algebra
「線性代數」探討線性函數的性質,例如特徵向量、矩陣分解。
「數值線性代數」探討線性函數的演算法,例如一次方程組求解之高斯消去法。
在數學領域當中,線性代數是代數的分支,跟分析無關;但是從演算法的觀點,數值線性代數比較像是數值分析的分支。
計算機科學經常使用數值線性代數。應用相當廣泛!
A First Course in Numerical Methods Numerical Linear Algebra Numerical Linear Algebra: An Introduction Applied Numerical Linear Algebra Fundamentals of Numerical Computation Numerical Computation in Science and Engineering Fundamentals of Matrix Computations Matrix Computations Iterative Methods for Sparse Linear Systems Numerical Methods for Large Eigenvalue Problems
Linear Algebra Notebook Matrix Analysis and Computations Matrix Analysis and Applied Linear Algebra The Matrix Cookbook
Operations Research: Applications and Algorithms Introduction to Mathematical Optimization Numerical Optimization Introduction to Linear Optimization Integer Linear Programming in Computational and Systems Biology: An Entry-Level Text and Course Advanced Optimization for Process Systems Engineering
engineering mathematics
「工程數學」是各種工程領域經常使用的數學主題。工程數學涵蓋的數學主題是大雜燴,源自各種數學領域。當你遇到非常重要的數學主題,又想要通通集中在一門課裡面,那就放在工程數學裡面吧。
工程數學的常見主題:多變量微積分、微分方程、調和分析、動態系統、隨機程序、複變函數。
Engineering Mathematics / Ken Stroud and Dexter Booth Advanced Engineering Mathematics / Erwin Kreyszig
Helping Engineers Learn Mathematics Mathematics LibreTexts Analysis for Computer Scientists: Foundations, Methods, and Algorithms
Scientific Computing: An Introductory Survey Numerical Methods for Scientific Computing: The Definitive Manual for Math Geeks Computational Physics Computational Gasdynamics
Spectral Methods in MATLAB Spectra and Pseudospectra: The Behavior of Nonnormal Matrices and Operators Geometric Numerical Integration: Structure-Preserving Algorithms for Ordinary Differential Equations
Random Numbers and Computers
discrete mathematics
「離散數學」是計算機科學經常使用的數學領域。離散數學如同方才演的那齣。當你遇到非常重要的數學領域,又想要通通集中在一門課裡面,那就放在離散數學裡面吧。
離散數學的常見領域:集合論、序論、邏輯學、自動機理論、代數結構、組合學、機率論、圖論、……。
Discrete Mathematics and Its Applications / Kenneth Rosen
Stanford Introduction to Logic The Logic Notes Logic: The Laws of Truth Logic as a Tool: A Guide to Formal Logical Reasoning Mathematical Logic for Computer Science An Introduction to Formal Logic forall x: An Introduction to Formal Logic LMU CMSI 2310 Language, Thought, and Computation Stanford Encyclopedia of Philosophy
Compiler Construction Using Java, JavaCC, and Yacc Compiler Construction: Principles and Practice
data processing
「資料處理」是資料的數學理論和演算法。
資料處理不是主流名稱。當前名稱是「機器學習machine learning」。過去名稱是「樣式辨識pattern recognition」。
我認為機器學習名不副實,所以我不使用這個名稱。「機器」和「學習」這兩個詞彙缺乏明確意義、缺乏嚴謹定義。
我認為機器學習的發起成員是心理學家和統計學家。他們成天創造新奇詞彙,重新包裝統計學知識,換湯不換藥,譁眾取寵。他們不懂演算法、不懂數值分析,導致那些詞彙不便實作、不便實用。
Learning From Data Introduction to Machine Learning / Ethem Alpaydin Machine Learning Fundamentals: A Concise Introduction Pattern Recognition and Machine Learning Data Mining: Practical Machine Learning Tools and Techniques Data Mining and Machine Learning: Fundamental Concepts and Algorithms Machine Learning: The Art and Science of Algorithms that Make Sense of Data Machine Learning: A Probabilistic Perspective Machine Learning / Tom Mitchell Machine Learning / Zhi-Hua Zhou, Shaowu Liu Learning From Data: A Short Course An Introduction to Statistical Learning, with Applications in R The Elements of Statistical Learning: Data Mining, Inference, and Prediction
Numerical Geometry of Nonrigid Shapes Computational Optimal Transport Moments and Moment Invariants in Pattern Recognition
signal processing
「訊號處理」是訊號的數學理論和演算法。
起初,訊號處理是電子學的分支,大家利用電子電路處理訊號。後來,計算機科學興起,大家開始利用電腦處理訊號。目前仍以電子電路為大宗。大家經常討論電子電路一方,鮮少討論電腦一方。
訊號處理不是主流名稱。當前名稱是「人工智慧artificial intelligence」。過去名稱是「控制理論control theory」。
我認為人工智慧名不副實,所以我不使用這個名稱。我認為人工智慧的發起成員是邏輯學家(函數式程式語言),然而目前根本無人使用邏輯學研究人工智慧。
Introduction to Wireless and Mobile Systems Forecasting: Principles and Practice Time Series Analysis: Forecasting and Control Applied Signal Processing: A MATLAB™-Based Proof of Concept Introduction to Spectral Analysis Machine Learning for Signal Processing: Data Science, Algorithms, and Computational Statistics Mathematical Control Theory: An Introduction Mathematical Modeling in Systems Biology: An Introduction Algorithms for Decision Making Artificial Intelligence: A Modern Approach Dive into Deep Learning
Introduction to Signal Processing / Sophocles Orfanidis Applied Optimum Signal Processing
string processing
「字串處理」是字串的數學理論和演算法。
該領域的學者原本打算稱作「字串論string theory」,但是恰巧跟物理學的「弦論string theory」撞名,因而作罷。也有人稱作「字串學stringology」或「文字演算法text algorithm」。
Algorithms on Strings Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology Flexible Pattern Matching in Strings: Practical On-Line Search Algorithms for Texts and Biological Sequences Jewels of Stringology String Searching Algorithms 125 Problems in Text Algorithms
coding theory
「編碼理論」是二元碼的數學理論和演算法。
壓縮:轉換資料,讓資料容量變小。
過去稱作「信號源編碼source coding」。現在稱作「資料壓縮data compression」。
Pearls of Algorithm Engineering Understanding Compression: Data Compression for Modern Developers Introduction to Data Compression
更正:補充資料,出錯時方便補救。
過去稱作「通道編碼channel coding」。現在稱作「錯誤更正碼error correcting code」。
Coding Theory and Cryptography: The Essentials Coding Theory: Algorithms, Architectures and Applications Error Correction Coding: Mathematical Methods and Algorithms Information Theory, Inference, and Learning Algorithms
加密:轉換資料,讓資料無法閱讀。
現在稱作「密碼學cryptography」。
Serious Cryptography: A Practical Introduction to Modern Encryption Pratical Cryptography for Developers Cryptography Engineering: Design Principles and Practical Applications A Graduate Course in Applied Cryptography Introduction to Modern Cryptography The Joy of Cryptography Understanding Cryptography: A Textbook for Students and Practitioners Guide to Elliptic Curve Cryptography A Pragmatic Introduction to Secure Multi-Party Computation
multimedia
media / multimedia
計算機科學當中,「媒體」就是記載資訊的媒介,諸如文字、聲音、圖片、動畫都是媒體。「多媒體」就是複合多種媒體,例如網頁、影片、電玩都是多媒體。
每一種媒體都有專門的研究領域,分工相當細緻。
data visualization 資料視覺化 應用:數據圖表 text processing 文字處理 應用:文字編輯器、輸入法、網路爬蟲 natural language processing 自然語言處理 應用:自動翻譯、自動寫作、搜尋引擎、聊天機器人 speech processing 語音處理 應用:語音輸入、電腦語音、聲紋辨識 computer music 計算機音樂 應用:電子樂器、譜曲、網路合奏 audio processing 音訊處理 應用:隨身聽、降噪耳機、混音、音效設計 image processing 影像處理 應用:修圖軟體、相機特效、美術作品 video processing 視訊處理 應用:光碟、電視、攝影、YouTube、視訊會議、合成場景 geometry processing 幾何處理 應用:模型設計、3D掃描、3D列印 computer graphics 計算機繪圖 應用:模型顯示、虛擬實境、電玩遊戲、視覺特效、美術作品 computer animation 計算機動畫 應用:好萊塢電影特效、迪士尼卡通動畫、電視廣告、虛擬偶像 computer vision 計算機視覺 應用:手寫輸入、自動駕駛、監控系統、生產品管、醫學影像
本站也額外整合了密切相關的領域。
data science 資料科學 應用:搜尋引擎、資料庫、商業分析 network science 網路科學 應用:社群網路、藥物篩選 computational acoustics 計算聲學 應用:耳麥、音響、場館設計、海洋探勘、超音波檢查 color science 色彩科學 應用:顯示裝置、攝影設備、視訊壓縮、影像設計 computational photography 計算攝影學 應用:數位相機、太空望遠鏡 computational optics 計算光學 應用:相機鏡頭、醫學影像、電子製造設備 photogrammetry 攝影測量學 應用:航測、VR眼鏡、電影特效 computational mechanics 計算力學 應用:工程模擬與分析、機械設計、計算機動畫 computational biomechanics 計算生物力學 應用:姿勢分析、復健輔具、碰撞測試、刑事鑑定、機器人設計 robotics 機器人學 應用:工業生產製造、自動車、醫療手術、義肢、軍事武器 computational neuroscience 計算神經科學 應用:腦機介面、義肢
語音處理不是研究麥克風、耳機,電腦繪圖不是研究螢幕。因為電腦的功能是數學計算,所以上述領域通通都是數學計算!將現實問題對應到數學問題,運用數學計算解決現實問題。
「懂得程式設計」與「懂得數學計算」是兩碼子事,上述這些領域通通是在鑽研後者。大多數民眾喜歡前者,卻完全忽略後者,進而影響了台灣資訊產業的發展方向。
data science
「資料科學」從大量資料之中找到資訊。使用了資料處理。
經典話題是啤酒、尿布、星期五。
Mining of Massive Datasets High-Dimensional Data Analysis with Low-Dimensional Models: Principles, Computation, and Applications Readings in Database Systems Search Engines: Information Retrieval in Practice Designing Data-Intensive Applications
http://www.yisongyue.com/teaching.php http://www.cs.columbia.edu/~blei/courses.html https://people.cs.georgetown.edu/jthaler/COSC548.html http://www.csd.uoc.gr/~hy460/ https://www.csie.ntu.edu.tw/~tonytan/teaching/prev/2015b-adb.html
network science
「網路科學」從大量關聯之中找到資訊。使用了計算圖論。
經典話題是六度分隔理論。
A First Course in Network Science Network Science Networks Mining Complex Networks Modularity and Dynamics on Complex Networks Evolutionary Dynamics of Complex Communications Networks A (partially) Interactive Introduction to Systems Sciences Lectures on Network Systems
Complex Network: An Algorithmic Perspective Graph Theory and Complex Networks: An Introduction Graph Spectra for Complex Networks Random Graphs and Complex Networks, Volume 1
https://slides.com/meng-yingtsai/sna_intro
text processing
「文字處理」存取文字檔案、設計文字編輯器。
不是顯學。我沒有仔細研究。
也許應該介紹編譯器。然而編譯器不是本站主要整理對象。
The Craft of Text Editing: Emacs for the Modern World
natural language processing
「自然語言處理」旨在研究人類撰寫的文章。
經典話題是聊天機器人。
Introduction to Natural Language Processing Foundations of Statistical Natural Language Processing Mining the Web: Discovering Knowledge from Hypertext Data Introduction to Information Retrieval
https://stanford-cs324.github.io/winter2022/ https://alvinntnu.github.io/NTNU_ENC2045/
speech processing
「語音處理」旨在研究人類訴說的話語。使用了音訊處理、自然語言處理。
經典話題是智慧音箱。
Speech and Language Processing Theory and Applications of Digital Speech Processing Spoken Language Processing: A Guide to Theory, Algorithm, and System Development
audio processing
「音訊處理」研究聲音特效、聲音設計、聲音檔案、聲音傳輸。
Introduction to Audio Processing Introduction to Audio Signal Processing Introduction to Computer Music Introduction to Computer Music Introduction to Computer Music DAFX - Digital Audio Effects The Audio Programming Book
Spectral Audio Signal Processing Physical Audio Signal Processing: for Virtual Musical Instruments and Digital The Physics of Musical Instruments Physics and Music: The Science of Musical Sound
https://www.coursera.org/learn/audio-signal-processing http://www.ee.columbia.edu/~dpwe/e4896/outline.html http://www.cs.cf.ac.uk/Dave/CM0268/PDF/10_CM0268_Audio_FX.pdf https://ccrma.stanford.edu/~jos/ https://www.ness.music.ed.ac.uk/
computer music
「計算機音樂」利用電腦產生音樂、利用電腦模仿樂器。
Fundamentals of Music Processing An Introduction to Audio Content Analysis
https://pages.mtu.edu/~suits/MusicRefs.html http://www.music.mcgill.ca/~gary/ http://www.music.mcgill.ca/~ich/ https://twtmir.wordpress.com/ http://www.cs.cmu.edu/~music/cmsip/schedule.html
https://cmc.music.columbia.edu/cmc_courses/regularly-offered https://www.mcgill.ca/study/2020-2021/faculties/music/graduate/courses/music/graduate?search_api_views_fulltext=MUMT&sort_by=field_subject_code https://ccrma.stanford.edu/
computational acoustics
「計算聲學」或「計算音響學」利用電腦製造聲波、分析聲波。
我還沒有學會。
https://www.quora.com/What-are-some-of-the-best-books-on-acoustics-sound-and-vibration
Understanding Acoustics: An Experimentalist’s View of Sound and Vibration Fundamentals of Acoustics Acoustics: An Introduction to Its Physical Principles and Applications
Introduction to Sound: Acoustics for the Hearing and Speech Science Master Handbook of Acoustics The Science of Sound
image processing
「圖片處理」或「影像處理」利用電腦修改圖片。
Digital Image Processing Digital Image Processing: An Algorithmic Introduction A Computational Introduction to Digital Image Processing Concise Computer Vision: An Introduction into Theory and Algorithms 2D Computer Vision: Principles, Algorithms and Applications Numerical Geometry of Images: Theory, Algorithms, and Applications Image Processing: Dealing with Texture
https://cs.brown.edu/courses/cs129/2020_Fall/
video processing
「影片處理」或「視訊處理」利用電腦修改影片。
我還沒有學會。
color science
「色彩科學」研究色彩與觀感,用於圖片處理與影片處理。
The Science of Color Color Science: Concepts and Methods, Quantitative Data and Formulae Color Imaging: Fundamentals and Applications High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting Advanced High Dynamic Range Imaging
http://www.banterle.com/francesco/ https://scholar.harvard.edu/files/schwartz/files/lecture17-color.pdf
computational photography
「計算攝影學」研究拍攝相片的技巧。無論是手機自拍或是觀星望月,都能派上用場。
http://franchomelendez.bettapixels.com/www/index.php/teaching/computational-photography/ https://browncsci1290.github.io/webpage/ https://people.eecs.berkeley.edu/~efros/ https://www.csie.ntu.edu.tw/~cyy/courses/vfx/current/
A Book on Photography
computational optics / computational imaging
光學工程的「計算光學」,計算學的「計算成像」,三維景物轉換成二維相片的數學原理。
我還沒有學會。
Computational Imaging Fourier Optics and Computational Imaging
Optics / Eugene Hecht
http://www.computationalimaging.org/research-overview/ http://stanford.edu/class/ee367/ https://cs184.eecs.berkeley.edu/
https://www2.eecs.berkeley.edu/Pubs/Faculty/yirenng.html https://abhishekkar.info/ https://bmild.github.io/llff/
photogrammetry / 3D vision
土木工程的「攝影測量學」,計算學的「三維視覺」,二維相片轉換成三維景物的數學原理。
Introductory Techniques for 3-D Computer Vision An Invitation to 3D Vision: A Tutorial for Everyone Automatic Reconstruction of Textured 3D Models
內容過時的經典書籍。
Multiple View Geometry in Computer Vision The Geometry of Multiple Images: The Laws That Govern the Formation of Multiple Images of a Scene and Some of Their Applications An Invitation to 3-D Vision: From Images to Geometric Models Guide to 3D Vision Computation: Geometric Analysis and Implementation An Introduction to 3D Computer Vision Techniques and Algorithms
Introduction to Modern Photogrammetry Close-range Photogrammetry and 3D Imaging
computer vision
「計算機視覺」。用電腦分析圖片影片內容。
Computer Vision: A Modern Approach Computer Vision: Algorithms and Applications Computer Vision for Visual Effects Computer Vision: Models, Learning, and Inference Computer Vision: Principles, Algorithms, Applications, Learning
geometry processing
「幾何處理」研究三維模型。無論是卡通動畫或是工業生產,都能派上用場。
Polygon Mesh Processing A Sampler of Useful Computational Tools for Applied Geometry, Computer Graphics, and Image Processing Guide to Computational Geometry Processing: Foundations, Algorithms, and Methods 3D Mesh Processing and Character Animation: With Examples Using OpenGL, OpenMesh and Assimp Shape Interrogation for Computer Aided Design and Manufacturing Functional and Shape Data Analysis
https://github.com/danielepanozzo/gp https://www.coursera.org/learn/interactive-computer-graphics http://kevinkaixu.net/ https://haosulab.github.io/ml-meets-geometry-WI22/schedule.html http://homes.cs.washington.edu/~seitz/talks/3Dhistory.pdf
computer graphics
「計算機圖學」用電腦繪製三維模型。想要在電腦螢幕呈現三維模型,必須經過一連串計算。
Fundamentals of Computer Graphics Ray Tracing from the Ground Up 3D Graphics for Game Programming The Ray Tracer Challenge Ray Tracing in One Weekend Scratchapixel
Real-Time Rendering Physically Based Rendering
https://gfxcourses.stanford.edu/cs248a/winter24 https://dritchie.github.io/ https://sites.cs.ucsb.edu/~lingqi/ https://www.csie.ntu.edu.tw/~cyy/courses/rendering/
computer animation
「計算機動畫」用電腦繪製各種東西,並且讓它們動起來。想要在電腦螢幕呈現各種東西,必須經過一連串計算。
Computer Animation: Algorithms and Techniques The Art of 3D: Computer Animation and Effects Digital Character Development: Theory and Practice
Form+Code in Design, Art, and Architecture
computational mechanics / physically based simulation
物理學的「計算力學」,計算學的「物理模擬」,用電腦模擬真實世界的物質運動。無論是電影特效或是氣象預報,都能派上用場。
兩邊風格迥異,目的和方法完全不同。近年兩邊逐漸靠攏。
Physics for JavaScript Games, Animation, and Simulations The Nature of Code: Simulating Natural Systems with Processing Foundations of Physically Based Modeling & Animation Physics-Based Animation
http://graphics.stanford.edu/courses/cs348c/ http://graphics.stanford.edu/courses/cs448z/ http://www.cs.cmu.edu/~scoros/cs15467-s16/index.html http://www.cs.cmu.edu/~scoros/cs15869-s15/index.html https://github.com/Housz/GraphicsSimulation https://zhuanlan.zhihu.com/p/444931303
剛體模擬rigid body simulation:針對不會變形的物體。
Building a 2D Game Physics Engine: Using HTML5 and JavaScript Game Physics Engine Development: How to Build a Robust Commercial-Grade Physics Engine for your Game Game Physics Real-Time Collision Detection
Engineering Mechanics: Statics & Dynamics / Russell Hibbeler A Modern Introduction to Mechanics / Jonathan Reichert Introduction to Classical Mechanics / Atam Arya
流體模擬fluid simulation:針對液體、氣體。
Fluid Engine Development Fluid Simulation for Computer Graphics Fluid Simulation for Video Games Numerical Simulation in Fluid Dynamics: A Practical Introduction Computational Techniques for Fluid Dynamics 1: Fundamental and General Techniques Computational Techniques for Fluid Dynamics 2: Specific Techniques for Different Flow Categories Fluid Dynamics: Theory, Computation, and Numerical Simulation
Fluid Mechanics: Fundamentals and Applications Wind Generated Ocean Waves
柔體模擬soft body simulation:針對會變形的物體。
The Material Point Method: Theory, Implementations and Applications Finite Element Method Simulation of 3D Deformable Solids Computational Inelasticity
Elasticity: Theory, Applications, and Numerics Physics of Continuous Matter: Exotic and Everyday Phenomena in the Macroscopic World
computational biomechanics
「計算生物力學」。用電腦模擬真實世界的生物運動。
肌肉骨骼系統musculoskeletal system:肢段與關節的運動。
Notes on Scientific Computing for Biomechanics and Motor Control Human Motion Control Biomechanics of Movement: the Science of Sports, Robotics, and Rehabilitation Research Methods in Biomechanics The Comprehensive Textbook of Clinical Biomechanics、中文版
Winter's Biomechanics and Motor Control of Human Movement Kinematics of Human Motion Kinetics of Human Motion
心血管系統cardiovascular system:心臟、動脈、靜脈、微血管的血液循環。
https://www.vascularmodel.com/
robotics
「機器人學」。自動運作、自主控制的機械設備。
我還沒有學會。
Robotics, Vision and Control: Fundamental Algorithms in MATLAB® Robotics, Vision and Control: Fundamental Algorithms in Python Robot Modeling and Control Introduction to Autonomous Mobile Robots Principles of Robot Motion: Theory, Algorithms, and Implementations Modern Robotics State Estimation for Robotics Probabilistic Robotics
computational neuroscience
「計算神經科學」。腦部運作原理。
經典話題是人腦晶片。
大家都還沒有學會。
這裡姑且提供一些古早書籍,關於視覺感知。
Vision Science: Photons to Phenomenology Fundamentals of Sensation and Perception Seeing: the Computational Approach to Biological Vision