---
title: "APCS: C++ Programming"
tags: computer science, c++
---
<center>
# **APCS: C++ Programming**
:::info
Location: Room 223B, 德田館
Time: 14:00 ~ 17:00
:::
</center>
<div style="text-align: right">``What I cannot create, I do not understand.''<br>-- Richard Feynman

</div>
<div style="text-align: right">
``Talk is cheap. Show me the code.''<br>-- <a href = "https://github.com/torvalds">Linus Torvalds</a>

</div>
<div style="text-align: right">``Either run for food, or run from being food.''<br>-- Jen-Hsun "Jensen" Huang

</div>
## **Class Information**
### Instructor
- Name: 盧政良 (Zheng-Liang Lu, Arthur)
- Email: arthurzllu@gmail.com
### Objectives
- Learn how to write computer programs in C++1x
- Understand basic concepts of computer science
- Comprehend computational thinking
- Exploit computers (even AI tools) to solve problems
### Prerequisites
- Logic in daily / school life
- Arithmetic and algebra: High-school math disciplines
### Development Environment
- Online IDE: https://ideone.com/
<font size = -1 color = "gray">Ideone is an online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.</font>
- Offline IDE: [Dev-C++ Official Website](https://www.bloodshed.net/) or [download link](https://sourceforge.net/projects/orwelldevcpp/)
<font size = -1 color = "gray">You may use this software for your homework, instead of ideone.com</font>
- Wi-Fi Access in the classroom
- SSID: CSIE_guest
- Account: guest_PPNFH
- Passwords: K4YGTNNQ
### Recording Classroom Lectures Policy
:::warning
Recording of classroom lectures is <font color="red">**prohibited**</font> unless advance written permission is obtained from the class instructor and any guest presenter(s).
:::
## **Overview**
### Basics of C++
- Introduction to computer systems: CPU-memory model
- Data types (int, double, string, bool), variables, operators
- Flow controls: branching & repetitions
- Algorithms & time-complexity analysis
- Arrays
- Functions & recursion
- Pointers
- Structure in C / C++
- Object-oriented programming (OOP)
- New features in C++
- Data structure implementation: Linked list, binary tree
- Use bits/stdc++.h for APCS exams
## **Schedule <font size = -2>[270, 272, 285, 287, 300, 302, 309, 314, 316, 324, 325, 327, 331, 332, 333, 338, 339, 362, 363, 378, 389, 393, 403, 412, 414, 435, 442, 443]</font>**
TBD
## **Gradebook**
<p>
<iframe src=""
width=800px height=800px></iframe>
</p>
## **References**
### C++
- 劉邦鋒,++*由片語學習C程式設計*++, 2019, 2/e <font size = -1>[official web](https://sites.google.com/view/c-programming-2ed/home)</font>

- Josh Lospinoso, ++*C\+\+ Crash Course: A Fast-Paced Introduction*++, 2019 <font size = -1>[official web](https://ccc.codes/)</font>

### MISC
- https://www.itread01.com/content/1547093362.html