離五月的日子越近,就越想要打醒一月報(bào)名時(shí)信心膨脹的自己。
隨著考試在國內(nèi)的普及率越來越高,越來越多的出國黨也開始不僅把眼光放在托福和SAT的考試上,而是挑戰(zhàn)更高的難度的。
今天,小編將為大家?guī)鞢omputer Science A考試分享
考試介紹
與大多數(shù)其他考試類似, CS A分為兩個(gè)部分:
Section I:
Multiple Choice Question [1 hour and 30 minutes for 40 multiple-choice questions]
Section II:
Free-Response Question [1 hour and 30 minutes for 4 problems involving extended reasoning]
Section I的選擇題就不多說,Section II的FRQ一般是讓我們補(bǔ)充完整類的方法。
技能點(diǎn)分析
在對 Course Description的Section I樣題分析可以得出如下常見技能點(diǎn)考察:
1. 對程序運(yùn)行效果的分析(比如哪幾個(gè)可以給出這個(gè)答案、這段程序會輸出什么、運(yùn)行了程序之后variable會變?yōu)槭裁矗}目1、2、3、4、5、8、9、10、13、14、15、16、18、19、20、24考察此項(xiàng)技能)
2. 錯(cuò)誤分析和改正(題目原意是如此,然后接著下面函數(shù)哪個(gè)能達(dá)到目的、為什么這段程序不能達(dá)到目標(biāo),如何達(dá)到目標(biāo),題目11、12、23、25考察此項(xiàng)技能)
3. 面向?qū)ο蟪绦蛟O(shè)計(jì)(主要是考如何把事物抽象成計(jì)算機(jī)的方式來描述,題目6、7、22考察此項(xiàng)技能)
4. 程序運(yùn)行效率、代碼的最佳位置等其他題(題目17、21考察此項(xiàng)技能)
考點(diǎn)分析
編程所用的語言是Java,一門經(jīng)典的面向?qū)ο缶幊陶Z言,主要要求我們掌握如何才能用對象的思維抽象問題,如把一個(gè)棋盤抽象成二維數(shù)組;二是如何才能使用算法用抽象的內(nèi)容來進(jìn)行各種操作(題目可能會給出抽象好的內(nèi)容,如變量定義,讓我們完善一個(gè)類的方法)。
以下的考試內(nèi)容供大家參照初步了解計(jì)算機(jī)科學(xué)A的具體要求:
I. Object-Oriented Program Design 面向?qū)ο缶幊?/p>
1. 我們需要明白如何用計(jì)算機(jī)的方式來看待問題
2. 需要明白怎么把現(xiàn)實(shí)生活中的數(shù)據(jù)用計(jì)算機(jī)的方式描述
3. 我們要知道類和接口的特點(diǎn)以及兩種關(guān)系(“is-a”是繼承關(guān)系,“has-a”是組成關(guān)系)
4. 明白code reuse和code overload這兩種易混淆的概念
5. 需要明白數(shù)據(jù)呈現(xiàn)形式和算法實(shí)現(xiàn)形式
6. 需要明白如何把操作分解,簡單地說就是把一個(gè)操作變?yōu)楹芏嘧硬僮?/p>
II. Program Implementation
A. 程序的實(shí)現(xiàn)方法(這里面的內(nèi)容巴朗講得很清楚,還有生動形象的例子)
1.Top-down 從上到下
2. Bottom-up 從下到上
3. Object-oriented 面向?qū)ο笫?/p>
4. Encapsulation and information hiding 把一定對象封包和隱藏信息
5. Procedural abstraction 過程抽象
B. 程序結(jié)構(gòu)
1.知道primitive types和reference types的特點(diǎn)和區(qū)別
2.知道常量、變量、方法及其參數(shù)、類、接口的定義和應(yīng)用(這個(gè)及其重要,例如要學(xué)會如何使用extend、implement來創(chuàng)建子類和實(shí)現(xiàn)接口)
3.知道如何使用System.out.print、System.out.println輸出數(shù)據(jù)(或其他有特殊說明的輸出方式)
4.學(xué)會如何調(diào)用方法、如何順序執(zhí)行和條件執(zhí)行、循環(huán)遍歷、遞歸
5.知道數(shù)字的表達(dá)式、字符串表達(dá)式和布爾表達(dá)式的計(jì)算
C. AP要求的Java類(String等里面的方法和參數(shù)需要記憶,考過很多次)
III. 程序分析
A. 測試
1. test case的開發(fā)(包括boundary case,巴朗有詳細(xì)說明測試數(shù)據(jù)的選取)
2. 單元測試
3. 整體測試
B. 調(diào)試
1. 要知道不同分類的錯(cuò)誤,compile-time error,run-time error和logic error
2. 錯(cuò)誤的辨別和改正
3. 如何使用調(diào)試器、添加輸出語句或手動跟蹤代碼
C. 運(yùn)行出的exceptions
D. 程序更正
1. 前提條件和后來?xiàng)l件(就是執(zhí)行前需要什么,執(zhí)行后會是什么)
2. 斷言
E. 算法分析
1. 要會分析出語句執(zhí)行次數(shù)
2. 要會大體比較運(yùn)行的時(shí)間(一般雙方所用的時(shí)間和效率會差距很大)
F. 要學(xué)會用不同進(jìn)制表示一個(gè)非負(fù)數(shù),還要知道整數(shù)的最大最小限制
integer.MAX_VALUE和integer.MIN_VALUE,知道計(jì)算機(jī)儲存數(shù)的方式,如整數(shù)的最高位是用來判斷正負(fù)的。
這里需要注意:不是最高位從0變?yōu)?就變成相反數(shù)了 。
IV. 標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)(如何把題目的概念抽象成數(shù)據(jù)等)
A. 前面說的primitive data types如int, boolean, double
B. 字符串
C. 類
D. List
E. 一維和二維數(shù)組
V. 標(biāo)準(zhǔn)操作和算法
A. 數(shù)據(jù)結(jié)構(gòu)操作,如截?cái)唷⑻砑印h除
B. 順序搜索和二叉樹搜索
推薦參考書
巴朗AP 計(jì)算機(jī)科學(xué)A
如果你的時(shí)間充裕而且有一定的計(jì)算機(jī)編程基礎(chǔ)知識,推薦用巴朗AP 計(jì)算機(jī)科學(xué)A來做第一次閱讀和做練習(xí),它的優(yōu)點(diǎn)在于把概念寫得很完整很詳細(xì)。
上面的考綱的內(nèi)容巴朗里都基本都有詳細(xì)介紹。
里面的題目也都很不錯(cuò),選擇題和大題都很適合練習(xí)和模考,引進(jìn)版的巴朗還配有中英目錄翻譯,對專有名詞的理解還是很有幫助的。
不過其中的內(nèi)容有點(diǎn)超綱,而且介紹的內(nèi)容過于復(fù)雜(例如第一章出現(xiàn)的package基本都不考),不適合復(fù)習(xí)的時(shí)候使用。
內(nèi)容的排序也要求讀者有一定的計(jì)算機(jī)編程基礎(chǔ),不然很容易被繞暈,也不太適合新手入門。
程譜CodeRecipe
如果你覺得自己理解不了巴朗的英文描述和比較有挑戰(zhàn)性的編排體系,或者是已經(jīng)到了不足一個(gè)月的緊要關(guān)頭還覺得自己有知識空缺,推薦一個(gè)專門做計(jì)算機(jī)教程的公眾號:程譜CodeRecipe,里面專門為AP設(shè)計(jì)的知識樹體系,而且語言比較活潑好理解。
如果是還沒有對AP CS A有一個(gè)完整的理解(比如認(rèn)真讀過一遍參考書或者跟著老師上過一遍課),那么可以直接學(xué)習(xí)整個(gè)AP CS A知識樹。
如果你只是想要差缺補(bǔ)漏(比如看書做題的時(shí)候發(fā)現(xiàn)了沒有理解的知識點(diǎn)),可以去看程譜的抱佛腳知識樹,里面有對知識點(diǎn)的完整梳理而且每一個(gè)知識點(diǎn)都鏈接到教程原文,做得很完善。
當(dāng)然如果用中文教程學(xué)AP的話,那么教程括號里的英文單詞也是需要掌握的(AP CS A不需要寫文章,因此會認(rèn)即可)。
電腦可能看公眾號不太方便,也直接登錄官網(wǎng)看: https://coderecipe.cn
最后一個(gè)月簡單規(guī)劃
大家可以把參考書看一遍,之后再來看看這篇文章,過一遍考點(diǎn)分析和知識點(diǎn)梳理,確定內(nèi)容中沒有不會的知識之后就可以開始練題了,如果有不會的知識的話,可以程譜參考手冊中直接查理解一下。
對于往年的選擇題官網(wǎng)基本沒有放出,Course Description里面有一套參考題,推薦大家作為考前訓(xùn)練用,當(dāng)然也可以做做練手,其他時(shí)候考前有時(shí)間的話每天一套參考書的選擇題來防止知識的遺忘。
對于FRQ問答題,建議大家練習(xí)時(shí)拿HB鉛筆(到時(shí)候會要求用鉛筆寫而不是水筆)和橡皮自己計(jì)時(shí)完成,一套題大概留出15分鐘左右的時(shí)間,最后可以重新讀一下題和自己的答案試著用參考數(shù)據(jù)模擬運(yùn)行一下,看一看結(jié)果是不是和參考相同。
題目內(nèi)容優(yōu)先練2014年以后的年的官方問答題,實(shí)在不夠再練參考書的。
一開始寫出的程序和參考答案不像不要緊,盡量靠近就好了,但參考答案上的算法一般效率都會比較高,而自己寫的可能存在一些運(yùn)行的問題或效率低。
(當(dāng)然高手們練到后期會發(fā)現(xiàn)自己寫的答案比參考效率還要高,那就另當(dāng)別論,不過建議考試和練習(xí)的時(shí)候不要炫技,分?jǐn)?shù)要緊,最好穩(wěn)扎穩(wěn)打,不然老師要是看不懂或者自己寫錯(cuò)某個(gè)步驟就不太好了)
跟我一起劃非重點(diǎn)
看了那么多內(nèi)容,你是不是覺得超累。
接下來讓我們來放輕松,劃一劃非重點(diǎn)。
因?yàn)榻陙鞟P計(jì)算機(jī)科學(xué)一直在刪減內(nèi)容,有一些內(nèi)容已經(jīng)不要了,做往年卷子時(shí)可能會遇到,這些題可以直接跳過:
GridWorld Case Study(在前年的卷子中開始消失,在這之前的卷子每套一般會有一個(gè)大題考這個(gè),當(dāng)時(shí)我還問了深圳的老師,得到消息說不考了后就只是嘗試著寫一寫,被換成了三個(gè)labs)
instanceOf 這個(gè)以前在標(biāo)準(zhǔn)答案中出現(xiàn)過,現(xiàn)在Course Description中的描述是not tested in the exam but potentially relevant/useful三個(gè)labs (The Magpie Lab, The Elevens Lab, The Picture Lab,在巴朗的計(jì)算機(jī)科學(xué)的書里面有,但是現(xiàn)在的描述是optional and are not tested on
the exam,對于這些labs,只需知道內(nèi)容和其中面向?qū)ο缶幊谈拍罹秃茫└嗪擦謹(jǐn)?shù)學(xué)國際課程介紹

? 2025. All Rights Reserved. 滬ICP備2023009024號-1