AP Computer Science A: สิ่งที่สำคัญจริง ๆ
คู่มือปฏิบัติสำหรับสอบ AP CS A — สิ่งที่ได้รับการทดสอบ วิธีที่คะแนนหายไป และว่าควรมุ่งเน้นการศึกษาเพิ่มเติมของคุณที่ไหน
สอบ AP Computer Science A ให้รางวัลแก่นักเรียนที่รู้ Java quirks อย่างลึกซึ้ง ไม่ใช่เพียงนักเรียนที่เข้าใจการเขียนโปรแกรมในเชิงนามธรรม สองส่วน 90 นาทีต่อส่วน: 40 คำถามปรนัยที่มีค่า 50% ของคะแนนของคุณ และ 4 คำถามตอบอิสระที่มีค่า 50% ที่เหลือ นักเรียนส่วนใหญ่สูญเสียคะแนนในส่วนตอบอิสระไม่ใช่เพราะพวกเขาไม่เข้าใจแนวคิด แต่เพราะพวกเขาจัดการ Java syntax ไม่ดีภายใต้ความกดดันทางเวลา
คำถามตอบอิสระสี่ข้อไม่ใช่แบบสุ่ม
College Board ทำให้โครงสร้าง FRQ สอดคล้องกันมาหลายปี คำถามที่ 1 เกือบจะเป็นวิธีการและโครงสร้างการควบคุมบนคลาสเดียว คำถามที่ 2 เกี่ยวกับคลาสที่ใช้ interface หรือขยายคลาสอื่น คำถามที่ 3 คือการจัดการอาร์เรย์ 2 มิติ คำถามที่ 4 ครอบคลุม ArrayList หรือคลาส collection อื่น ๆ การรู้เรื่องนี้ล่วงหน้าหมายความว่าคุณสามารถฝึกคำถามแต่ละประเภทเป็นพิเศษแทนที่จะทำปัญหา "AP CS practice" ทั่วไป
สำหรับคำถามที่ 3 โดยเฉพาะ จำรูปแบบ nested-loop สำหรับการข้ามอาร์เรย์ 2 มิติทั้งแบบ row-major และ column-major:
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
// process arr[row][col]
}
}
ผู้ให้คะแนน (เรียกว่า "Readers") ใช้ rubric ที่ให้ partial credit สำหรับบรรทัดตรรกะที่ถูกต้องเฉพาะ แม้ว่าคำตอบสุดท้ายของคุณจะผิด การเขียน return null; เป็น placeholder เมื่อคุณติดขัดในวิธีการที่ส่งคืนวัตถุ มีค่ามากกว่าการปล่อยให้มันว่างเปล่า
ข้อผิดพลาด multiple choice ที่ปรากฏทุกปี
คำถามเกี่ยวกับ == เทียบกับ .equals() สำหรับการเปรียบเทียบ String ปรากฏเกือบทุกครั้งที่มีการดำเนิน == เปรียบเทียบการอ้างอิงสำหรับวัตถุ .equals() เปรียบเทียบเนื้อหา นี่ทำให้นักเรียนติดขัดเพราะ Java's string literal pool บางครั้งทำให้ == ส่งคืน true สำหรับ strings ที่ไม่ควรเท่ากันตามการอ้างอิงตามตรรกะ ซึ่งเป็นประเภท gotcha ที่สอบชอบทดสอบ
Operator precedence และ integer division เป็น recurring traps อีกตัวหนึ่ง 7 / 2 ประเมินค่าเป็น 3 ไม่ใช่ 3.5 เพราะ operands ทั้งสองเป็น ints Cast operand หนึ่งเป็น double เช่น (double) 7 / 2 เพื่อให้ได้ผลลัพธ์ทศนิยม คำถามยังทดสอบว่าเกิดอะไรขึ้นเมื่อคุณผสม int และ double ในนิพจน์โดยไม่มีการแคสต์ที่ชัดแจ้ง — รู้ว่า Java ส่งเสริมอัตโนมัติในเลขคณิตแบบผสม แต่ตัดทอนเมื่อกำหนดผลลัพธ์ double กลับไปยังตัวแปร int
Inheritance และ polymorphism มีน้ำหนักมากกว่าที่ดูเหมือน
Big Idea 4 (Class และ Object Oriented Programming) ปรากฏในทั้งสองส่วน ไม่ใช่เพียงในคำถาม inheritance ที่เฉพาะเจาะจง เข้าใจความแตกต่างระหว่าง overriding และ overloading และรู้ว่า Java แก้ไข overridden methods ในเวลาทำงานตามประเภทวัตถุจริง ไม่ใช่ประเภทการอ้างอิงที่ประกาศ:
Animal a = new Dog();
a.makeSound(); // calls Dog's version, not Animal's
นี่คือ runtime polymorphism และสอบทดสอบมันโดยให้การอ้างอิงของประเภทหนึ่งชี้ไปยังวัตถุของ subclass จากนั้นถามว่าวิธีการใดที่ดำเนิน Static methods และ instance variables ไม่เป็นไปตามกฎนี้ — พวกเขาแก้ไขตามประเภทที่ประกาศ และความแตกต่างนี้เป็น favorite exam trap
Array และ ArrayList mechanics ที่คุณต้องทำให้เป็นอัตโนมัติ ไม่ใช่ค้นหา
คุณจะไม่มีสิทธิเข้าถึง Java documentation ในระหว่างการสอบ จำสิ่งเหล่านี้โดยไม่ลังเล:
array.length(ไม่มี parentheses มันคือ field)list.size()(parentheses มันคือ method)list.add(index, element)เลื่อนทุกอย่างไปทางขวาlist.remove(index)เลื่อนทุกอย่างไปทางซ้ายและส่งคืนองค์ประกอบที่ถูกลบ- การลบองค์ประกอบจาก ArrayList ขณะวนซ้ำไปข้างหน้าด้วยลูป for-each จะขึ้น
ConcurrentModificationExceptionวนซ้ำจากด้านหลังด้วยลูป indexed แทนเมื่อลบ
ประเด็นสุดท้ายนี้เป็นข้อผิดพลาด logic ที่พบบ่อยที่สุดในคำตอบ FRQ และ Readers เห็นมันอยู่เสมอ
วิธีใช้เวลาสองสัปดาห์สุดท้ายของคุณ
ทำสอบ FRQ ที่ผ่านมาเต็มชุดภายใต้เงื่อนไขจริง — College Board เผยแพร่สอบจริงที่ผ่านมาพร้อมกับแนวทางการให้คะแนนที่แสดงว่าคะแนนได้รับการให้อย่างไรอย่างแน่นอน อ่านแนวทางการให้คะแนนอย่างรอบคอบ พวกเขาเปิดเผยว่า partial credit นั้นละเอียดแค่ไหน บางครั้งลงไปถึงตัวแปรที่ประกาศถูกต้องเพียงตัวเดียว สำหรับ multiple choice ให้มุ่งเน้นเวลาทบทวนบน recursion tracing และ 2D array indexing เพราะนั่นคือที่ที่ความผิดพลาดเลินเล่อทำให้สูญเสียคะแนนมากที่สุดเทียบกับว่าแนวคิดพื้นฐานนั้นเรียบง่ายแค่ไหนจริง ๆ
หากคุณต้องการสร้าง Java fundamentals ที่อยู่เบื้องหลังทั้งหมดนี้อย่างมั่นคง หรือดูตัวอย่างการทำงานของ classes inheritance และ array manipulation ที่แยกออกเป็นขั้นตอน ให้ตรวจสอบส่วน Python และ Computer Science ใน Korra Studio's library สำหรับการฝึกที่มีโครงสร้างมากขึ้น
เขียนด้วยความช่วยเหลือของ AI ตรวจสอบและเผยแพร่โดย Michal Pilch (CISSP), Korra Studio
นี่คือบันทึกหนึ่งจากฐานความรู้ของ Korra Studio — แพลตฟอร์มจับคู่หัวข้อแต่ละหัวข้อกับการฝึกสอนแบบ 1-to-1
เริ่มใช้งานฟรีarrow_forward