此教程献给Eric Zhang, Jay Zi, Jacob Luo, Kevin Cai, 和所有AP Computer Science考生们
给初学者的建议
- 做点题目 建议所有人完成Barron‘s AP Computer Science A上的所有练习
- 多实践 不要畏惧犯错,也别嫌麻烦。编程绝对是通过实践来学会的
- 编程并不难 我在小学毕业的那一年自学学会了编程,告诉各位,这玩意真的不难
APCS 考试说明
- APCS的考试内容就是
Java
这门编程语言当中最基础的东西。 - 考试分为两个Section
- Section I: 40道选择 1小时15分钟
- Section II: 4道大题 1小时45分钟
- 大题就是手写代码(没错是用铅笔写代码)。看上去好像很不合理,但其实手写代码是最考验基本功的
编程黑历史
编程可以理解为给计算机下达指令的过程。这个概念最初在1842年由著名诗人Byron的女儿Augusta Ada King提出。Ada被公认为是世界上的第一位程序员,在她的手稿中她成功预言了一个被计算机所支配的世界。
1936年,Alan Turing发表了一篇关于可计算性的论文
在这篇论文中他提出了图灵机(Turing Machine)这个理想计算模型。冯诺依曼后来根据这个模型设计了世界上第一台计算机
1940s - 1950s,最初的一批程序员诞生了
当时人们编程需要在一种叫做打孔卡的东西上打孔来表示0和1。整个过程极其繁琐,多打一个孔,就得重来了。为了简化这个步骤,人们创造了汇编语言,即通过一些字符来表示一串0和1。汇编语言带来了一定的改进,但是没有解决一些本质问题
机器码:1000100111011000
汇编语言:mov ax, bx
注:上面两条指令所做的事情是一样的
1951年,IBM公司约翰 贝克斯为了解决汇编语言的问题,开发了FORTRAN
语言
FORTRAN
语言最大的特点就是其语言本身非常像数学公式的自然描述,执行效率极高。直到现在,FORTRAN
在高性能计算领域依然持有着影响。
program addNumbers
implicit none
real :: a, b, result
a = 12.0
b = 15.0
result = a + b
print *, 'The total is ', result
end program addNumbers
1964年,为了让初学者也可以快速编程,达特茅斯学院院长约翰凯梅尼和数学系教师托马斯卡茨开发了BASIC
(Beginners’ All-purpose Symbolic Instruction Code)
FORTRAN
是面向专业人员的,并不是向所有人普及的一门编程语言。这两位教授也是非常良心地开发了BASIC
给学生用,后来BASIC
迅速普及到了全世界。到了70年代,微型计算机时代到来,BASIC
几乎成为了所有微机的标配。
msgbox("Hello world!")
1971年
MITS公司向《大众电子》杂志发表了一篇关于其公司最新产品Altair 8800计算机的文章。
几天过后,MITS公司总裁接到一个电话,电话另一头的人宣称已经编写出了Altair 8800版的BASIC
。
其实这个人一行代码也没写,纯属装B。
但一个月后,这个人和自己的朋友经过夜以继日的努力后真的写出了Altair版本的BASIC
并出价3000美元卖给了MITS公司。
这个人就