umich-eecs280-lec-notes-ch
  • Home
    • Notes

01 Command Line Interface (CLI)

  • Overview
  • 1.1 Mac OS CLI tools Installation
  • 1.2 Windows Subsystem for Linux (WSL) Installation
  • 1.3 Basic Commands
  • 1.4 File, Directory, Path
  • 1.5 Redirection
  • 1.6 Useful Tips
  • 1.7 Shell Scripting(脚本)

02 IDEs

  • Overview
  • 2.1 VScode for Mac & WSL/Linux
  • 从该网页下载
  • 解压
  • 把stater-files下所有文件移动到working directory
  • 删除下载文件
  • 2.2 XCode on Mac
  • 2.3 Visual Studio on Windows
  • 2.4 Troubleshooting

03 Compilation (Makefile)

  • Overview
  • 3.1 MakeFile 语法规则
  • 3.2 Variable 变量
  • 3.3 Example

04 Debuggers

  • Overview
  • 4.1 Debugging Basis
  • 4.2 Debug Console
  • 4.3 Address Sanitizer 地址检查器
  • 4.4 Assertions
  • 4.5 Command-Line Debuggers(gbd,lldb)
  • 4.6 More Pro Tips for debugging

05 Version Control (git)

  • Overview
  • 5.1 Github Authentication 验证
  • 5.2 Create a local repository
  • 5.3 创建 remote repo 及 connect local reop to remote
  • 5.4 Daily work flow with version control
  • 5.5 Version Control For a Team
  • 5.6 注意事项

06 Text Editors (emacs)

  • Overview
  • 8.1 Installation and Start & Quit
  • 8.2 Customize Key binding 自定义按键
  • 8.3 Pro-tips

07 Call Stack Procedural Abstraction and Unit Tests

  • Overview
  • 7.1 Machine Model 机器模型
  • 7.2 Function Calls and the Call Stack
  • 7.3 Procedural Abstraction 过程抽象化
  • 7.4 Unit Testing

08 Pointers and Arrays

  • Overview
  • 8.1 Pointer 指针
  • 8.2 Array
  • 8.3 Pointer Arithmetic

09 const keyword

  • Overview
  • 9.1 const as type qualifier

10 Compound objects, ADT and Dynamic Allocation

  • Overview
  • 10.1 Struct
  • 10.2 Dynamic Allocation

11 C strings

  • Overview
  • 11.1 C-style strings: 就是末尾自动加上 null \0 的 char array
  • 11.2 cout 由 char array 名字 decay 形成的 char* 会 cout 整个 char array 而不是首元素地址
  • 11.3 题外话: Prefix(++x) vs. Postfix(x++) Increment
  • 11.4 C-style strings 的 standard functions
  • 11.5 Command Line Arguments

12 Stream and IO

  • Overview
  • 12.1 stdin/stdout
  • 12.2 Exit Codes in C++ Programs
  • 12.3 file I/O with streams: fstream
  • 12.4 Stream Input/Output
  • 12.5 Stringstreams

13 ADT in C++

  • Overview
  • 13.1 Class Declaration
  • 13.2 Calling a member function
  • 13.3 Member Accessibility (或称 visibility)
  • 13.4 Initialization

14 Derived Classes and Inheritance

  • Overview
  • 14.1 Derived Classes
  • 14.2 Enums
  • 14.3 Derived class constructor
  • 14.4 在 Derived Class 中 override base class 的 member functions

15 Polymorphism

  • Overview
  • 15.1 Static type 和 Dynamic type
  • 15.2 Abstract Classes
  • 15.3 容纳 different derived classes 的 ptr/ref 的 container
  • 15.4 Upcasting 和 Downcasting

16 ContainerADT I

  • Overview
  • 16.1 Write a container ADT example: set
  • 16.2 Operator overloading
  • 16.3 Template: generic programming
  • 16.4 注意事项

17 ContainerADT II

  • Overview
  • 17.1 Measuring the efficiency of an algorithm
  • 17.2 Operator Overloading
  • 17.3 main.cpp using using
  • 17.4 其他事项

18 Memory Model and Dynamic Memory

  • Overview
  • 18.1 Global(Static), Local(automatic) and dynamic variables
  • 18.2 Dynamic Memory 的使用
  • 18.3 Program Segments
  • 18.4 Dynamic arrays

19 Managing Dynamic Memory

  • Overview
  • 19.2 更改其他 function implementations 以适应 dynamic set
  • 19.3 Performance of Set
  • 题外话: garbage collection 和 smart pointer

20 Deep Copies and the Big Three

  • Overview
  • 20.1 Copy Constructor
  • 20.2 Assignment operator =
  • 20.3 The Rule of The Big Three

21 Linked List

  • Overview
  • 21.1 Sequential Container ADT
  • 21.2 Linked List
  • 21.3 Doubly Linked List

22 Iterator

  • Overview
  • 22.1 List<type>::Iterator
  • 22.2 Iterator 的 implementations
  • 22.3 check for the Big Three 以及使用 Iterator

23 Functors and Imposter Syndrome

  • Overview
  • 23.1 template <typename Iter_type>
  • 23.2 function pointer
  • 23.3 Functors: 模拟 function 的行为

24 Recursion

  • Overview
  • 24.1 如何写 Recursion
  • 24.2 Tail Recursion: 获得 Constant Space Cost
  • 24.3 Structural Recursion

25 BST and Maps

  • Overview
  • 25.1 BST 的定义及如何检测一个 tree 是否是 BST
  • 25.2 BST methods
  • 25.3 Set ADT implemented with a BST
  • 25.4 Another ADT: Map

280 midterm cheatsheet

  • Overview
  • 1. Array and Pointer
  • 2. const keyword
  • 3. struct (C-style-ADT)
  • 4. Stream 和 C-string
  • 5. class (C++-style-ADT) and derived class
  • 6. Polymorphism
  • 7. Container ADT
umich-eecs280-lec-notes-ch
  • Home

umich-eecs280-lec-notes-ch

23W-eecs-280, Lecture Notes taken by Rynne.

中英文混杂的笔记。

Official Course Website https://eecs280.org

Notes

  • 01 Command Line Interface (CLI)
  • 02 IDEs
  • 03 Compilation (Makefile)
  • 04 Debuggers
  • 05 Version Control (git)
  • 06 Text Editors (emacs)
  • 07 Call Stack Procedural Abstraction and Unit Tests
  • 08 Pointers and Arrays
  • 09 const keyword
  • 10 Compound objects, ADT and Dynamic Allocation
  • 11 C strings
  • 12 Stream and IO
  • 13 ADT in C++
  • 14 Derived Classes and Inheritance
  • 15 Polymorphism
  • 16 ContainerADT I
  • 17 ContainerADT II
  • 18 Memory Model and Dynamic Memory
  • 19 Managing Dynamic Memory
  • 20 Deep Copies and the Big Three
  • 21 Linked List
  • 22 Iterator
  • 23 Functors and Imposter Syndrome
  • 24 Recursion
  • 25 BST and Maps
  • 280 midterm cheatsheet
Next

Built with MkDocs using a theme provided by Read the Docs.
Next »