Skip to content · ⁨דלג לתוכן⁩
Subjects · ⁨נושאים⁩

AP Computer Science Principles · ⁨עקרונות מדעי המחשב - AP⁩

Tips · ⁨טיפים⁩

AP Computer Science Principles is the broad computing course: data and its representation, algorithms and abstraction, programming, the internet, and the impact of computing on society. Code is written in any language, and the exam uses a language-neutral pseudocode, so the ideas matter more than the syntax.

The assessment has two halves. The Create Performance Task is a program you build and document over class time; the end-of-course exam is multiple choice.

The written responses about your own program are where marks are lost — they ask you to explain an algorithm you wrote and to justify an abstraction you chose, precisely, in your own words.

The notes cover the big ideas from data through to impact, with code examples you can run here. The library holds the sample exam questions, and there are notes on the Create Performance Task, which is assessed on your own program and written responses rather than on the exam alone.

  • 1

    Creative Development · ⁨פיתוח יצירתי⁩

    Watch lesson · ⁨צפה בשיעור⁩
    1.1

    Collaboration · ⁨שיתוף פעולה⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CRD-1): Incorporating multiple perspectives through collaboration improves computing innovations as they are developed.

    Learning Objective CRD-1.A: Explain how computing innovations are improved through collaboration. [Skill 1.C]

    • CRD-1.A.1 A computing innovation includes a program as an integral part of its function.
    • CRD-1.A.2 A computing innovation can be physical (e.g., self-driving car), nonphysical computing software (e.g., picture editing software), or a nonphysical computing concept (e.g., e-commerce).
    • CRD-1.A.3 Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of those who designed it.
    • CRD-1.A.4 Collaboration that includes diverse perspectives helps avoid bias in the development of computing innovations.
    • CRD-1.A.5 Consultation and communication with users are important aspects of the development of computing innovations.
    • CRD-1.A.6 Information gathered from potential users can be used to understand the purpose of a program from diverse perspectives and to develop a program that fully incorporates these perspectives.

    Learning Objective CRD-1.B: Explain how computing innovations are developed by groups of people. [Skill 1.C]

    • CRD-1.B.1 Online tools support collaboration by allowing programmers to share and provide feedback on ideas and documents.
    • CRD-1.B.2 Common models such as pair programming exist to facilitate collaboration.

    Learning Objective CRD-1.C: Demonstrate effective interpersonal skills during collaboration. [Skill 1.C]

    • CRD-1.C.1 Effective collaborative teams practice interpersonal skills, including but not limited to:
      • communication
      • consensus building
      • conflict resolution
      • negotiation
    עברית

    הבנה מתמשכת (CRD-1): שילוב של מספר זוויות מבט דרך שיתוף פעולה משפר חדשנות מחושבת בעת פיתוחן.

    מטרת למידה CRD-1.A: הסבר כיצד חדשנות מחושבת משופרת באמצעות שיתוף פעולה. [מיומנות 1.C]

    • CRD-1.A.1 חדשנות מחושבת כוללת תוכנה כחלק אינטגרלי מפונקצייתה.
    • CRD-1.A.2 חדשנות מחושבת יכולה להיות פיזית (למשל, רכב נהיגה אוטונומי), תוכנת מחשוב לא פיזית (למשל, תוכנת עריכת תמונות) או מושג מחשוב לא פיזי (למשל, סחר אלקטרוני).
    • CRD-1.A.3 שיתוף פעולה יעיל מייצר חדשנות מחושבת המשקפת את מגוון הכישורים והזוויות מבט של אנשי העיצוב שלה.
    • CRD-1.A.4 שיתוף פעולה הכולל זוויות מבט מגוונות עוזר למנוע טיפוס בהתפתחות חדשנות מחושבות.
    • CRD-1.A.5 ייעוץ ותקשורת עם משתמשים הם היבטים חשובים בהתפתחות חדשנות מחושבות.
    • CRD-1.A.6 מידע שנאסף ממשתמשים פוטנציאליים יכול לשמש להבנת מטרת התוכנה מזוויות מבט מגוונות ולפיתוח תוכנה המכלילה במלואה את הזוויות הללו.

    מטרת למידה CRD-1.B: הסבר כיצד חדשנות מחושבת מפותחת על ידי קבוצות אנשים. [מיומנות 1.C]

    • CRD-1.B.1 כלים מקוונים תומכים בשיתוף פעולה על ידי האפשרת למוכשרים לחלוק ולהעריך משוב על רעיונות ומסמכים.
    • CRD-1.B.2 מודלים נפוצים כמו תכנות בזוגיים קיימים כדי לפשוט את שיתוף הפעולה.

    מטרת למידה CRD-1.C: הדגמת מיומנויות אישיות יעילות במהלך שיתוף פעולה. [מיומנות 1.C]

    • CRD-1.C.1 צוותי שיתוף פעולה יעילים מתאמנים במיומנויות אישיות, לרבות אך לא רק:
      • תקשורת
      • בניית קונסנסוס
      • פתרון סכסוכים
      • משא ומתן

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Computing is a collaborative 协作 activity. Working in a team brings more perspectives, catches more errors, and produces better programs than working alone. Good collaboration uses consensus building, clear communication, and each member's strengths. Pair programming 结对编程 – two people at one computer, one typing and one reviewing – is a common practice. On the exam, you should be able to explain how collaboration improved a program (more ideas, fewer bugs, wider testing).

    עברית
    פאזל בתהליך ביצוע: שיתוף פעולה ועיצוב מודולרי מאגדים יחד את הפתרון
    פאזל בתהליך ביצוע: שיתוף פעולה ועיצוב מודולרי מאגדים יחד את הפתרון

    חישוב הוא פעילות שוטפת. עבודה בצוות מביאה נקודות מבט רבות יותר, חושפת טעויות רבות יותר ויוצרת תוכנות טובות יותר לעומת עבודה עצמאית. שיתוף פעולה איכותי משתמש בבניית הסכמה, תקשורת ברורה וחוזקות של כל חבר בצוות. תכנות בזוגיות – שני אנשים מול מחשב אחד, אחד מקליד ואחד בוחן – היא שיטה נפוצה. במבחן עליך להסביר כיצד שיתוף הפעולה שיפר את התוכנה (רעיונות נוספים, פחות באגים, בדיקה רחבה יותר).

    1.2

    Program Function and Purpose · ⁨פונקציה ומטרה של תוכנה⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.A: Describe the purpose of a computing innovation. [Skill 1.A]

    • CRD-2.A.1 The purpose of computing innovations is to solve problems or to pursue interests through creative expression.
    • CRD-2.A.2 An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.

    Learning Objective CRD-2.B: Explain how a program or code segment functions. [Skill 4.A]

    • CRD-2.B.1 A program is a collection of program statements that performs a specific task when run by a computer. A program is often referred to as software.
    • CRD-2.B.2 A code segment is a collection of program statements that is part of a program.
    • CRD-2.B.3 A program needs to work for a variety of inputs and situations.
    • CRD-2.B.4 The behavior of a program is how a program functions during execution and is often described by how a user interacts with it.
    • CRD-2.B.5 A program can be described broadly by what it does, or in more detail by both what the program does and how the program statements accomplish this function.

    Learning Objective CRD-2.C: Identify input(s) to a program. [Skill 3.A]

    • CRD-2.C.1 Program inputs are data sent to a computer for processing by a program. Input can come in a variety of forms, such as tactile, audio, visual, or text.
    • CRD-2.C.2 An event is associated with an action and supplies input data to a program.
    • CRD-2.C.3 Events can be generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs that affects the flow of execution.
    • CRD-2.C.4 Inputs usually affect the output produced by a program.
    • CRD-2.C.5 In event-driven programming, program statements are executed when triggered rather than through the sequential flow of control.
    • CRD-2.C.6 Input can come from a user or other programs.

    Learning Objective CRD-2.D: Identify output(s) produced by a program. [Skill 3.A]

    • CRD-2.D.1 Program outputs are any data sent from a program to a device. Program output can come in a variety of forms, such as tactile, audio, visual, or text.
    • CRD-2.D.2 Program output is usually based on a program's input or prior state (e.g., internal values).
    עברית

    הבנה מתמשכת (CRD-2): מפתחים יוצרים וחדשנים באמצעות תהליך עיצוב איטרטיבי הממוקד במשתמש, המשלב מחזורי מימוש ומשוב, ומשאיר שטח נרחב לניסוי ולקבלת סיכונים.

    מטרות למידה CRD-2.A: תאר את מטרת חדשנות מחשובית. [מיומנות 1.A]

    • CRD-2.A.1 מטרת חידושים מחשוביים היא לפתור בעיות או לעסוק בתחומי עניין דרך ביטוי יצירתי.
    • CRD-2.A.2 הבנת מטרת חדשנות מחשובית מעניקה למפתחים יכולת משופרת לפתח את החדשנות המחשובית הזו.

    מטרות למידה CRD-2.B: הסבר כיצד תוכנית או קטע קוד פועלים. [מיומנות 4.A]

    • CRD-2.B.1 תוכנית היא סדרה של פקודות תוכנה המבצעות משימה ספציפית כאשר הן מופעלות על ידי מחשב. תוכנית מכונה לעיתים קרובות תוכנה.
    • CRD-2.B.2 קטע קוד הוא סדרה של פקודות תוכנה המהווה חלק מתוכנית.
    • CRD-2.B.3 תוכנית צריכה לפעול עבור מגוון רחב של קלטות ומצבים.
    • CRD-2.B.4 ההתנהגות של תוכנית היא אופן פעולתה במהלך ביצוע, והיא מתוארת לעיתים קרובות על ידי אופן האינטראקציה של המשתמש איתה.
    • CRD-2.B.5 ניתן לתאר תוכנית באופן כללי לפי מה שהיא עושה, או בפירוט רב יותר גם לפי מה שהיא עושה וגם כיצד פקודות התוכנה מבצעות פונקציה זו.

    מטרות למידה CRD-2.C: זיהוי קלט(ות) לתוכנית. [מיומנות 3.A]

    • CRD-2.C.1 קלטות לתוכנית הן נתונים שנשלחים למחשב לעיבוד על ידי תוכנית. הקלט יכול להתקבל בצורות שונות, כגון מגע, שמע, ויזואלי או טקסט.
    • CRD-2.C.2 אירוע מקושר לפעולה ומספק נתוני קלט לתוכנית.
    • CRD-2.C.3 אירועים יכולים להיות מופעים כאשר מקשי לחץ, העכבר נלחץ, תוכנית מופעלת, או כל פעולה מוגדרת אחרת מתרחשת המשפיעה על זרימת הביצוע.
    • CRD-2.C.4 קלטות בדרך כלל משפיעות על הפלט שמיוצר על ידי תוכנית.
    • CRD-2.C.5 בתכנות מופע-תגובה, פקודות התוכנית מתבצעות כאשר הן מופעלות ולא דרך זרימת בקרה רציפה.
    • CRD-2.C.6 קלט יכול להגיע ממשתמש או מתוכניות אחרות.

    מטרת הלמידה CRD-2.D: זיהוי הפלט(ים) המיוצר(ים) על ידי תוכנית. [מיומנות 3.A]

    • CRD-2.D.1 פלט של תוכנית הוא כל נתון הנשלח מתוכנית למכשיר. פלט של תוכנית יכול להיות במגוון צורות, כגון מגע, שמיעה, ויזואלי או טקסט.
    • CRD-2.D.2 פלט של תוכנית בדרך כלל מבוסס על הקלט של התוכנית או על מצבה הקודם (למשל, ערכים פנימיים).

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Every program is written for a purpose – it solves a problem or pursues an interest. A program takes input 输入, processes it, and produces output 输出. Inputs can come from a user, a device, a file, or another program; outputs can be visual, audible, textual, or a signal to a device. Being able to state a program's purpose, and describe its inputs and outputs clearly, is a core skill (and part of the Create performance task).

    עברית

    כל תוכנה נכתבת למטרות ספציפיות – היא פותרת בעיה או רודפת אחר עניין. תוכנה לוקחת נתוני כניסה, מעבדת אותם ומייצרת תוצאת יציאה. נתוני הכניסה יכולים לבוא ממשתמש, מכשיר, קובץ או תוכנה אחרת; תוצאות היציאה יכולות להיות ויזואליות, שמיעתיות, טקסטואליות או אות למכשיר. יכולת לנסח את המטרה של תוכנה ולתאר את נתוני הכניסה והיציאה שלה בבירור היא מיומנות ליבה ( וחלק ממשימת הביצוע Create).

    כל תוכנה מתפרקת לכניסה, עיבוד ויציאה
    כל תוכנה מתפרקת לכניסה, עיבוד ויציאה
    כל תוכנה עוקבת אחרי דגם הכניסה-עיבוד-יציאה
    כל תוכנה עוקבת אחרי דגם הכניסה-עיבוד-יציאה
    Explore · ⁨חקור⁩

    Explore the input → processing → output model · ⁨חקור את דגם הקלט → עיבוד → תפוקה⁩

    Step through the IPO model. Every program takes some input, performs processing on it by following its instructions, then produces output — trace one weather-app example along the pipeline. · ⁨צעד דרך דגם IPO. כל תוכנה לוקחת קלט, מבצעת עליו עיבוד באמצעות הוראותיה, ולאחר מכן מייצרת תפוקה — עקוב אחת לדוגמה של אפליקציית מזג אוויר לאורך הזרם.⁩

    1.3

    Program Design and Development · ⁨עיצוב ופיתוח תוכנה⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.E: Develop a program using a development process. [Skill 1.B]

    • CRD-2.E.1 A development process can be ordered and intentional, or exploratory in nature.
    • CRD-2.E.2 There are multiple development processes. The following phases are commonly used when developing a program:
      • investigating and reflecting
      • designing
      • prototyping
      • testing
    • CRD-2.E.3 A development process that is iterative requires refinement and revision based on feedback, testing, or reflection throughout the process. This may require revisiting earlier phases of the process.
    • CRD-2.E.4 A development process that is incremental is one that breaks the problem into smaller pieces and makes sure each piece works before adding it to the whole.

    Learning Objective CRD-2.F: Design a program and its user interface. [Skill 1.B]

    • CRD-2.F.1 The design of a program incorporates investigation to determine its requirements.
    • CRD-2.F.2 Investigation in a development process is useful for understanding and identifying the program constraints, as well as the concerns and interests of the people who will use the program.
    • CRD-2.F.3 Some ways investigation can be performed are as follows:
      • collecting data through surveys
      • user testing
      • interviews
      • direct observations
    • CRD-2.F.4 Program requirements describe how a program functions and may include a description of user interactions that a program must provide.
    • CRD-2.F.5 A program's specification defines the requirements for the program.
    • CRD-2.F.6 In a development process, the design phase outlines how to accomplish a given program specification.
    • CRD-2.F.7 The design phase of a program may include:
      • brainstorming
      • planning and storyboarding
      • organizing the program into modules and functional components
      • creation of diagrams that represent the layouts of the user interface
      • development of a testing strategy for the program

    Learning Objective CRD-2.G: Describe the purpose of a code segment or program by writing documentation. [Skill 4.A]

    • CRD-2.G.1 Program documentation is a written description of the function of a code segment, event, procedure, or program and how it was developed.
    • CRD-2.G.2 Comments are a form of program documentation written into the program to be read by people and do not affect how a program runs.
    • CRD-2.G.3 Programmers should document a program throughout its development.
    • CRD-2.G.4 Program documentation helps in developing and maintaining correct programs when working individually or in collaborative programming environments.
    • CRD-2.G.5 Not all programming environments support comments, so other methods of documentation may be required.

    Learning Objective CRD-2.H: Acknowledge code segments used from other sources. [Skill 1.C]

    • CRD-2.H.1 It is important to acknowledge any code segments that were developed collaboratively or by another source.
    • CRD-2.H.2 Acknowledgement of a code segment(s) written by someone else and used in a program can be in the program documentation. The acknowledgement should include the origin or original author's name.
    עברית

    הבנה מתמשכת (CRD-2): מפתחים יוצרים וחדשנים באמצעות תהליך עיצוב איטרטיבי הממוקד במשתמש, המשלב מחזורי מימוש ומשוב, ומשאיר שטח נרחב לניסוי ולקבלת סיכונים.

    מטרת הלמידה CRD-2.E: פיתוח תוכנית באמצעות תהליך פיתוח. [מיומנות 1.B]

    • CRD-2.E.1 תהליך פיתוח יכול להיות מסודר ומכוון, או חקרני בעברו.
    • CRD-2.E.2 קיימים מספר תהליכי פיתוח. השלבים הבאים משמשים לרוב בפיתוח תוכנית:
      • חקירה והתבוננות
      • עיצוב
      • בניית אב-טיפוס
      • בדיקה
    • CRD-2.E.3 תהליך פיתוח איטרטיבי דורש שיפור ועדכון בהתבסס על משוב, בדיקות או התבוננות לאורך כל תהליך זה.这可能 necessitates returning to earlier phases of the process.
    • CRD-2.E.4 תהליך פיתוח אינקרמנטלי הוא אחד שמפר את הבעיה לחלקים קטנים יותר ומבטיח שכל חלק עובד לפני שמוסיפים אותו לכלל.

    מטרת הלמידה CRD-2.F: עיצוב תוכנית והממשק המשתמש שלה. [מיומנות 1.B]

    • CRD-2.F.1 עיצוב תוכנית כולל חקירה כדי לקבוע את הדרישות שלה.
    • CRD-2.F.2 חקירה בתהליך פיתוח היא שימושית להבנה ולזיהוי הגבלות התוכנית, כמו גם החששות והעניינים של האנשים שתשתמשו בתוכנית.
    • CRD-2.F.3 כמה דרכים שבהן ניתן לבצע חקירה הן כדלקמן:
      • איסוף נתונים באמצעות סקירות
      • בדיקות שימוש
      • ראיונות
      • צפייה ישירה
    • CRD-2.F.4 דרישות התוכנית מתארות כיצד תוכנית פועלת ועשויות לכלול תיאור של אינטראקציות משתמש שהתוכנית חייבת לספק.
    • CRD-2.F.5 המפרט של תוכנית מגדיר את הדרישות עבורה.
    • CRD-2.F.6 בתהליך הפיתוח, שלב העיצוב מפרט כיצד לבצע מפרט תוכנית נתון.
    • CRD-2.F.7 שלב העיצוב של תוכנית עשוי לכלול:
      • שיח מוחות
      • תכנון וסיפורבورد
      • ארגון התוכנית למודולים ולרכיבים פונקציונליים
      • יצירת דיאגרמות המייצגות את עיצוב הממשק
      • פיתוח אסטרטגיית בדיקה לתוכנית

    מטרת לימוד CRD-2.G: לתאר את מטרת מקטע קוד או תוכנית על ידי כתיבת מסמכות. [מיומנות 4.A]

    • CRD-2.G.1 מסמכות תוכנה היא תיאור כתוב של פונקציה של מקטע קוד, אירוע, פרוצדורה או תוכנית וכיצד נפתחה.
    • CRD-2.G.2 תגובות הן צורת מסמכות תוכנה שנכתבת בתוך התוכנית לקריאה על ידי אנשים ואינה משפיעה על אופן פעולת התוכנית.
    • CRD-2.G.3 מתכנתים צריכים לנסח מסמכות לתוכנית לאורך כל תהליך הפיתוח שלה.
    • CRD-2.G.4 מסמכות תוכנה מסייעת בפיתוח ובתחזוקה של תוכניות תקינות בעבודה עצמאית או בסביבות פיתוח שיתופי.
    • CRD-2.G.5 לא כל סביבות הפיתוח תומכות בתגובות, ולכן עשוי להיות צורך במתודולוגיות מסמכות אחרות.

    מטרת לימוד CRD-2.H: להכיר במקטעי קוד המשמשים ממקורות אחרים. [מיומנות 1.C]

    • CRD-2.H.1 חשוב להכיר בכל מקטעי קוד שנפתחו בשיתוף פעולה או על ידי מקור אחר.
    • CRD-2.H.2 הכרה בקטע קוד שנכתב על ידי מישהו אחר ושימש בתוכנית יכולה להיות מופיעה בתיעוד התוכנית. ההכרה צריכה לכלול את שם המקור או השם של המחבר המקורי.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Programs are built through an iterative 迭代 process, not in one straight line: investigate the problem and users, design (often with a diagram or written plan), implement in code, and test – then repeat. A large problem is broken into smaller pieces (decomposition 分解). Comments 注释 and clear naming document the design so others (and your future self) can understand it. Development is incremental – build and test a small piece, then add the next.

    Investigating what users actually need

    Before any code is written, the developer investigates the problem and the people who will use the program. Three ways to do that:

    • surveys 调查问卷 sent to potential users, which collect data from many people quickly;
    • interviews and direct observation of users doing the task by hand;
    • studying existing solutions to see what already works and what frustrates people.

    The findings are turned into a design. Two artefacts do that: a program requirements list saying exactly what the program must do, and diagrams representing the layout of the user interface 用户界面 — sketches showing which controls appear where, and what each one does when used. Designing the interface on paper first is cheaper than discovering after coding that the buttons are in the wrong place.

    Events, and programs that wait

    Not every program runs straight through from top to bottom. An event 事件 is generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs — and an event changes the flow of execution: the program pauses what it was doing and runs the code attached to that event, called an event handler 事件处理程序.

    This is why a program with a graphical interface can appear to be doing nothing: it is waiting for the next event. The order in which those events arrive is decided by the user, not by the programmer, so the same program can run its blocks in a different order each time it is used.

    עברית
    מתכנת מתקן שגיאות בעמדת עבודה עם מספר מסכים — עיצוב וביצוע איטרטיבי
    מתכנת מבצע דיבוג בעמדת עבודה רב-מסכים – עיצוב ובדיקה איטרטיביים

    תוכנות נבנות באמצעות תהליך איטרטיבי, ולא בקו ישר אחד: חקירת הבעיה והמשתמשים, עיצוב (לעיתים עם תרשים או תוכנית כתובה), מימוש בקוד ובדיקה – ולאחר מכן חזרה לתהליך. בעיה גדולה מפוצלת לחלקים קטנים (פירוק למרכיבים). הערות (Comments) ושמות ברורים מסמכים את העיצוב כך שאחרים (וגם אתה בעתיד) יוכלו להבין אותו. הפיתוח הוא אינקרמנטלי – בונה ובודק חלק קטן, ולאחר מכן מוסיף את הבא.

    שלבי פיתוח התוכנה, כאשר הבדיקה מספקת משוב לתיקון ולשיפור
    שלבי פיתוח התוכנה, כאשר הבדיקה מספקת משוב לתיקון ולשיפור
    תוכנה נבנת על ידי תהליך פיתוח איטרטיבי ואינקרמנטלי
    תוכנה נבנת על ידי תהליך פיתוח איטרטיבי ואינקרמנטלי

    בחינת הצרכים האמיתיים של משתמשים

    לפני כתיבת קוד כלשהו, המתכנן בוחן את הבעיה ואת האנשים שיעבדו עם התוכנה. שלושה דרכים לעשות זאת:

    • מסורות שנשלחים למשתמשים פוטנציאליים, ואוספים נתונים ממספר רב אנשים במהירות;
    • ראיונות ותצפית ישירה על משתמשים המבצעים את המשימה ידנית;
    • עיון בפתרונות קיימים כדי לראות מה עובד ומה מגרה את האנשים.

    הממצאים מומשים לתכנון. שני סוגי תוצרים עושים זאת: רשימת דרישות לתוכנה המגדירה בדיוק מה שהתוכנה חייבת לבצע, ותרשימים המייצגים את מבנה ממשק המשתמש — ציורים המראים אילו בקרים מופיעים באיזה מקום, ומה כל אחד מהם עושה כאשר משתמשים בו. תכנון הממשק על נייר קודם לכן זול יותר מאשר לגלות לאחר כתיבת הקוד שהכפתורים נמצאים במקום הלא נכון.

    אירועים ותוכניות המתנות

    לא כל תוכנית רצה בהמשך ישר מלמעלה למטה. אירוע נוצר כאשר מקש נלחץ, העכבר נלחץ, תוכנית מופעלת או מתרחש כל פעולה מוגדרת אחרת – ואירוע משנה את זרימת הביצוע: התוכנית מעצרת את מה שהיא עושה ורצה את הקוד הקשור לאירוע זה, הנקרא מטפל אירועים (Event Handler).

    זהו הסיבה שתוכנית בעלת ממשק גרפי יכולה להיראות כאילו היא אינה עושה כלום: היא מחכה לאירוע הבא. הסדר שבו אירועים אלו מגיעים נקבע על ידי המשתמש, ולא על ידי המתכנן, ולכן אותה תוכנית יכולה לבצע את בלוקי הקוד שלה בסדר שונה בכל פעם שהיא משמשת.

    Explore · ⁨חקור⁩

    Loop through the iterative development process · ⁨חזור בתהליך הפיתוח האיטרטיבי⁩

    Development is iterative — you repeat the stages, improving the program a little on each pass. Step around the loop and notice it returns to the start rather than ending after one run. · ⁨הפיתוח הוא איטרטיבי — אתה חוזר על השלבים, ומשפר את התוכנה מעט בכל מעבר. צעד סביב הלולאה ושים לב שהיא חוזרת להתחלה ולא מסתיימת לאחר פעם אחת.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    collaborative/kəˈlæbrətɪv/ שיתוף פעולה
    Pair programming/peə ˈprəʊɡræmɪŋ/ תכנות זוגי
    input/ˈɪnpʊt/ כניסה
    output/ˈaʊtpʊt/ תפוקה
    iterative/ˈɪtərətɪv/ איטרטיבי
    decomposition/ˌdiːkɒmpəˈzɪʃn/ פירוק
    Comments/ˈkɒments/ הערות
    surveys/ˈsɜːveɪz/ מסרים/סקרים
    diagrams representing the layout of the user interface תרשימים המייצגים את פריסת ממשק המשתמש
    event/ɪˈvent/ אירוע
    event handler/ɪˈvent ˈhændlə/ מעבד אירועים
    debugging/ˈdiːbʌɡɪŋ/ דיבוג
    syntax error/ˈsɪntæks ˈerə/ שגיאת סינטקס
    runtime error/ˈrʌntaɪm ˈerə/ שגיאת ריצה
    logic error/ˈlɒdʒɪk ˈerə/ שגיאת לוגיקה
    1.4

    Identifying and Correcting Errors · ⁨זיהוי ותיקון שגיאות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CRD-2): Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

    Learning Objective CRD-2.I: For errors in an algorithm or program: a. Identify the error. [Skill 4.C] b. Correct the error. [Skill 4.C]

    • CRD-2.I.1 A logic error is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly.
    • CRD-2.I.2 A syntax error is a mistake in the program where the rules of the programming language are not followed.
    • CRD-2.I.3 A run-time error is a mistake in the program that occurs during the execution of a program. Programming languages define their own run-time errors.
    • CRD-2.I.4 An overflow error is an error that occurs when a computer attempts to handle a number that is outside of the defined range of values.
    • CRD-2.I.5 The following are effective ways to find and correct errors:
      • test cases
      • hand tracing
      • visualizations
      • debuggers
      • adding extra output statement(s)

    Learning Objective CRD-2.J: Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program. [Skill 4.C]

    • CRD-2.J.1 In the development process, testing uses defined inputs to ensure that an algorithm or program is producing the expected outcomes. Programmers use the results from testing to revise their algorithms or programs.
    • CRD-2.J.2 Defined inputs used to test a program should demonstrate the different expected outcomes that are at or just beyond the extremes (minimum and maximum) of input data.
    • CRD-2.J.3 Program requirements are needed to identify appropriate defined inputs for testing.
    עברית

    הבנה מתמשכת (CRD-2): מפתחים יוצרים וחדשנים באמצעות תהליך עיצוב איטרטיבי הממוקד במשתמש, המשלב מחזורי מימוש ומשוב, ומשאיר שטח נרחב לניסוי ולקבלת סיכונים.

    מטרות למידה CRD-2.I: לגבי שגיאות באלגוריתם או בתוכנית: א. זיהוי השגיאה. [מיומנות 4.C] ב. תיקון השגיאה. [מיומנות 4.C]

    • CRD-2.I.1 שגיאת לוגיקה היא טעות באלגוריתם או בתוכנית הגורמת לה להתנהג בצורה לא נכונה או בלתי צפויה.
    • CRD-2.I.2 שגיאת סינטקס היא טעות בתוכנית שבה הכללים של שפת התכנות אינם נצבים.
    • CRD-2.I.3 שגיאת ריצה היא טעות בתוכנית המתרחשת במהלך ביצוע התוכנית. שפות תכנות מגדירות לעצמן שגיאות ריצה משלהן.
    • CRD-2.I.4 שגיאת גלישה (overflow) היא שגיאה המתרחשת כאשר מחשב מנסה לטפל במספר הנמצא מחוץ לטווח הערכים המוגדר.
    • CRD-2.I.5 הדרכים הבאות הן יעילות למציאת ושיופוך שגיאות:
      • מקרי בדיקה (test cases)
      • מעקב ידני (hand tracing)
      • ויזואליזציות
      • מתקני תיקון שגיאות (debuggers)
      • הוספת פקודת/פקודות הפלט נוסף(ות)

    מטרות למידה CRD-2.J: זיהוי קלט ופלט/התנהגות מצופים המתאימים לבדיקת נכונות האלגוריתם או התוכנית. [מיומנות 4.C]

    • CRD-2.J.1 בתהליך הפיתוח, בדיקה משתמשת בקלט מוגדר כדי לוודא שהאלגוריתם או התוכנית מייצרים את התוצאות המצופות. מתכנתים משתמשים בתוצאות הבדיקה כדי לשפר את האלגוריתמים או התוכניות שלהם.
    • CRD-2.J.2 הקלט המוגדר לביצוע בדיקות לתוכנית אמור להראות את התוצאות המצופות השונות הנמצאות בטווח הקצה (מינימום ומקסימום) של נתוני הקלט או סמוך אליהם.
    • CRD-2.J.3 דרישות התוכנית נדרשות כדי לזהות קלט מוגדר מתאים לבדיקות.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A bug is an error in a program; debugging 调试 is finding and fixing it. Three kinds:

    • a syntax error 语法错误 breaks the language's rules, so the program will not run;
    • a runtime error 运行时错误 crashes the program while it runs (e.g. dividing by zero);
    • a logic error 逻辑错误 lets it run but gives the wrong result.

    Find bugs by testing with different inputs, adding print statements to see values, and hand-tracing the code. Choose the test inputs deliberately: they should demonstrate the different expected outcomes at or just beyond the extremes — the minimum and maximum values the program should accept, and a value just outside each of them. A program that works on ordinary data very often fails on an empty list, a zero, or a value one past the end of a range, so those are the inputs worth trying first. Fixing one bug at a time and re-testing is the reliable method.

    Exam skill: be able to name the type of an error and describe a testing strategy that would catch it – a recurring multiple-choice and Create-task theme.

    Worked example. A program meant to print the average of two numbers instead runs avg = a + b / 2. Tracing the order of operations, / runs before +, so it computes $a+\tfrac{b}{2}$ rather than the average. Add parentheses to fix it: avg = (a + b) / 2. Testing with $a=4,\ b=6$ confirms the fix — the buggy line gives $4+3=7$, the corrected line gives $\tfrac{10}{2}=5$. Testing with known inputs is exactly how you find and confirm a logic error.

    עברית

    באג הוא שגיאה בתוכנה; דיבאג הוא מציאתה ותיקונה. שלושה סוגים:

    טבלת עקבות מקליטה את ערך כל משתנה בזמן ביצוע התוכנה, למציאת באגים
    טבלת עקבות מקליטה את ערך כל משתנה בזמן ביצוע התוכנה, למציאת באגים
    • שגיאת סינטקס מפרה את הכללים של השפה, ולכן התוכנית לא תרצה;
    • שגיאת ריצה גורמת לקרוש התוכנית בזמן ביצועה (למשל, חילוק באפס);
    • שגיאת לוגיקה מאפשרת לה להמשיך לרצות אך נותנת תוצאה שגויה.

    מצאו באגים על ידי בדיקה עם קלטות שונות, הוספת הודעות הדפסה לצפייה בערכים, ועקוב ידנית על הקוד. בחרו קלטות בדיקה במידת רצון: הן צריכות להמחיש תוצאות מצופיות שונות בנקודות הקיצוניות או מיד אחריהן – הערכים המינימליים והמקסימליים שהתוכנית אמורה לקבל, וערך אחד מעבר לכל אחד מהם. תוכנית שעובדת עם נתונים רגילים לעיתים קרובות נכשלת עם רשימה ריקה, אפס, או ערך אחד מעבר לסוף טווח, ולכן אלו הקלטות ששווה לנסות קודם כל. תיקון באג אחד בכל פעם ובדיקה מחודשת היא השיטה האמינה.

    מיומנות לבחינה: ניתן לשמו את סוג השגיאה ולתאר אסטרטגיית בדיקה שתוכל to catch it – נושא חוזר בבחירת רב-בחירה ומשימות יצירה.

    שלושה סוגים של שגיאת תכנות: סינטקס, לוגיקה ורציה
    שלושה סוגים של שגיאת תכנות: סינטקס, לוגיקה ורציה

    דוגמה מפורטת. תוכנית שנועדה להדפיס את הממוצע של שני מספרים מפיקה במקום זאת avg = a + b / 2. בעקבות סדר הפעולות, / מתבצע לפני +, ולכן היא מחשבת $a+\tfrac{b}{2}$ במקום הממוצע. הוסיפו סוגריים כדי לתקן: avg = (a + b) / 2. בדיקה עם $a=4,\ b=6$ מאשרת את התקון — השורה המכילה את השגיאה נותנת $4+3=7$, והשורה המתוקנת נותנת $\tfrac{10}{2}=5$. בדיקה עם קלט ידוע הוא בדיוק האופן שבו מוצאים ומאשרים שגיאת לוגיקה.

    Explore · ⁨חקור⁩

    Trace the guessing-game logic and spot a logic error · ⁨עקוב אחרי לוגיקת משחק הניחוש וזהה שגיאת לוגיקה⁩

    Drag the guess and watch which branch runs. A logic error would send the same guess down the wrong branch — the program still runs, but gives the wrong message. The secret number here is 50. · ⁨גרור את הניחוש וצפה איזה ערוץ פועל. שגיאת לוגיקה תשלח את אותה ניחוש לערוץ הלא נכון — התוכנה עדיין פועלת, אך נותנת הודעה שגויה. המספר הסודי כאן הוא 50.⁩

    1.4

    Exam tips · ⁨טיפים לבחינות⁩

    English
    • Much of CSP is assessed through the Create and written performance tasks — explain your reasoning clearly, not just your result.
    • Know the benefits of collaboration and how diverse perspectives reduce bias in a program.
    • Use precise vocabulary (iterative development, program requirements) when you describe a design process.
    • Give and take feedback constructively; credit collaborators and sources.
    • Break a large problem into smaller modules that a team can build in parallel.
    עברית
    • חלק ניכר מה-CSP מוערך באמצעות משימות היצירה ביצוע וכתוביות — הסבירו את הסיבה שלכם בבירור, לא רק את התוצאה.
    • הכירו את היתרונות של עבודה משותפת ואיך זוויות מבט מגוונות מצמצמות טיעון בתוכנית.
    • השתמשו במונחים מדויקים (פיתוח איטרטיבי, דרישות התוכנית) כאשר אתם מתארים תהליך עיצוב.
    • תנו וקבלו משוב בצורה בונה; תנו כבוד לשותפים ולמקורות.
    • פצלו בעיה גדולה למודולים קטנים יותר שהצוות יכול לבנות במקביל.
  • 2

    Data · ⁨נתונים⁩

    Watch lesson · ⁨צפה בשיעור⁩
    2.1

    Binary Numbers · ⁨מספרים בינאריים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (DAT-1): The way a computer represents data internally is different from the way the data are interpreted and displayed for the user. Programs are used to translate data into a representation more easily understood by people.

    Learning Objective DAT-1.A: Explain how data can be represented using bits. [Skill 3.C]

    • DAT-1.A.1 Data values can be stored in variables, lists of items, or standalone constants and can be passed as input to (or output from) procedures.
    • DAT-1.A.2 Computing devices represent data digitally, meaning that the lowest-level components of any value are bits.
    • DAT-1.A.3 Bit is shorthand for binary digit and is either 0 or 1.
    • DAT-1.A.4 A byte is 8 bits.
    • DAT-1.A.5 Abstraction is the process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the idea.
    • DAT-1.A.6 Bits are grouped to represent abstractions. These abstractions include, but are not limited to, numbers, characters, and color.
    • DAT-1.A.7 The same sequence of bits may represent different types of data in different contexts.
    • DAT-1.A.8 Analog data have values that change smoothly, rather than in discrete intervals, over time. Some examples of analog data include pitch and volume of music, colors of a painting, or position of a sprinter during a race.
    • DAT-1.A.9 The use of digital data to approximate real-world analog data is an example of abstraction.
    • DAT-1.A.10 Analog data can be closely approximated digitally using a sampling technique, which means measuring values of the analog signal at regular intervals called samples. The samples are measured to figure out the exact bits required to store each sample.

    Learning Objective DAT-1.B: Explain the consequences of using bits to represent data. [Skill 1.D]

    • DAT-1.B.1 In many programming languages, integers are represented by a fixed number of bits, which limits the range of integer values and mathematical operations on those values. This limitation can result in overflow or other errors.
    • DAT-1.B.2 Other programming languages provide an abstraction through which the size of representable integers is limited only by the size of the computer's memory; this is the case for the language defined in the exam reference sheet.
    • DAT-1.B.3 In programming languages, the fixed number of bits used to represent real numbers limits the range and mathematical operations on these values; this limitation can result in round-off and other errors. Some real numbers are represented as approximations in computer storage.
      • Exclusion statement: Specific range limitations for real numbers are outside the scope of this course and the AP Exam.

    Learning Objective DAT-1.C: For binary numbers: a. Calculate the binary (base 2) equivalent of a positive integer (base 10) and vice versa. [Skill 2.B] b. Compare and order binary numbers. [Skill 2.B]

    • DAT-1.C.1 Number bases, including binary and decimal, are used to represent data.
    • DAT-1.C.2 Binary (base 2) uses only combinations of the digits zero and one.
    • DAT-1.C.3 Decimal (base 10) uses only combinations of the digits $0 - 9$.
    • DAT-1.C.4 As with decimal, a digit's position in the binary sequence determines its numeric value. The numeric value is equal to the bit's value (0 or 1) multiplied by the place value of its position.
    • DAT-1.C.5 The place value of each position is determined by the base raised to the power of the position. Positions are numbered starting at the rightmost position with 0 and increasing by 1 for each subsequent position to the left.
    עברית

    הבנה מתמשכת (DAT-1): הדרך שבה מחשב מייצג נתונים בפנים היא שונה מהדרך שבה הנתונים מופנשים ומוצגים למשתמש. תוכניות משמשות להמרת נתונים לייצוג שמבין אנשים בקלות יותר.

    מטרת למידה DAT-1.A: הסבר כיצד ניתן לייצג נתונים באמצעות ביטים. [מיומנות 3.C]

    • DAT-1.A.1 ערכי נתונים יכולים להיות מאוחזים במשתנים, ברשימות פריטים או בקבועים עצמאיים, ויכולים לעבור כקלט (או כתוצאה) לתוך פרוצדורות.
    • DAT-1.A.2 התקני מחשוב מייצגים נתונים דיגיטלית, כלומר שהרכיבים ברמה הנמוכה ביותר של כל ערך הם ביטים.
    • DAT-1.A.3 ביט הוא קיצור של דיגיט ביינרי, והוא יכול להיות 0 או 1.
    • DAT-1.A.4 בייט הוא 8 ביטים.
    • DAT-1.A.5 ה abstraction (התפשטות) היא תהליך של צמצום המורכבות על ידי התמקדות ברעיון המרכזי. על ידי הסתרת פרטים שאינם רלוונטיים לשאלה הדורשת את תשובתה וקבוצת יחד פרטים רלוונטיים ושימושיים, הה abstraction מצמצמת מורכבות ומאפשרת להתמקד ברעיון.
    • DAT-1.A.6 ביטים מקובצים כדי לייצג abstractions. abstractions אלו כוללות, אך אינן מוגבלות ל-, מספרים, תווים וצבעים.
    • DAT-1.A.7 אותה רצף של ביטים יכול לייצג סוגי נתונים שונים בהקשרים שונים.
    • DAT-1.A.8 נתונים אנלוגיים הם בעלי ערכים השונים בצורה חלקה, ולא בתחומים נפרדים, לאורך זמן. דוגמאות לנתונים אנלוגיים כוללים גובה טון ועוצמת קול במוסיקה, צבעים של ציור, או מיקומו של רץ ספרינט בזמן מירוץ.
    • DAT-1.A.9 השימוש בנתונים דיגיטליים כדי לקירוב נתונים אנלוגיים מהעולם האמיתי הוא דוגמה ל- abstraction.
    • DAT-1.A.10 ניתן לקרוב נתונים אנלוגיים באופן מדויק בדיגיטלי באמצעות שיטת דגימה, המשמעות מדידת ערכים של האות האנלוגי במרווחים קבועים הנקראים דגימות. הדגימות נמדדות כדי לחשב את הביטים המדויקים הנדרשים לאחסון כל דגימה.

    מטרת למידה DAT-1.B: הסבר ההשלכות של שימוש בביטים לייצוג נתונים. [מיומנות 1.D]

    • DAT-1.B.1 בשפות תכנות רבות, שלמים מיוצגים על ידי מספר קבוע של ביטים, מה שמגביל את הטווח של ערכי שלמים ופעולות מתמטיות על ערכים אלו. הגבלה זו עלולה לגרום to overflow או שגיאות אחרות.
    • DAT-1.B.2 שפות תכנות אחרות מספקות abstraction שבו גודל של שלמים שניתן לייצג מוגבל רק בגודל הזיכרון של המחשב; זהו המקרה עבור השפה המוגדרת בדף הרפרנס לבחינה.
    • DAT-1.B.3 בשפות תכנות, מספר הביטים הקבוע המשמש לייצוג מספרים ממשיים מגביל את הטווח ואת הפעולות המתמטיות על ערכים אלו; הגבלה זו עלולה לגרום to round-off ושגיאות אחרות. חלק ממספרים ממשיים מיוצגים כקירובים באחסון המחשב.
      • הצהרת исключение: הגבלות טווח ספציפיות למספרים ממשיים הן מחוץ לתחום ההשכלה של הקורס ובחינת AP.

    מטרת למידה DAT-1.C: עבור מספרים ביינריים: א. חשב את הערך הבוינרי (בסיס 2) של שלם חיובי (בסיס 10) ולהפך. [מיומנות 2.B] ב. השווה וסדר מספרים ביינריים. [מיומנות 2.B]

    • DAT-1.C.1 בסיסי מספרים, כולל בינארי ועשרוני, משמשים לייצוג נתונים.
    • DAT-1.C.2 מערכת בינארית (בסיס 2) משתמשת רק בשילובים של הספרות אפס ואחד.
    • DAT-1.C.3 מערכת עשרונית (בסיס 10) משתמשת רק בשילובים של הספרות $0 - 9$.
    • DAT-1.C.4 כמו במערכת העשרונית, מיקום הספרה ברצף הבינארי קובע את ערכה המספרי. הערך המספרי שווה לערך הביט (0 או 1) כפול ערך המקום של המיקום שלו.
    • DAT-1.C.5 ערך המקום של כל מיקום נקבע על ידי הבסיס מורם בחזקה של המיקום. המיקומים מסומנים החל מהמיקום הימני ביותר עם 0 ועולים ב-1 עבור כל מיקום נוסף שמאלה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Computers store everything as bits 位 – each a 0 or 1. A group of 8 bits is a byte 字节. Numbers are stored in binary 二进制 (base 2), where each place is a power of two ($1, 2, 4, 8, 16, \dots$) instead of the powers of ten in decimal 十进制. For example, binary 1011 is $8+2+1=11$.

    Worked example. To convert binary 1101 to decimal, write the place values 8 4 2 1 under the bits 1 1 0 1 and add the ones that have a 1: $8+4+0+1=13$. Going the other way, convert 19 to binary by subtracting the largest power of two that fits: $19-16=3$, then $3-2=1$, then $1-1=0$, so the bits sit at the 16, 2, and 1 places $\rightarrow$ 10011 (check: $16+2+1=19$).

    Because a computer has a finite number of bits, it can represent only a limited range of values. This causes two effects tested on the exam:

    • Overflow error 溢出错误: a number too large for the available bits cannot be stored correctly.
    • Round-off (rounding) error 舍入错误: numbers with decimals (real numbers) can only be approximated, because infinitely many real values must map onto finitely many bit patterns.

    All data – text, images, sound – is ultimately encoded as binary. An image is a grid of pixels 像素, each stored as numbers for its colors; sound is stored as numbers sampled many times per second.

    עברית
    ספרות בינאריות על תצוגה — כל הנתונים הדיגיטליים מאוספים בסופו של דבר כ-0s ו-1s
    ספרות בינאריות על תצוגה — כל הנתונים הדיגיטליים מאוספים בסופו של דבר כ-0s ו-1s

    מחשבים אוספים הכל כ-ביטים – כל אחד מהם 0 או 1. קבוצה של 8 ביטים היא בייט. מספרים מאוספים ב-בינארי (בסיס 2), שבו כל מקום הוא חזקה של שתיים ($1, 2, 4, 8, 16, \dots$) במקום חזקות של עשר ב-עשרוני. לדוגמה, בינארי 1011 הוא $8+2+1=11$.

    טבלת ערכי מקומיים ל-8 ביטים: ה-1s נמצאות מתחת לערכים שמסכמים למספר
    טבלת ערכי מקומיים ל-8 ביטים: ה-1s נמצאות מתחת לערכים שמסכמים למספר

    דוגמה מפורטת. כדי להמיר מספר בינארי 1101 לעשרוני, כתבו את ערכי המקומות 8 4 2 1 מתחת לספרות הבינאריות 1 1 0 1 וחברו את אלו שיש להם 1: $8+4+0+1=13$. בכיוון ההפוך, המירו 19 לבינארי על ידי חיסור של החזקה הגדולה ביותר של 2 שמתאימה: $19-16=3$, ואז $3-2=1$, ואז $1-1=0$, כך שהספרות יושבות במקומות ה-16, ה-2 וה-1 $\rightarrow$ 10011 (בדיקה: $16+2+1=19$).

    מכיוון שמחשב יש לו מספר מוגבל של ביטים, הוא יכול לייצג רק טווח מוגבל של ערכים. זה גורם לשני השפעות שנבדקות במבחן:

    • שגיאת גלגל (Overflow): מספר גדול מדי עבור הביטים הזמינים לא יכול להיות מאוסף נכון.
    • שגיאת עיגול (Round-off/rounding): מספרים עם עשרוני (מספרים ממשיים) יכולים להיות רק קירוב, מכיוון שצריך להמיר מספר אינסופי של ערכים ממשיים לתוך מספר סופי של דפוסי ביטים.

    כל הנתונים – טקסט, תמונות, צליל – מוצפנים בסופו של דבר כבינארי. תמונה היא רשת של פיקסלים, כל אחד מהם מאוסף כמספרים לצבעים שלו; צליל מאוסף כמספרים הנדגמים פעמים רבות בשנייה.

    Explore · ⁨חקור⁩

    Convert between binary and decimal · ⁨מירוג בין בינארי לעשרוני⁩

    Computers store numbers in binary (base 2). Each bit is a power of two; add the place values of the 1-bits to read the decimal number. · ⁨מחשבים מאחסנים מספרים ב-בינארי (בסיס 2). כל ביט הוא חזקה של שתיים; הוסף את ערכי המקומות של הביטים בערך 1 כדי לקרוא את המספר העשרוני.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    bits/bɪts/ ביטים
    byte/baɪt/ בייט
    binary/ˈbaɪnəri/ דו-ספרתי
    decimal/ˈdesɪml/ עשרוני
    Overflow error/ˌəʊvəˈfləʊ ˈerə/ שגיאת גלישה
    Round-off (rounding) error/raʊnd ɒf ˈerə/ שגיאת עיגול
    pixels/ˈpɪkslz/ פיקסלים
    Watch lesson · ⁨צפה בשיעור⁩
    2.2

    Data Compression · ⁨דחיסת נתונים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (DAT-1): The way a computer represents data internally is different from the way the data are interpreted and displayed for the user. Programs are used to translate data into a representation more easily understood by people.

    Learning Objective DAT-1.D: Compare data compression algorithms to determine which is best in a particular context. [Skill 1.D]

    • DAT-1.D.1 Data compression can reduce the size (number of bits) of transmitted or stored data.
    • DAT-1.D.2 Fewer bits does not necessarily mean less information.
    • DAT-1.D.3 The amount of size reduction from compression depends on both the amount of redundancy in the original data representation and the compression algorithm applied.
    • DAT-1.D.4 Lossless data compression algorithms can usually reduce the number of bits stored or transmitted while guaranteeing complete reconstruction of the original data.
    • DAT-1.D.5 Lossy data compression algorithms can significantly reduce the number of bits stored or transmitted but only allow reconstruction of an approximation of the original data.
    • DAT-1.D.6 Lossy data compression algorithms can usually reduce the number of bits stored or transmitted more than lossless compression algorithms.
    • DAT-1.D.7 In situations where quality or ability to reconstruct the original is maximally important, lossless compression algorithms are typically chosen.
    • DAT-1.D.8 In situations where minimizing data size or transmission time is maximally important, lossy compression algorithms are typically chosen.
    עברית

    הבנה מתמשכת (DAT-1): הדרך שבה מחשב מייצג נתונים בפנים היא שונה מהדרך שבה הנתונים מופנשים ומוצגים למשתמש. תוכניות משמשות להמרת נתונים לייצוג שמבין אנשים בקלות יותר.

    מטרות למידה DAT-1.D: השוואת אלגוריתמי דחיסת נתונים כדי לקבוע איזה מהם הטוב ביותר בהקדם נתון. [מיומנות 1.D]

    • DAT-1.D.1 דחיסת נתונים יכולה להקטין את גודל (מספר הביטים) של הנתונים המועברים או מאוחים.
    • DAT-1.D.2 פחות ביטים אינו חייב להציג פחות מידע.
    • DAT-1.D.3 מידת ההקטנה בגודל כתוצאה מדחיסה תלויה גם בכמות החזרה (redundancy) בייצוג המקורי של הנתונים וגם באלגוריתם הדחיסה שיושם.
    • DAT-1.D.4 אלגוריתמי דחיסת נתונים לא מאבדים נתונים (lossless) יכולים בדרך כלל להקטין את מספר הביטים הארוכים או המועברים תוך הבטחת שחזור מלא של הנתונים המקוריים.
    • DAT-1.D.5 אלגוריתמי דחיסת נתונים מאבדים נתונים (lossy) יכולים להקטין באופן משמעותי את מספר הביטים הארוכים או המועברים אך מאפשרים רק שחזור של קירוב לנתונים המקוריים.
    • DAT-1.D.6 אלגוריתמי דחיסת נתונים מאבדים נתונים יכולים בדרך כלל להקטין את מספר הביטים הארוכים או המועברים יותר מאשר אלגוריתמי דחיסה לא מאבדים נתונים.
    • DAT-1.D.7 במקרים שבהם האיכות או היכולת לשחזר את המקורי הם בעלי חשיבות מקסימלית, בדרך כלל נבחרים אלגוריתמי דחיסה לא מאבדים נתונים.
    • DAT-1.D.8 במקרים שבהם מיזעור גודל הנתונים או זמן ההעברה הוא בעל חשיבות מקסימלית, בדרך כלל נבחרים אלגוריתמי דחיסה מאבדים נתונים.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Compression 压缩 reduces the number of bits needed to store or send data. Two kinds:

    • Lossless compression 无损压缩 lets you restore the exact original data (used for text and programs, where every bit matters).
    • Lossy compression 有损压缩 throws away some data to shrink the size further (used for photos, music, video, where a small quality loss is acceptable).

    Choosing between them trades size against fidelity: lossless keeps everything but saves less; lossy saves more but loses detail permanently. Prefer lossless when the data must be exact.

    עברית
    צלחות דיסק קשיח וראש: נתונים דחוסים ואחסונים כדפוסים מגנטיים
    צלחות דיסק קשיח וראש: נתונים דחוסים ואוספים כדפוסי מגנטיים

    דחיסה מצמצמת את מספר הביטים הנדרשים לאחסון או לשליחת נתונים. שני סוגים:

    שיטות דחיסה: אובדנית לעומת אובדנית, עם דוגמאות נפוצות
    שיטות דחיסה: ללא איבוד נתונים לעומת עם איבוד נתונים, עם דוגמאות נפוצות
    • דחיסה ללא איבוד נתונים מאפשרת לשחזר את הנתונים המקוריים בדיוק (משמשת בטקסט ובתוכניות, שבו כל ביט חשוב).
    • דחיסה עם איבוד נתונים מוותרת על חלק מהנתונים כדי להקטין את הגודל עוד יותר (משמשת בתמונות, מוזיקה וסרטונים, שבה פגיעה קלה באיכות מתקבלת).

    בחירה בין השניים דורשת מסחר בגודל מול נאמנות: דחיסה ללא איבוד שמרה על הכל אך חוסכת פחות; דחיסה עם איבוד חוסכת יותר אך מאבדת פרטים לצמיתות. מומלץ לבחור בדחיסה ללא איבוד כאשר הנתונים חייבים להיות מדויקים.

    Explore · ⁨חקור⁩

    Compress a run of repeats · ⁨דחוס רצף של חזרות⁩

    Run-length encoding is a lossless compression: a long run of the same symbol is replaced by the symbol and a count, shrinking the data with no information lost. · ⁨הקודד רצפים הוא דחיסה ללא אובדן: רצף ארוך של אותו סימן מוחלף על ידי הסימן והספירה, מה שמצמצם את הנתונים ללא איבוד מידע.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Compression/kəmˈpreʃn/ דחיסה
    Lossless compression/ˈlɒsləs kəmˈpreʃn/ דחיסה ללא אובדן
    Lossy compression/ˈlɒsi kəmˈpreʃn/ דחיסה עם אובדן
    Data/ˈdeɪtə/ נתונים
    information/ˌɪnfəˈmeɪʃn/ מידע
    correlation/ˌkɒrɪˈleɪʃn/ קורלציה
    Metadata/ˌmetəˈdeɪtə/ נתוני מטא
    filtering/ˈfɪltərɪŋ/ סינון
    visualizing/ˈvɪʒuːəlaɪzɪŋ/ ויזואליזציה
    privacy/ˈprɪvəsi/ פרטיות
    Watch lesson · ⁨צפה בשיעור⁩
    2.3

    Extracting Information from Data · ⁨חילוץ מידע מנתונים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (DAT-2): Programs can be used to process data, which allows users to discover information and create new knowledge.

    Learning Objective DAT-2.A: Describe what information can be extracted from data. [Skill 5.B]

    • DAT-2.A.1 Information is the collection of facts and patterns extracted from data.
    • DAT-2.A.2 Data provide opportunities for identifying trends, making connections, and addressing problems.
    • DAT-2.A.3 Digitally processed data may show correlation between variables. A correlation found in data does not necessarily indicate that a causal relationship exists. Additional research is needed to understand the exact nature of the relationship.
    • DAT-2.A.4 Often, a single source does not contain the data needed to draw a conclusion. It may be necessary to combine data from a variety of sources to formulate a conclusion.

    Learning Objective DAT-2.B: Describe what information can be extracted from metadata. [Skill 5.B]

    • DAT-2.B.1 Metadata are data about data. For example, the piece of data may be an image, while the metadata may include the date of creation or the file size of the image.
    • DAT-2.B.2 Changes and deletions made to metadata do not change the primary data.
    • DAT-2.B.3 Metadata are used for finding, organizing, and managing information.
    • DAT-2.B.4 Metadata can increase the effective use of data or data sets by providing additional information.
    • DAT-2.B.5 Metadata allow data to be structured and organized.

    Learning Objective DAT-2.C: Identify the challenges associated with processing data. [Skill 5.D]

    • DAT-2.C.1 The ability to process data depends on the capabilities of the users and their tools.
    • DAT-2.C.2 Data sets pose challenges regardless of size, such as:
      • the need to clean data
      • incomplete data
      • invalid data
      • the need to combine data sources
    • DAT-2.C.3 Depending on how data were collected, they may not be uniform. For example, if users enter data into an open field, the way they choose to abbreviate, spell, or capitalize something may vary from user to user.
    • DAT-2.C.4 Cleaning data is a process that makes the data uniform without changing their meaning (e.g., replacing all equivalent abbreviations, spellings, and capitalizations with the same word).
    • DAT-2.C.5 Problems of bias are often created by the type or source of data being collected. Bias is not eliminated by simply collecting more data.
    • DAT-2.C.6 The size of a data set affects the amount of information that can be extracted from it.
    • DAT-2.C.7 Large data sets are difficult to process using a single computer and may require parallel systems.
    • DAT-2.C.8 Scalability of systems is an important consideration when working with data sets, as the computational capacity of a system affects how data sets can be processed and stored.
    עברית

    הבנה מתמשכת (DAT-2): ניתן להשתמש בתוכניות לעיבוד נתונים, מה שמאפשר למשתמשים לחשוף מידע וליצד ידע חדש.

    מטרות למידה DAT-2.A: תיאור המידע שיכול להיות חולץ מהנתונים. [מיומנות 5.B]

    • DAT-2.A.1 מידע הוא אוסף העובדות והדפוסים שחולצו מהנתונים.
    • DAT-2.A.2 הנתונים מספקים הזדמנויות לזיהוי מגמות, ליצירת קשרים ולפתרון בעיות.
    • DAT-2.A.3 נתונים מעובדים דיגיטלית עשויים להציג קשר בין משתנים. קשר שנמצא בנתונים אינו מצביע בהכרח על קיום קשר סיבתי. נדרשת מחקר נוסף כדי להבין את האופי המדויק של הקשר.
    • DAT-2.A.4 לעיתים, מקור יחיד אינו מכיל את הנתונים הנדרשים למסקנה. ייתכן שיהיה צורך לשלב נתונים ממגוון מקורות כדי לנסח מסקנה.

    מטרות לימוד DAT-2.B: לתאר מה מידע ניתן לחלץ ממטא-דאטה. [מיומנות 5.B]

    • DAT-2.B.1 מטא-דאטה הם נתונים על נתונים. לדוגמה, חלק ה-נתונים עשוי להיות תמונה, בעוד שה-מטא-דאטה עשויים לכלול את תאריך היצירה או גודל הקובץ של התמונה.
    • DAT-2.B.2 שינויים ומחקיקות שנעשו במטא-דאטה אינם משנים את הנתונים הראשיים.
    • DAT-2.B.3 מטא-דאטה משמשים למציאת ארגון וניהול מידע.
    • DAT-2.B.4 מטא-דאטה יכולים להגדיל את השימוש היעיל בנתונים או בקבוצות נתונים על ידי מתן מידע נוסף.
    • DAT-2.B.5 מטא-דאטה מאפשרים לנתונים להיות מבוססים וארוגים.

    מטרות לימוד DAT-2.C: לזהות את האתגרים הקשורים בעיבוד נתונים. [מיומנות 5.D]

    • DAT-2.C.1 היכולת לעבד נתונים תלויה ביכולות המשתמשים ובכלי העבודה שלהם.
    • DAT-2.C.2 קבוצות נתונים מציבות אתגרים ללא קשר לגודל, כגון:
      • הצורך לנקות נתונים
      • נתונים לא מלאים
      • נתונים לא תקפים
      • הצורך לשלב מקורות נתונים
    • DAT-2.C.3 בהתאם לכיצד נאספו הנתונים, הם עשויים שלא להיות אחידים. לדוגמה, אם משתמשים מזינים נתונים בשדה פתוח, הדרך שבה הם בוחרים לקצר, לכתוב או להדפיס אותיות באות גדולה עשויה להשתנות ממשתמש למשתמש.
    • DAT-2.C.4 ניקוי נתונים הוא תהליך הופך את הנתונים לאחידים ללא שינוי המשמעות שלהם (למשל, החלפת כל הקיצורים, הכתיבים וההדפסות באות גדולה המקבילים למילה אחת).
    • DAT-2.C.5 בעיות של סטייה נוצרות לעיתים קרובות על ידי הסוג או המקור של הנתונים שנאספו. סטייה אינה נעלמת רק על ידי איסוף יותר נתונים.
    • DAT-2.C.6 גודל קבוצת הנתונים משפיע על כמות המידע שמגיע לחלץ ממנה.
    • DAT-2.C.7 קבוצות נתונים גדולות הן קשות לעיבוד באמצעות מחשב יחיד ועשויות להצריך מערכות מקבילות.
    • DAT-2.C.8 הרחבה של מערכות היא שיקול חשוב בעבודה עם מאגרי נתונים, שכן הקיבולת החישובית של המערכת משפיעה על אופן עיבוד ואחסון מאגרי הנתונים.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Data 数据 becomes useful when we extract information 信息 from it – patterns, trends, and answers to questions. Large data sets can reveal correlations a small one cannot, but data must be cleaned (fixing errors and inconsistencies) and often transformed or filtered first. A correlation 相关性 between two things does not prove that one causes the other – a key caution. Metadata 元数据 (data about data, like a photo's date and location) helps organize and search large collections.

    עברית

    נתונים הופכים לשימושיים כשאנו חוברים מהם מידע – דפוסים, מגמות ותשובות לשאלות. מערכי נתונים גדולים יכולים לחשוף קשרים שאין למערכים קטנים, אך יש לנקות את הנתונים (תיקון שגיאות ואי-סגנונים) ולעיתים גם להמיר או לסנן אותם תחילה. קורלציה בין שני דברים אינה מוכיחה שזה גורם לזה – זה אספקט בטיחותי מרכזי. מטא-נתונים (נתונים על נתונים, כמו תאריך ומיקום של תמונה) עוזרים לארגן ולחפש באוספים גדולים.

    2.4

    Using Programs with Data · ⁨שימוש בתוכניות עם נתונים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (DAT-2): Programs can be used to process data, which allows users to discover information and create new knowledge.

    Learning Objective DAT-2.D: Extract information from data using a program. [Skill 2.B]

    • DAT-2.D.1 Programs can be used to process data to acquire information.
    • DAT-2.D.2 Tables, diagrams, text, and other visual tools can be used to communicate insight and knowledge gained from data.
    • DAT-2.D.3 Search tools are useful for efficiently finding information.
    • DAT-2.D.4 Data filtering systems are important tools for finding information and recognizing patterns in data.
    • DAT-2.D.5 Programs such as spreadsheets help efficiently organize and find trends in information.
    • DAT-2.D.6 Some processes that can be used to extract or modify information from data include the following:
      • transforming every element of a data set, such as doubling every element in a list, or adding a parent's email to every student record
      • filtering a data set, such as keeping only the positive numbers from a list, or keeping only students who signed up for band from a record of all the students
      • combining or comparing data in some way, such as adding up a list of numbers, or finding the student who has the highest GPA
      • visualizing a data set through a chart, graph, or other visual representation

    Learning Objective DAT-2.E: Explain how programs can be used to gain insight and knowledge from data. [Skill 5.B]

    • DAT-2.E.1 Programs are used in an iterative and interactive way when processing information to allow users to gain insight and knowledge about data.
    • DAT-2.E.2 Programmers can use programs to filter and clean digital data, thereby gaining insight and knowledge.
    • DAT-2.E.3 Combining data sources, clustering data, and classifying data are parts of the process of using programs to gain insight and knowledge from data.
    • DAT-2.E.4 Insight and knowledge can be obtained from translating and transforming digitally represented information.
    • DAT-2.E.5 Patterns can emerge when data are transformed using programs.
    עברית

    הבנה מתמשכת (DAT-2): ניתן להשתמש בתוכניות לעיבוד נתונים, מה שמאפשר למשתמשים לחשוף מידע וליצד ידע חדש.

    מטרות למידה DAT-2.D: חילוץ מידע מהנתונים באמצעות תוכנה. [מיומנות 2.B]

    • DAT-2.D.1 ניתן להשתמש בתוכנות לעיבוד נתונים כדי לרכוש מידע.
    • DAT-2.D.2 טבלאות, גרפים, טקסט וכלי ויזואליים אחרים יכולים לשמש לתקשורת על בסיס ראייה ומידע שהתקבלו מהנתונים.
    • DAT-2.D.3 כלי חיפוש נוחים לחיפוש יעיל של מידע.
    • DAT-2.D.4 מערכות סינון נתונים הן כלים חשובים למציאת מידע ולזיהוי דפוסים בנתונים.
    • DAT-2.D.5 תוכנות כמו טבלאות מחשב עוזרות לארגן ולמצוא דפוסים במידע בצורה יעילה.
    • DAT-2.D.6 חלק מתהליכים שעשויים לשמש לחילוץ או לעריכת מידע מהנתונים הם הבאים:
      • המרת כל אלמנט במאגר נתונים, כמו הכפלת כל אלמנט ברשימה, או הוספת כתובת אימייל של הורים לכל רישום סטודנט
      • סינון מאגר נתונים, כמו שמירה רק על מספרים חיוביים מרשימה, או שמירה רק על סטודנטים שנרשמו להרכב מרשימת כל הסטודנטים
      • מיזוג או השוואת נתונים בדרך כלשהי, כמו סיכום רשימת מספרים, או מציאת הסטודנט עם ה-GPA הגבוה ביותר
      • ויזואליזציה של מאגר נתונים באמצעות גרף, טייצ'רט או דמות ויזואלית אחרת

    מטרות למידה DAT-2.E: הסבר על אופן השימוש בתוכנות כדי לרכוש ראייה ומידע מהנתונים. [מיומנות 5.B]

    • DAT-2.E.1 תוכנות משמשות באופן איטרטיבי ואינטראקטיבי בעת עיבוד מידע כדי לאפשר למשתמשים לרכוש ראייה ומידע לגבי הנתונים.
    • DAT-2.E.2 מתכננים יכולים להשתמש בתוכנות לסינון וניקוי נתונים דיגיטליים, ובכך לרכוש ראייה ומידע.
    • DAT-2.E.3 מיזוג מקורות נתונים, קלסטרציה של נתונים והקלסה של נתונים הם חלקים מתהליך השימוש בתוכנות כדי לרכוש ראייה ומידע מהנתונים.
    • DAT-2.E.4 ראייה ומידע יכולים להתקבל ממטרהולוגיה והמרה של מידע המיוצג דיגיטלית.
    • DAT-2.E.5 דפוסים עשויים לקום כאשר נתונים מומרים באמצעות תוכנות.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Programs process data at scales humans cannot. Common operations are filtering 过滤 (keeping only rows that meet a condition), cleaning (removing errors), and visualizing 可视化 (charts and graphs that make patterns visible). Combining data from multiple sources can reveal more, but raises privacy 隐私 concerns. Interactive tools and visualizations let people explore data and draw their own conclusions.

    Exam skill: be able to explain how a program helps find information in a large data set, and why correlation shown in the data does not establish causation.

    עברית

    תוכניות מעבדות נתונים בקנה מידה שאינו אפשרי לאדם. פעולות נפוצות הן סינון (שמירה רק על שורות העונות לתנאי), ניקוי (הסרת שגיאות) וויזואליזציה (גרפים ותרשימים שהופכים דפוסים לגלויים). מיזוג נתונים ממקורות מרובים יכול לחשוף יותר, אך מעלה דאגות פרטיות. כלים אינטראקטיביים וויזואליזציות מאפשרים לאנשים לחקור נתונים ולגזור מהם מסקנות משלהם.

    מיומנות במבחן: צריך להסביר כיצד תוכנית עוזרת למצוא מידע במערך נתונים גדול, ולמה קורלציה המוצגת בנתונים אינה יוצרת סיבתיות.

    2.4

    Exam tips · ⁨טיפים לבחינות⁩

    English
    • Convert confidently between binary, decimal, and (where asked) hexadecimal — practise until it is quick.
    • Remember a bit is one binary digit and a byte is 8 bits; $n$ bits represent $2^n$ values.
    • Explain that all data — numbers, text, images, sound — is stored as binary, and that finite bits cause overflow and round-off.
    • Distinguish lossless from lossy compression and when each is appropriate.
    • Show the analog-to-digital idea: sampling turns a continuous signal into discrete values.
    עברית
    • להמיר בבטח בין בינארי, עשרוני ו(כשהתבקש) הקסדצימאלי – לתרגל עד שזה יהיה מהיר.
    • לזכור שביט הוא דיגיט בינארי אחד ובייט הוא 8 ביטים; $n$ ביטים מייצגים $2^n$ ערכים.
    • להסביר שכל הנתונים – מספרים, טקסט, תמונות וצליל – מאוחסנים כבינארי, ושהביטים הסופיים גורמים לגלישה ולעיגול.
    • להבדיל בין דחיסה ללא איבוד לדחיסה עם איבוד וכאשר כל אחת מתאימה.
    • להציג את הרעיון של אנלוגי-דיגיטלי: דגימה הופכת אות רציף לערכים דיסקרטיים.
  • 3

    Algorithms and Programming · ⁨אלגוריתמים ותכנות⁩

    Watch lesson · ⁨צפה בשיעור⁩
    English

    Code below uses the AP CSP pseudocode – the exam's language-neutral reference. Assignment is written a ← expression, and list indices start at 1.

    עברית

    הקוד למטה משתמש ב-伪代码 AP CSP – ההערכה הייחוסית הניטרלית בשפה. ההקצה נכתב a ← expression, והמדדים ברשימה מתחילים ב-1.

    3.1

    Variables and Assignments · ⁨משתנים והקצאות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-1): To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.

    Learning Objective AAP-1.A: Represent a value with a variable. [Skill 3.A]

    • AAP-1.A.1 A variable is an abstraction inside a program that can hold a value. Each variable has associated data storage that represents one value at a time, but that value can be a list or other collection that in turn contains multiple values.
    • AAP-1.A.2 Using meaningful variable names helps with the readability of program code and understanding of what values are represented by the variables.
    • AAP-1.A.3 Some programming languages provide types to represent data, which are referenced using variables. These types include numbers, Booleans, lists, and strings.
    • AAP-1.A.4 Some values are better suited to representation using one type of datum rather than another.

    Learning Objective AAP-1.B: Determine the value of a variable as a result of an assignment. [Skill 4.B]

    • AAP-1.B.1 The assignment operator allows a program to change the value represented by a variable.

    • AAP-1.B.2 The exam reference sheet provides the "$\leftarrow$" operator to use for assignment. For example,

      Text:

      a ← expression

      Block:

      a ← expression

      evaluates expression and then assigns a copy of the result to the variable a.

    • AAP-1.B.3 The value stored in a variable will be the most recent value assigned. For example:

      a ← 1 b ← a a ← 2 display(b)

      still displays 1.

    עברית

    הבנה מתמשכת (AAP-1): כדי למצוא פתרונות ספציפיים לבעיות הניתנות לגנרליזציה, מתכנתים מייצגים ומארגנים נתונים בדרכים שונות.

    מטרת למידה AAP-1.A: לייצג ערך באמצעות משתנה. [מיומנות 3.A]

    • AAP-1.A.1 משתנה הוא אבסטרקציה בתוך תוכנית שיכולה להכיל ערך. למשתנה כלשהו יש אחסון נתונים המצומד לו המייצג ערך אחד בכל פעם, אך ערך זה יכול להיות רשימה או קבוצה אחרת המכילה בתורה מספר ערכים.
    • AAP-1.A.2 השימוש בשמות משתנים משמעותיים תורם לקריאות הקוד ולהבנת הערכים המיוצגים על ידי המשתנים.
    • AAP-1.A.3 חלק מהשפות מספקות סוגי נתונים לייצוג מידע, עליהם נתייחס באמצעות משתנים. סוגים אלו כוללים מספרים, בוליאנים, רשימות ומחרוזות.
    • AAP-1.A.4 לערכים מסוימים יש ייצוג טוב יותר באמצעות סוג נתונים אחד בהשוואה לסוג אחר.

    מטרת למידה AAP-1.B: לקבוע את ערך משתנה כתוצאה ממינון. [מיומנות 4.B]

    • AAP-1.B.1 אופרטור המינון מאפשר לתוכנית לשנות את הערך המיוצג על ידי משתנה.

    • AAP-1.B.2 דף ההפניות לבחין מספק את האופרטור "$\leftarrow$" לשימוש במינון. לדוגמה,

      טקסט:

      a ← expression

      בלוק:

      a ← expression

      מחשב expression ולאחר מכן ממין העתקה של התוצאה למשתנה a.

    • AAP-1.B.3 הערך המאוחסן במשתנה יהיה הערך שהמין אותו לאחרונה. לדוגמה:

      a ← 1 b ← a a ← 2 display(b)

      עדיין מציג 1.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A variable 变量 is a named place that holds a value. The assignment 赋值 operator stores the value on the right into the variable on the left:

    A variable holds one value at a time; assigning again replaces it. Variables let a program store input, remember results, and reuse them.

    עברית

    משתנה הוא מקום בעל שם המוחזק בו ערך. מפעיל ההקצה מאחסן את הערך בצד ימי לתוך המשתנה בצד שמالي:

    משתנה הוא מקום אחסון בעל שם שערכו יכול להשתנות
    משתנה הוא אחסון בעל שם שערכו יכול להשתנות
    a ← 5
    b ← a + 3      // b is now 8
    

    משתנה מחזיק ערך אחד בכל עת; הקצה חוזר מחליף אותו. משתנים מאפשרים לתוכנית לאחסן קלט, לזכור תוצאות ולהשתמש בהן שוב.

    Explore · ⁨חקור⁩

    Watch a variable hold and change its value · ⁨צפו במשתנה ששומר ומשנה את ערכו⁩

    A variable is a named box that stores one value at a time. An assignment copies a value into the box; assigning again overwrites whatever was there. · ⁨משתנה הוא תיבה עם שם שאוחדת ערך אחד בכל פעם. הקצה מעתיקה ערך לתוך התיבה; הקצה חוזרת כוססת כל מה שהיה שם.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    variable/ˈveərɪəbl/ משתנה
    assignment/əˈsaɪnmənt/ הקצה
    Data abstraction/ˈdeɪtə əbˈstrækʃn/ השחתת נתונים
    remainder/rɪˈmeɪndə/ שארית
    string/strɪŋ/ מחרוזת
    concatenation/kənˌkætəˈneɪʃn/ הדבקה
    Boolean expression/ˈbuːlɪən ekˈspreʃn/ ביטוי בוליאני
    conditional (selection)/kənˈdɪʃənl/ תנאי (בחירה)
    nested conditional/ˈnestɪd kənˈdɪʃənl/ תנאי מצטלב
    Iteration (a loop)/ˌɪtəˈreɪʃn/ איטרציה (לולאה)
    infinite loop/ˈɪnfɪnət luːp/ לולאת אינסוף
    algorithm/ˈælɡərɪθəm/ אלגוריתם
    list/lɪst/ רשימה
    3.2

    Data Abstraction · ⁨הלכידות נתונים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-1): To find specific solutions to generalizable problems, programmers represent and organize data in multiple ways.

    Learning Objective AAP-1.C: Represent a list or string using a variable. [Skill 3.A]

    • AAP-1.C.1 A list is an ordered sequence of elements. For example,

      [value1, value2, value3, ...]

      describes a list where value1 is the first element, value2 is the second element, value3 is the third element, and so on.

    • AAP-1.C.2 An element is an individual value in a list that is assigned a unique index.

    • AAP-1.C.3 An index is a common method for referencing the elements in a list or string using natural numbers.

    • AAP-1.C.4 A string is an ordered sequence of characters.

    Learning Objective AAP-1.D: For data abstraction: a. Develop data abstraction using lists to store multiple elements. [Skill 3.B] b. Explain how the use of data abstraction manages complexity in program code. [Skill 3.C]

    • AAP-1.D.1 Data abstraction provides a separation between the abstract properties of a data type and the concrete details of its representation.

    • AAP-1.D.2 Data abstractions manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation.

    • AAP-1.D.3 Data abstractions can be created using lists.

    • AAP-1.D.4 Developing a data abstraction to implement in a program can result in a program that is easier to develop and maintain.

    • AAP-1.D.5 Data abstractions often contain different types of elements.

    • AAP-1.D.6 The use of lists allows multiple related items to be treated as a single value. Lists are referred to by different names, such as array, depending on the programming language.

      • Exclusion statement (EK AAP-1.D.6): The use of linked lists is outside the scope of this course and the AP Exam.
    • AAP-1.D.7 The exam reference sheet provides the notation

      [value1, value2, value3, ...]

      to create a list with those values as the first, second, third, and so on items. For example,

      • Text:

        aList ← [value1, value2, value3, ...]

        Block:

        aList ← value1, value2, value3

        creates a new list that contains the values value1, value2, value3, and ... at indices 1, 2, 3, and ... respectively and assigns it to aList.

      • Text:

        aList ← []

        Block:

        aList ← (empty)

        creates a new empty list and assigns it to aList.

      • Text:

        aList ← bList

        Block:

        aList ← bList

        assigns a copy of the list bList to the list aList. For example, if bList contains [20, 40, 60], then aList will also contain [20, 40, 60] after the assignment.

    • AAP-1.D.8 The exam reference sheet describes a list structure whose index values are 1 through the number of elements in the list, inclusive. For all list operations, if a list index is less than 1 or greater than the length of the list, an error message is produced and the program will terminate.

    עברית

    הבנה מתמשכת (AAP-1): כדי למצוא פתרונות ספציפיים לבעיות הניתנות לגנרליזציה, מתכנתים מייצגים ומארגנים נתונים בדרכים שונות.

    מטרת למידה AAP-1.C: נציג רשימה או מחרוזת באמצעות משתנה. [מיומנות 3.A]

    • AAP-1.C.1 רשימה היא סדרה מסודרת של אלמנטים. לדוגמה,

      [value1, value2, value3, ...]

      מתארת רשימה שבה value1 הוא האלמנט הראשון, value2 הוא האלמנט השני, value3 הוא האלמנט השלישי, וכדומה.

    • AAP-1.C.2 אלמנט הוא ערך יחיד ברשימה שמוקצה לו אינדקס ייחודי.

    • AAP-1.C.3 אינדקס הוא שיטה נפוצה להתייחס לאלמנטים ברשימה או במחרוזת באמצעות מספרים טבעיים.

    • AAP-1.C.4 מחרוזת היא סדרה מסודרת של תווים.

    מטרת למידה AAP-1.D: עבור המערכת המופשטת: א. פיתוח המערכת המופשטת באמצעות רשימות לאחסון של מספר אלמנטים. [מיומנות 3.B] ב. הסבר על אופן בו השימוש בהמערכת המופשטת מנהל את המורכבות בקוד התוכנה. [מיומנות 3.C]

    • AAP-1.D.1 המערכת המופשטת מספקת הפרדה בין התכונות המופשטות של סוג הנתונים לבין פרטי ההצגה הממשיים שלה.

    • AAP-1.D.2 המערכות המופשטות מנהלות מורכבות בתוכניות על ידי מתן שמם לקבוצת נתונים ללא התייחסות לפרטים הספציפיים של ההצגה.

    • AAP-1.D.3 ניתן ליצור מערכות מופשטות באמצעות רשימות.

    • AAP-1.D.4 פיתוח המערכת המופשטת כדי לממש אותה בתוכנית עשוי לגרום לתוכנית שקלה לפיתוח ולתחזוקה.

    • AAP-1.D.5 המערכות המופשטות מכילות לעיתים אלמנטים מסוגים שונים.

    • AAP-1.D.6 השימוש ברשימות מאפשר לטפל בפריטים קשורים רבים כערך אחד. רשימות מכונות בשמות שונים, כמו מערך, בהתאם לשפת התכנות.

      • הערה על חריגות (EK AAP-1.D.6): השימוש ברשימות מקושרות מחוץ לתחום החקר של הקורס ובמבחן AP.
    • AAP-1.D.7 דף העזר לבחינה מספק את הסימון

      [value1, value2, value3, ...]

      ליצירת רשימה שבה הערכים הללו הם הפריטים הראשון, השני, השלישי, וכדומה. לדוגמה,

      • טקסט:

        aList ← [value1, value2, value3, ...]

        בלוק:

        aList ← value1, value2, value3

        יוצר רשימה חדשה המכילה את הערכים value1, value2, value3, ו... באינדקסים 1, 2, 3, ו... בהתאמה, ומיישר אותה לaList.

      • טקסט:

        aList ← []

        בלוק:

        aList ← (ריק)

        יוצר רשימה ריקה חדשה ומטיל אותה ל-aList.

      • טקסט:

        aList ← bList

        בלוק:

        aList ← bList

      מקצה העתק של הרשימה bList לרשימה aList. לדוגמה, אם bList מכילה [20, 40, 60], אזי גם aList תכיל [20, 40, 60] לאחר ההקצה.

    • AAP-1.D.8 דף העזר לבחינה מתאר מבנה רשימה שבו ערכי האינדקס הם מ-1 ועד למספר האלמנטים ברשימה, כולל המספר האחרון. עבור כל פעולות הרשימה, אם אינדקס הרשימה קטן מ-1 או גדול מאורך הרשימה, מופיע הודעת שגיאה והתוכנית תופסק.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Data abstraction 数据抽象 lets you manage complexity by giving a single name to a collection of data – for example, a list rather than dozens of separate variables. It hides detail: you use the named collection without worrying about how it is stored. Lists (below) are the course's main data abstraction.

    עברית

    הלכידות נתונים מאפשרת לך לנהל מורכבות על ידי מתן שם אחד לאוסף נתונים – לדוגמה, רשימה במקום עשרות משתנים נפרדים. היא מסתרת פרטים: אתה משתמש באוסף הממונה ללא דאגה כיצד הוא מאוחסן. רשימות (למטה) הן הלכידות הנתונים המרכזית בקורס.

    3.3

    Mathematical Expressions · ⁨ביטויים מתמטיים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.A: Express an algorithm that uses sequencing without using a programming language. [Skill 2.A]

    • AAP-2.A.1 An algorithm is a finite set of instructions that accomplish a specific task.
    • AAP-2.A.2 Beyond visual and textual programming languages, algorithms can be expressed in a variety of ways, such as natural language, diagrams, and pseudocode.
    • AAP-2.A.3 Algorithms executed by programs are implemented using programming languages.
    • AAP-2.A.4 Every algorithm can be constructed using combinations of sequencing, selection, and iteration.

    Learning Objective AAP-2.B: Represent a step-by-step algorithmic process using sequential code statements. [Skill 2.B]

    • AAP-2.B.1 Sequencing is the application of each step of an algorithm in the order in which the code statements are given.
    • AAP-2.B.2 A code statement is a part of program code that expresses an action to be carried out.
    • AAP-2.B.3 An expression can consist of a value, a variable, an operator, or a procedure call that returns a value.
    • AAP-2.B.4 Expressions are evaluated to produce a single value.
    • AAP-2.B.5 The evaluation of expressions follows a set order of operations defined by the programming language.
    • AAP-2.B.6 Sequential statements execute in the order they appear in the code segment.
    • AAP-2.B.7 Clarity and readability are important considerations when expressing an algorithm in a programming language.

    Learning Objective AAP-2.C: Evaluate expressions that use arithmetic operators. [Skill 4.B]

    • AAP-2.C.1 Arithmetic operators are part of most programming languages and include addition, subtraction, multiplication, division, and modulus operators.

    • AAP-2.C.2 The exam reference sheet provides a MOD b, which evaluates to the remainder when a is divided by b. Assume that a is an integer greater than or equal to 0 and b is an integer greater than 0. For example, 17 MOD 5 evaluates to 2.

    • AAP-2.C.3 The exam reference sheet provides the arithmetic operators +, -, *, /, and MOD.

      Text and Block:

      • a + b
      • a - b
      • a * b
      • a / b
      • a MOD b

      These are used to perform arithmetic on a and b. For example, 17 / 5 evaluates to 3.4.

    • AAP-2.C.4 The order of operations used in mathematics applies when evaluating expressions. The MOD operator has the same precedence as the * and / operators.

    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרת הלמידה AAP-2.A: לביטא אלגוריתם המשמש סידור ללא שימוש בשפת תכנות. [מיומנות 2.A]

    • AAP-2.A.1 אלגוריתם הוא סט סופי של הוראות שמבצע משימה ספציפית.
    • AAP-2.A.2 מעבר לשפות תכנות ויזואליות וטקסטואליות, אלגוריתמים יכולים להיות מובעים בדרכים מגוונות, כגון שפה טבעית, דיאגרמות ופסאו-קוד.
    • AAP-2.A.3 אלגוריתמים המבוצעים על ידי תוכניות ממומשים באמצעות שפות תכנות.
    • AAP-2.A.4 כל אלגוריתם יכול להיבנות באמצעות שילובים של סידור, בחירה וחזרה.

    מטרת הלמידה AAP-2.B: לייצג תהליך אלגוריתמי צעד-בצעד באמצעות פקודות קוד רצף. [מיומנות 2.B]

    • AAP-2.B.1 סידור הוא היישום של כל צעד באלגוריתם בסדר שבו נתונות פקודות הקוד.
    • AAP-2.B.2 פקודת קוד היא חלק ממקוד התוכנית שמבטא פעולה ביצועית.
    • AAP-2.B.3 ביטוי יכול להורכב מערך, משתנה, אופרטור או קריאת פרוצדורה החזירה ערך.
    • AAP-2.B.4 ביטויים מוערכים כדי לייצר ערך יחיד.
    • AAP-2.B.5 הערכת ביטויים נעשית לפי סדר פעולות מוגדר על ידי שפת התכנות.
    • AAP-2.B.6 פקודות רצף מבוצעות בסדר שבו הן מופיעות בקטע הקוד.
    • AAP-2.B.7 בהירות וקריאות הן considerations חשובות כאשר מביעים אלגוריתם בשפת תכנות.

    מטרת הלמידה AAP-2.C: להעריך ביטויים המשמשים אופרטורים אריתמטיים. [מיומנות 4.B]

    • AAP-2.C.1 אופרטורים אריתמטיים הם חלק מרוב שפות התכנות ומכללים אופרטורים של חיבור, חיסור, כפל, חלוקה ואופרטור מודולוס.

    • AAP-2.C.2 דף העזר לבחינה מספק a MOD b, המעריך את שארית החלוקה כאשר a מחולק ב-b. הנח כי a הוא שלם הגדול או שווה ל-0 ו-b הוא שלם הגדול מ-0. לדוגמה, 17 MOD 5 מעריך ל-2.

    • AAP-2.C.3 דף העזר לבחינה מספק את האופרטורים הארימטיים +, -, *, / ו-MOD.

      טקסט ומסגרת:

      • a + b
      • a - b
      • a * b
      • a / b
      • a MOD b

      אלו משמשים לבצע פעולות אריטמיות על a ועל b. לדוגמה, 17 / 5 מעריך ל-3.4.

    • AAP-2.C.4 סדר הפעולות המשמש במתמטיקה חל גם בהערכת ביטויים. לאופרטור MOD יש אותה עדיפות כמו לאופרטורים * ול-/.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Programs compute with the operators +, -, *, /, and MOD (the remainder 余数 of a division, e.g. 17 MOD 5 is 2). Expressions follow the usual order of operations. MOD is especially useful for testing divisibility (n MOD 2 = 0 means n is even) and for wrapping values around a range.

    עברית

    תוכניות מחשבות עם הפעולונים +, -, *, /, וMOD (השארת של חילוק, למשל 17 MOD 5 הוא 2). ביטויים עוקבים אחרי סדר פעולות רגיל. MOD שימושי במיוחד לבדיקת חלוקיות (n MOD 2 = 0 פירושו שn הוא זוגי) ולעטיפת ערכים סביב טווח.

    Explore · ⁨חקור⁩

    Evaluate an expression step by step · ⁨חשבו ביטוי צעד אחר צעד⁩

    An expression is evaluated with order of operations: multiplication and division happen before addition and subtraction, left to right. · ⁨ביטוי מוערך לפי סדר פעולות: כפל וחילוק מתבצעים לפני חיבור וחסר, משמאל לימין.⁩

    3.4

    Strings · ⁨מחרוזות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.D: Evaluate expressions that manipulate strings. [Skill 4.B]

    • AAP-2.D.1 String concatenation joins together two or more strings end-to-end to make a new string.
    • AAP-2.D.2 A substring is part of an existing string.
    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרות למידה AAP-2.D: הערך ביטויים המעבדים מחרוזות. [כישור 4.B]

    • AAP-2.D.1 הצמדת מחרוזות (String concatenation) מחברת שתי מחרוזות או יותר קצה לקצה ליצירת מחרוזת חדשה.
    • AAP-2.D.2 תת-מחרוזת היא חלק ממחרוזת קיימת.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A string 字符串 is an ordered sequence of characters, like "hello". Programs join strings (concatenation 拼接) and find their length. Strings represent text – names, messages, sequences – and are a common program input and output.

    עברית

    מחרוזת היא רצף ממוין של תווים, כמו "hello". תוכניות מחברות מחרוזות (היתוך) ומחשבות את אורכן. מחרוזות מייצגות טקסט – שמות, הודעות, רצפים – והן קלט ופלט נפוצים בתוכניות.

    3.5

    Boolean Expressions · ⁨ביטויים בוליאניים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.E: For relationships between two variables, expressions, or values: a. Write expressions using relational operators. [Skill 2.B] b. Evaluate expressions that use relational operators. [Skill 4.B]

    • AAP-2.E.1 A Boolean value is either true or false.

    • AAP-2.E.2 The exam reference sheet provides the following relational operators: =, ≠, >, <, ≥, and ≤.

      Text and Block:

      • a = b
      • a ≠ b
      • a > b
      • a < b
      • a ≥ b
      • a ≤ b

      These are used to test the relationship between two variables, expressions, or values. A comparison using a relational operator evaluates to a Boolean value. For example, a = b evaluates to true if a and b are equal; otherwise, it evaluates to false.

    Learning Objective AAP-2.F: For relationships between Boolean values: a. Write expressions using logical operators. [Skill 2.B] b. Evaluate expressions that use logic operators. [Skill 4.B]

    • AAP-2.F.1 The exam reference sheet provides the logical operators NOT, AND, and OR, which evaluate to a Boolean value.

    • AAP-2.F.2 The exam reference sheet provides

      Text:

      NOT condition

      Block:

      NOT condition

      which evaluates to true if condition is false; otherwise it evaluates to false.

    • AAP-2.F.3 The exam reference sheet provides

      Text:

      condition1 AND condition2

      Block:

      condition1 AND condition2

      which evaluates to true if both condition1 and condition2 are true; otherwise it evaluates to false.

    • AAP-2.F.4 The exam reference sheet provides

      Text:

      condition1 OR condition2

      Block:

      condition1 OR condition2

      which evaluates to true if condition1 is true or if condition2 is true or if both condition1 and condition2 are true; otherwise it evaluates to false.

    • AAP-2.F.5 The operand for a logical operator is either a Boolean expression or a single Boolean value.

    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרות למידה AAP-2.E: עבור קשרים בין שני משתנים, ביטויים או ערכים: א. כתוב ביטויים באמצעות אופרטורים יחסיים. [כישור 2.B] ב. הערך ביטויים המשתמשים באופרטורים יחסיים. [כישור 4.B]

    • AAP-2.E.1 ערך בוליאני הוא או נכון או שגוי.

    • AAP-2.E.2 דף העזר לבחינה מספק את אופרטורי היחס הבאים: =, ≠, >, <, ≥ ו-≤.

      טקסט ומסגרת:

      • a = b
      • a ≠ b
      • a > b
      • a < b
      • a ≥ b
      • a ≤ b

      אלו משמשים לבדוק את הקשר בין שני משתנים, ביטויים או ערכים. השוואה באמצעות אופרטור יחסי מערכי תוצאה בוליאנית. לדוגמה, a = b מעריך ל-true אם a ו-b שווים; אחרת, הוא מעריך ל-false.

    מטרות למידה AAP-2.F: עבור קשרים בין ערכים בוליאניים: א. כתוב ביטויים באמצעות אופרטורים לוגיים. [כישור 2.B] ב. הערך ביטויים המשתמשים באופרטורים לוגיים. [כישור 4.B]

    • AAP-2.F.1 דף העזר לבחינה מספק את האופרטורים הלוגיים NOT, AND ו-OR, המערכים תוצאה בוליאנית.

    • AAP-2.F.2 דף העזר לבחינה מספק

      טקסט:

      NOT condition

      בלוק:

      NOT condition

      שמעריך true אם condition הוא false; אחרת מעריך false.

    • AAP-2.F.3 דף העזר לבחינה מספק

      טקסט:

      condition1 AND condition2

      בלוק:

      condition1 AND condition2

      שמעריך true אם גם condition1 וגם condition2 הם true; אחרת מעריך false.

    • AAP-2.F.4 דף העזר לבחינה מספק

      טקסט:

      condition1 OR condition2

      בלוק:

      condition1 OR condition2

      שמעריך true אם condition1 הוא true או אם condition2 הוא true או אם גם condition1 וגם condition2 הם true; אחרת מעריך false.

    • AAP-2.F.5 האופרנד של אופרטור לוגי הוא ביטוי בוליאני או ערך בוליאני יחיד.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A Boolean expression 布尔表达式 evaluates to true or false. It uses relational operators (=, ≠, <, >, ≤, ≥) and logical operators NOT, AND, OR:

    • NOT reverses a value,
    • AND is true only when both sides are true,
    • OR is true when at least one side is true.

    These conditions drive every decision and loop.

    עברית

    ביטוי בוליאני מתאפיין בתוצאה של true או false. הוא משתמש באופרטורי יחס (=, ≠, <, >, ≤, ≥) ובאופרטורים לוגיים NOT, AND, OR:

    שלושת משפחות המפעילים: אריתמטי, יחסי ולוגי
    שלושת משפחות המפעילים: אריתמטי, יחסי ולוגי
    • NOT הופך ערך לחיובי/שלילי (או להפוך),
    • AND נכון רק כאשר שני הצדדים נכונים,
    • OR נכון כאשר לפחות אחד מהצדדים נכון.

    תנאים אלו מנהלים כל החלטה ולולאה.

    Explore · ⁨חקור⁩

    Try the OR truth table · ⁨נסו טבלת אמת של OR⁩

    A Boolean expression is either true (1) or false (0). OR is true when at least one input is true; flip the inputs to see every case. · ⁨ביטוי בוליאני הוא או נכון (1) או שגוי (0). OR הוא נכון כאשר לפחות אחד מהקלטים הוא נכון; הפכו את הקלטים כדי לראות כל מקרה.⁩

    3.6

    Conditionals · ⁨תנאים (בחירה)⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.G: Express an algorithm that uses selection without using a programming language. [Skill 2.A]

    • AAP-2.G.1 Selection determines which parts of an algorithm are executed based on a condition being true or false.

    Learning Objective AAP-2.H: For selection: a. Write conditional statements. [Skill 2.B] b. Determine the result of conditional statements. [Skill 4.B]

    • AAP-2.H.1 Conditional statements, or "if-statements," affect the sequential flow of control by executing different statements based on the value of a Boolean expression.

    • AAP-2.H.2 The exam reference sheet provides

      Text:

      IF(condition) { <block of statements> }

      Block:

      IF condition block of statements

      in which the code in block of statements is executed if the Boolean expression condition evaluates to true; no action is taken if condition evaluates to false.

    • AAP-2.H.3 The exam reference sheet provides

      Text:

      IF(condition) { <first block of statements> } ELSE { <second block of statements> }

      Block:

      IF condition first block of statements ELSE second block of statements

      in which the code in first block of statements is executed if the Boolean expression condition evaluates to true; otherwise, the code in second block of statements is executed.

    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרות למידה AAP-2.G: לבטא אלגוריתם המשתמש בבחירה ללא שימוש בשפת תכנות. [מיומנות 2.A]

    • AAP-2.G.1 בחירה קובעת אילו חלקים מאלגוריתם יוצאו לפועל בהתבסס על כך שהתנאי הוא true או false.

    מטרות למידה AAP-2.H: עבור בחירה: א. כתוב הודעות תנائية. [מיומנות 2.B] ב. קבע את התוצאה של הודעות תנائية. [מיומנות 4.B]

    • AAP-2.H.1 הודעות תנائية, או "הודעות if", משפיעות על הזרימה הרצף של השליטה על ידי ביצוע הודעות שונות בהתבסס על ערך הביטוי הבוליאני.

    • AAP-2.H.2 דף העזר לבחינה מספק

      טקסט:

      IF(condition) { <block of statements> }

      בלוק:

      IF condition block of statements

      שבו הקוד בblock of statements יוצא לפועל אם הביטוי הבוליאני condition מעריך true; אין פעולה כלשהי אם condition מעריך false.

    • AAP-2.H.3 דף העזר לבחינה מספק

      טקסט:

      IF(condition) { <first block of statements> } ELSE { <second block of statements> }

      בלוק:

      IF condition first block of statements ELSE second block of statements

      שבו הקוד בfirst block of statements יוצא לפועל אם הביטוי הבוליאני condition מעריך true; אחרת, הקוד בsecond block of statements יוצא לפועל.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A conditional (selection) 条件语句 chooses which code to run. IF runs a block only when its condition is true; ELSE gives an alternative:

    עברית

    תנאי (בחירה) קובעים איזה קוד יוצא לפועל. IF מפעיל בלוק רק כאשר התנאי שלו נכון; ELSE מציע חלופה:

    בחירה בין מסלולים בהתאם לתנאי
    הבחירה בוחנת בין מסלולים על בסיס תנאי
    IF (score ≥ 60)
    {
        DISPLAY("Pass")
    }
    ELSE
    {
        DISPLAY("Fail")
    }
    
    Explore · ⁨חקור⁩

    Follow an if / else decision · ⁨עקבו אחרי החלטה של if / else⁩

    A conditional runs one branch or another depending on whether its condition is true. Slide the value across the threshold and watch which branch is taken. · ⁨תנאי מבצע ענף אחד או אחר בהתאם לכך האם התנאי שלו נכון. הזיזו את הערך מעבר לסף וצפו באיזה ענף נלקח.⁩

    3.7

    Nested Conditionals · ⁨תנאים מקוננים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.I: For nested selection: a. Write nested conditional statements. [Skill 2.B] b. Determine the result of nested conditional statements. [Skill 4.B]

    • AAP-2.I.1 Nested conditional statements consist of conditional statements within conditional statements.
    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרות למידה AAP-2.I: עבור בחירה מקושרת: א. כתוב תנאים מודגשים. [מיומנות 2.B] ב. קבע את התוצאה של תנאים מודגשים. [מיומנות 4.B]

    • AAP-2.I.1 תנאים מודגשים מכילים תנאים בתוך תנאים.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A nested conditional 嵌套条件 places one IF inside another (or chains ELSE IF) to choose among more than two paths. Only the first matching branch runs:

    עברית

    תנאי מקונן מציב IF אחד בתוך אחר (או מקשר ELSE IF) כדי לבחור בין יותר משני מסלולים. רק הערוכה הראשונה המתאימה תופעל:

    IF (g ≥ 90)      { grade ← "A" }
    ELSE IF (g ≥ 80) { grade ← "B" }
    ELSE             { grade ← "C" }
    
    3.8

    Iteration · ⁨איטרציה⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.J: Express an algorithm that uses iteration without using a programming language. [Skill 2.A]

    • AAP-2.J.1 Iteration is a repeating portion of an algorithm. Iteration repeats a specified number of times or until a given condition is met.

    Learning Objective AAP-2.K: For iteration: a. Write iteration statements. [Skill 2.B] b. Determine the result or side effect of iteration statements. [Skill 4.B]

    • AAP-2.K.1 Iteration statements change the sequential flow of control by repeating a set of statements zero or more times, until a stopping condition is met.

    • AAP-2.K.2 The exam reference sheet provides

      Text:

      REPEAT n TIMES { <block of statements> }

      Block:

      REPEAT n TIMES block of statements

      in which the block of statements is executed n times.

    • AAP-2.K.3 The exam reference sheet provides

      Text:

      REPEAT UNTIL(condition) { <block of statements> }

      Block:

      REPEAT UNTIL condition block of statements

      in which the code in block of statements is repeated until the Boolean expression condition evaluates to true.

    • AAP-2.K.4 In REPEAT UNTIL(condition) iteration, an infinite loop occurs when the ending condition will never evaluate to true.

    • AAP-2.K.5 In REPEAT UNTIL(condition) iteration, if the conditional evaluates to true initially, the loop body is not executed at all, due to the condition being checked before the loop.

    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרת למידה AAP-2.J: מבטא אלגוריתם המשתמש באיטרציה ללא שימוש בשפת תכנות. [מיומנות 2.A]

    • AAP-2.J.1 איטרציה היא חלק חוזר באלגוריתם. האיטרציה חוזרת מספר פעמים ספציפי או עד שהתנאי הנתון מתקיים.

    מטרת למידה AAP-2.K: לגבי איטרציה: א. כתוב פקודות איטרציה. [מיומנות 2.B] ב. קבע את התוצאה או ההשפעה המשנית של פקודות איטרציה. [מיומנות 4.B]

    • AAP-2.K.1 פקודות איטרציה משנות את זרימת הבקרה הרציף על ידי חזרה על סט של פקודות אפס או יותר פעמים, עד שהתנאי העצירה מתקיים.

    • AAP-2.K.2 דף ההפניות לבחינה מספק

      טקסט:

      REPEAT n TIMES { <block of statements> }

      בלוק:

      REPEAT n TIMES block of statements

      שבו block of statements מופעל n פעמים.

    • AAP-2.K.3 דף ההפניות לבחינה מספק

      טקסט:

      REPEAT UNTIL(condition) { <block of statements> }

      בלוק:

      REPEAT UNTIL condition block of statements

      שבו הקוד בblock of statements חוזר עד שהביטוי הבוליאני condition מתאפשר לtrue.

    • AAP-2.K.4 באיטרציה REPEAT UNTIL(condition), לולאה אינסופית נוצרת כאשר התנאי הסיום לעולם לא יתאפשר לtrue.

    • AAP-2.K.5 באיטרציה REPEAT UNTIL(condition), אם התנאי מתאפשר לtrue בהתחלה, גוף הלולאה לא יופעל כלל, בשל בדיקת התנאי לפני הלולאה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Iteration (a loop) 迭代 repeats instructions. AP pseudocode has two forms:

    A loop that never meets its stopping condition is an infinite loop 无限循环.

    עברית

    איטרציה (לולאה) חוזרת על הוראות. פסאודוקוד AP כולל שני צורות:

    לולאת תנאי מקדים (WHILE) בודקת לפני הגוף, ולכן ייתכן שתפעיל אפס פעמים
    לולאת תנאי מקדים (WHILE) בודקת לפני הגוף, ולכן ייתכן שתפעיל אפס פעמים
    REPEAT 5 TIMES        // a fixed count
    {
        DISPLAY("hi")
    }
    
    REPEAT UNTIL (found)  // until a condition becomes true
    {
        ...
    }
    

    לולאה לעולם לא נפגשת בתנאי ההפסקה שלה היא לולאה אינסופית.

    Explore · ⁨חקור⁩

    Trace a loop one pass at a time · ⁨עקבו אחר לולאה מעבר אחר מעבר⁩

    A loop repeats a block while its counter runs through a range. Step through to watch the counter and the running total update each pass. · ⁨לולאה מחזירה על עצמה בלוק בזמן שהמונה שלה עובר בטווח. צעדו קדימה כדי לצפות שהמונה והסכום המצטבר יתעדכנו בכל מעבר.⁩

    3.9

    Developing Algorithms · ⁨פיתוח אלגוריתמים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.L: Compare multiple algorithms to determine if they yield the same side effect or result. [Skill 1.D]

    • AAP-2.L.1 Algorithms can be written in different ways and still accomplish the same tasks.
    • AAP-2.L.2 Algorithms that appear similar can yield different side effects or results.
    • AAP-2.L.3 Some conditional statements can be written as equivalent Boolean expressions.
    • AAP-2.L.4 Some Boolean expressions can be written as equivalent conditional statements.
    • AAP-2.L.5 Different algorithms can be developed or used to solve the same problem.

    Learning Objective AAP-2.M: For algorithms: a. Create algorithms. [Skill 2.A] b. Combine and modify existing algorithms. [Skill 2.B]

    • AAP-2.M.1 Algorithms can be created from an idea, by combining existing algorithms, or by modifying existing algorithms.
    • AAP-2.M.2 Knowledge of existing algorithms can help in constructing new ones. Some existing algorithms include:
      • determining the maximum or minimum value of two or more numbers
      • computing the sum or average of two or more numbers
      • identifying if an integer is or is not evenly divisible by another integer
      • determining a robot's path through a maze
    • AAP-2.M.3 Using existing correct algorithms as building blocks for constructing another algorithm has benefits such as reducing development time, reducing testing, and simplifying the identification of errors.
    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרת למידה AAP-2.L: השוואה בין מספר אלגוריתמים כדי לקבוע האם הם מייצרים אותה השפעה משנית או תוצאה. [מיומנות 1.D]

    • AAP-2.L.1 ניתן לכתוב אלגוריתמים בצורות שונות ועדיין לבצע את אותן משימות.
    • AAP-2.L.2 אלגוריתמים שנראים זהים עשויים לייצר השפעות משניות או תוצאות שונות.
    • AAP-2.L.3 ניתן לכתוב חלק מההצהרות התנודתיות כביטויים בוליאניים שקולים.
    • AAP-2.L.4 ניתן לכתוב חלק מהביטויים הבוליאניים כהצהרות תנודתיות שקולות.
    • AAP-2.L.5 ניתן לפתח או להשתמש באלגוריתמים שונים כדי לפתור את אותו בעיה.

    מטרת לימוד AAP-2.M: עבור אלגוריתמים: א. יצירת אלגוריתמים. [מיומנות 2.A] ב. מיזוג ועריכה של אלגוריתמים קיימים. [מיומנות 2.B]

    • AAP-2.M.1 ניתן ליצור אלגוריתמים מתוך רעיון, על ידי מיזוג של אלגוריתמים קיימים, או על ידי עריכת אלגוריתמים קיימים.
    • AAP-2.M.2 ידע של אלגוריתמים קיימים יכול לעזור בבניית אלגוריתמים חדשים. בין האלגוריתמים הקיימים נכללים:
      • מציאת הערך המקסימלי או המינימלי של שני מספרים או יותר
      • חישוב הסכום או הממוצע של שני מספרים או יותר
      • זיהוי אם מספר שלם מתחלק במספר שלם אחר בשווה (ללא שארית)
      • קביעת מסלול של רובוט בתוך מבוך
    • AAP-2.M.3 השימוש באלגוריתמים קיימים ונכונים כבלוקי בנייה לבניית אלגוריתם אחר מביא יתרונות כמו צמצום זמן הפיתוח, צמצום בדיקות והקלת זיהוי שגיאות.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    An algorithm is not the same thing as code. Beyond visual and textual programming languages, an algorithm can be expressed in a variety of ways: in natural language (ordinary sentences), as a diagram such as a flowchart, or in pseudocode. Those forms are for people — they let you check the logic and agree on it before any language is chosen, and the same algorithm can then be written in any language.

    When you do write it in a programming language, clarity and readability are important considerations, not decoration: meaningful variable names, consistent indentation and comments explaining why rather than what. The program has to be read and modified later by someone — often you — and an algorithm nobody can follow cannot be maintained or debugged.

    An algorithm 算法 is a finite sequence of steps that solves a problem, built from sequencing, selection, and iteration. Different algorithms can solve the same problem, and you should be able to combine and modify existing algorithms (for example, count the values in a list that meet a condition, or find the largest). Trace an algorithm by hand to check it is correct.

    עברית
    קוד מקור Python במסך — אלגוריתמים הם הוראות מדויקות וממוינות
    קוד מקור Python במסך — אלגוריתמים הם הוראות מדויקות וממוינות

    אלגוריתם אינו אותו דבר כמו קוד. מעבר לשפות תכנות ויזואליות וטקסטואליות, אלגוריתם ניתן לביטוי במגוון דרכים: בשפה טבעית (משפטים רגילים), כתרשים כגון סכמת זרימה, או בפסאודוקוד. צורות אלו נועדו לאנשים — הן מאפשרות לבדוק את הלוגיקה ולהתכנס עליה לפני בחירת שפת תכנות כלשהי, ולאחר מכן ניתן לכתוב את אותו אלגוריתם בכל שפה.

    כשאתם כותבים אותו בשפת תכנות, בהירות וקריאות הן גורמים חשובים, לא רק עיטורים: שמות משתנים משמעותיים, ריווח תואם והערות המסבירות מדוע ולא מה. התוכנית תצטרך לקרוא ולשנות אותה בעתיד על ידי מישהו — לעיתים קרובות אתכם עצמכם — ואלגוריתם שאף אחד לא יכול להבין לא ניתן לתחזק או לפתור בו תקלות.

    אלגוריתם הוא סדרה סופית של שלבים הפותרים בעיה, המורכבת מסידור, בחירה ואיטרציה. אלגוריתמים שונים יכולים לפתור את אותה בעיה, ועליכם להיות מסוגלים לשלב ולשנות אלגוריתמים קיימים (למשל, לספור את הערכים ברשימה העומדים בתנאי מסוים, או למצוא את הגדול ביותר). לבצע מעקב ידני אחר אלגוריתם כדי לוודא שהוא נכון.

    סכמת זרימה מציגה אלגוריתם באמצעות הסמלים הסטנדרטיים
    סכמת זרימה מציגה אלגוריתם באמצעות הסמלים הסטנדרטיים
    3.10

    Lists · ⁨רשימות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.N: For list operations: a. Write expressions that use list indexing and list procedures. [Skill 2.B] b. Evaluate expressions that use list indexing and list procedures. [Skill 4.B]

    • AAP-2.N.1 The exam reference sheet provides basic operations on lists, including:
      • accessing an element by index

        Text:

        aList[i]

        Block:

        aList i

        accesses the element of aList at index i. The first element of aList is at index 1 and is accessed using the notation aList[1].

      • assigning a value of an element of a list to a variable

        Text:

        x ← aList[i]

        Block:

        x ← aList i

        assigns the value of aList[i] to the variable x.

      • assigning a value to an element of a list

        Text:

        aList[i] ← x

        Block:

        aList i ← x

        assigns the value of x to aList[i].

        Text:

        aList[i] ← aList[j]

        Block:

        aList i ← aList j

        assigns the value of aList[j] to aList[i].

      • inserting elements at a given index

        Text:

        INSERT(aList, i, value)

        Block:

        INSERT aList, i, value

        shifts to the right any values in aList at indices greater than or equal to i. The length of the list is increased by 1, and value is placed at index i in aList.

      • adding elements to the end of the list

        Text:

        APPEND(aList, value)

        Block:

        APPEND aList, value

        increases the length of aList by 1, and value is placed at the end of aList.

      • removing elements

        Text:

        REMOVE(aList, i)

        Block:

        REMOVE aList, i

        removes the item at index i in aList and shifts to the left any values at indices greater than i. The length of aList is decreased by 1.

      • determining the length of a list

        Text:

        LENGTH(aList)

        Block:

        LENGTH aList

        evaluates to the number of elements currently in aList.

    • AAP-2.N.2 List procedures are implemented in accordance with the syntax rules of the programming language.

    Learning Objective AAP-2.O: For algorithms involving elements of a list: a. Write iteration statements to traverse a list. [Skill 2.B] b. Determine the result of an algorithm that includes list traversals. [Skill 4.B]

    • AAP-2.O.1 Traversing a list can be a complete traversal, where all elements in the list are accessed, or a partial traversal, where only a portion of elements are accessed.

      • Exclusion statement (EK AAP-2.O.1): Traversing multiple lists at the same time using the same index for both (parallel traversals) is outside the scope of this course and the AP Exam.
    • AAP-2.O.2 Iteration statements can be used to traverse a list.

    • AAP-2.O.3 The exam reference sheet provides

      Text:

      FOR EACH item IN aList { <block of statements> }

      Block:

      FOR EACH item IN aList block of statements

      The variable item is assigned the value of each element of aList sequentially, in order, from the first element to the last element. The code in block of statements is executed once for each assignment of item.

    • AAP-2.O.4 Knowledge of existing algorithms that use iteration can help in constructing new algorithms. Some examples of existing algorithms that are often used with lists include:

      • determining a minimum or maximum value in a list
      • computing a sum or average of a list of numbers
    • AAP-2.O.5 Linear search or sequential search algorithms check each element of a list, in order, until the desired value is found or all elements in the list have been checked.

    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרת למידה AAP-2.N: עבור פעולות על רשימות: א. כתיבת ביטויים המשמשים אינדקסינג של רשימה ופעולות על רשימות. [מיומנות 2.B] ב. חישוב ביטויים המשמשים אינדקסינג של רשימה ופעולות על רשימות. [מיומנות 4.B]

    • AAP-2.N.1 דף ההפניות לבחין מספק פעולות בסיסיות על רשימות, כולל:
      • גישה לאלמנט באמצעות אינדקס

        טקסט:

        aList[i]

        בלוק:

        aList i

        מגיע אל האלמנט של aList באינדקס i. האלמנט הראשון של aList נמצא באינדקס 1 ומגיעים אליו באמצעות הסימון aList[1].

      • יישום ערך של אלמנט מרשימה למשתנה

        טקסט:

        x ← aList[i]

        בלוק:

        x ← aList i

        מקצב את הערך של aList[i] למשתנה x.

      • יישום ערך לאלמנט ברשימה

        טקסט:

        aList[i] ← x

        בלוק:

        aList i ← x

        מקצב את הערך של x ל-aList[i].

        טקסט:

        aList[i] ← aList[j]

        בלוק:

        aList i ← aList j

        מקצב את הערך של aList[j] ל-aList[i].

      • הכנסת אלמנטים באינדקס נתון

        טקסט:

        INSERT(aList, i, value)

        בלוק:

        INSERT aList, i, value

        מזיז ימינה כל ערך ב-aList הנמצא באינדקסים הגדולים או שווים ל-i. אורך הרשימה עולה ב-1, והערך value מוצב באינדקס i בתוך aList.

      • הוספת אלמנטים בסוף הרשימה

        טקסט:

        APPEND(aList, value)

        בלוק:

        APPEND aList, value

        מעלה את אורך aList ב-1, והערך value מוצב בסוף aList.

      • הסרת אלמנטים

        טקסט:

        REMOVE(aList, i)

        בלוק:

        REMOVE aList, i

        מסיר את הפריט באינדקס i ב-aList ומזיז שמאלה כל ערך הנמצא באינדקסים גדולים מ-i. אורך aList קטן ב-1.

      • קביעת אורך רשימה

        טקסט:

        LENGTH(aList)

        בלוק:

        LENGTH aList

        מחזיר את מספר האלמנטים הקיימים כרגע ב-aList.

    • AAP-2.N.2 פרוצדורות רשימות מיושמות בהתאם לכללי הסינטקס של שפת התכנות.

    מטרות למידה AAP-2.O: עבור אלגוריתמים המעורבים באלמנטים של רשימה: א. כתוב הודעות איטרציה כדי לעבור על רשימה. [מיומנות 2.B] ב. קבע את תוצאת האלגוריתם הכולל מעברים על רשימות. [מיומנות 4.B]

    • AAP-2.O.1 עיבר ברשימה יכול להיות עיבר מלא, בו נגישים כל האלמנטים ברשימה, או עיבר חלקי, בו נגישים רק חלק מהאלמנטים.

      • הצהרת פסילה (EK AAP-2.O.1): עיבר בו-זמני של מספר רשימות באמצעות אותו אינדקס עבור שניהן (עיבור מקביל) אינם בתחום הלימודים ובתחום המבחן AP.
    • AAP-2.O.2 ניתן להשתמש בפקודות חזרה כדי לבצע עיבר ברשימה.

    • AAP-2.O.3 דף ההפניות למבחן מספק

      טקסט:

      FOR EACH item IN aList { <block of statements> }

      בלוק:

      FOR EACH item IN aList block of statements

      המשתנה item מקבל את הערך של כל אלמנט ב-aList ברצף, בסדר, מהאלמנט הראשון ועד האחרון. הקוד ב-block of statements מתבצע פעם אחת עבור כל הצבת ערך ל-item.

    • AAP-2.O.4 ידע באלגוריתמים קיימים המשתמשים בחזרות יכול לעזור בבניית אלגוריתמים חדשים. מספר דוגמאות לאלגוריתמים קיימים הנעשים לעיתים קרובות שימוש ברשימות כוללות:

      • קביעת ערך מינימום או מקסימום ברשימה
      • חישוב סכום או ממוצע של רשימת מספרים
    • AAP-2.O.5 אלגוריתמי חיפוש ליניארי או חיפוש רציפות בוחנים כל אלמנט ברשימה, בסדר, עד שמצויה הערך הרצוי או שנבדקו כל האלמנטים ברשימה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A list 列表 is an ordered collection of values under one name, the course's key data abstraction. AP pseudocode indexes from 1:

    Traverse a list with a loop to sum, count, search, or find a maximum:

    עברית

    רשימה היא קבוצה מסודרת של ערכים תחת שם אחד, הה抽象ה הנתונים המרכזית של הקורס. Pseudocode ב-AP משתמש באינדקסים החל מ-1:

    רשימה מחזיקה ערכים רבים במשתנה אחד, כאשר כל אחד מהם נמצא באמצעות האינדקס שלו
    רשימה מחזיקה ערכים רבים במשתנה אחד, כאשר כל אחד מהם נמצא באמצעות האינדקס שלו
    scores ← [88, 74, 95]
    DISPLAY(scores[1])          // 88
    scores[2] ← 80              // replace the 2nd value
    APPEND(scores, 60)          // add to the end
    INSERT(scores, 1, 100)      // insert at index 1
    REMOVE(scores, 3)           // delete the 3rd element
    LENGTH(scores)              // how many elements
    

    לעבור על רשימה עם לולאה כדי לחשב סכום, לספור, לחפש או למצוא מקסימום:

    FOR EACH x IN scores
    {
        total ← total + x
    }
    
    3.11

    Binary Search · ⁨חיפוש בינארי⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-2): The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.

    Learning Objective AAP-2.P: For binary search algorithms: a. Determine the number of iterations required to find a value in a data set. [Skill 1.D] b. Explain the requirements necessary to complete a binary search. [Skill 1.A]

    • AAP-2.P.1 The binary search algorithm starts at the middle of a sorted data set of numbers and eliminates half of the data; this process repeats until the desired value is found or all elements have been eliminated.
      • Exclusion statement (EK AAP-2.P.1): Specific implementations of the binary search are outside the scope of the course and the AP Exam.
    • AAP-2.P.2 Data must be in sorted order to use the binary search algorithm.
    • AAP-2.P.3 Binary search is often more efficient than sequential/linear search when applied to sorted data.
    עברית

    הבנה מתמשכת (AAP-2): הדרך שבה פקודות ממוינות ומשולבות בתוכנית קובעת את התוצאה המחושבת. תוכניות משלבות מבני איטרציה ובחירה כדי לייצג חזרות ולקבל החלטות כדי להתמודד עם ערכי קלט מגוונים.

    מטרות למידה AAP-2.P: לגבי אלגוריתמי חיפוש בינארי: א. לקבוע את מספר החזרות הנדרשות למציאת ערך במאגר נתונים. [מיומנות 1.D] ב. להסביר את הדרישות הנדרשות להשלמת חיפוש בינארי. [מיומנות 1.A]

    • AAP-2.P.1 אלגוריתם החיפוש הבינארי מתחיל באמצע מאגר נתונים מסודר ומספרים ומסיר מחצית מהנתונים; תהליך זה חוזר על עצמו עד שמצויה הערך הרצוי או שנערכו כל האלמנטים.
      • הצהרת פסילה (EK AAP-2.P.1): יישומים ספציפיים של החיפוש הבינארי אינם בתחום הלימודים ובתחום המבחן AP.
    • AAP-2.P.2 הנתונים חייבים להיות במסודר כדי להשתמש באלגוריתם החיפוש הבינארי.
    • AAP-2.P.3 חיפוש בינארי הוא לעיתים קרובות יעיל יותר מחיפוש רציפות/ליניארי כאשר מיושם על נתונים מסודרים.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Binary search 二分搜索 finds a value in a sorted list far faster than checking each element. It looks at the middle element, then discards the half that cannot contain the target, repeating until found. Each step halves the search space, so a list of $n$ items takes about $\log_2 n$ steps. It requires the data to be sorted first.

    Worked example. Searching a sorted list of $8$ items, binary search halves the range each step: $8\rightarrow4\rightarrow2\rightarrow1$, at most $3$ comparisons ($\log_2 8=3$), whereas a linear search could take up to $8$. The advantage grows explosively: about $1{,}000$ items need only $\approx10$ binary-search steps (but up to $1{,}000$ linear ones), and $1{,}000{,}000$ items need just $\approx20$. Halving is what makes it a reasonable-time algorithm.

    עברית
    ספר טלפונים: חיפוש בינארי חוצה את עמודי המנוחה בשתי בחלקים בשלבים כל אחד
    ספר טלפונים: חיפוש בינארי חוצה את עמודי המנוחה בשתי בחלקים בשלבים כל אחד

    חיפוש בינארי מוצא ערך ברשימה ממויינת הרבה מהר יותר מלבדוק כל אלמנט. הוא בודק את האלמנט האמצעי, ומרחיק את המחצית שלא יכולה להכיל את המטרה, וחוזר על כך עד למציאתו. כל שלב חוצה את מרחב החיפוש, ולכן רשימה של $n$ פריטים לוקחת כ-$\log_2 n$ צעדים. הוא דורש שהנתונים יהיו ממוינים תחילה.

    חיפוש בינארי חוצה את הטווח בכל שלב (הרשימה חייבת להיות מסודרת)
    חיפוש בינארי חוצה את הטווח בכל שלב (הרשימה חייבת להיות מסודרת)

    דוגמה פתורה. בחיפוש ברשימה מוסדרת של $8$ פריטים, חיפוש בינארי חוצה את הטווח בכל שלב: $8\rightarrow4\rightarrow2\rightarrow1$, עד $3$ השוואות ($\log_2 8=3$), בעוד שחיפוש ליניארי עשוי לקחת עד $8$. היתרון גדל באופן אקספוננציאלי: כ-$1{,}000$ פריטים דורשים רק $\approx10$ שלבי חיפוש בינארי (אבל עד $1{,}000$ ליניאריים), ו-$1{,}000{,}000$ פריטים דורשים רק $\approx20$. חיצוני הוא מה שהופך את זה לאלגוריתם בזמן סביר.

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Binary search/ˈbaɪnəri sɜːtʃ/ חיפוש ביינארי
    3.12

    Calling Procedures · ⁨קריאת הליכים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

    Learning Objective AAP-3.A: For procedure calls: a. Write statements to call procedures. [Skill 3.B] b. Determine the result or effect of a procedure call. [Skill 4.B]

    • AAP-3.A.1 A procedure is a named group of programming instructions that may have parameters and return values.

    • AAP-3.A.2 Procedures are referred to by different names, such as method or function, depending on the programming language.

    • AAP-3.A.3 Parameters are input variables of a procedure. Arguments specify the values of the parameters when a procedure is called.

    • AAP-3.A.4 A procedure call interrupts the sequential execution of statements, causing the program to execute the statements within the procedure before continuing. Once the last statement in the procedure (or a return statement) has executed, flow of control is returned to the point immediately following where the procedure was called.

    • AAP-3.A.5 The exam reference sheet provides

      procName(arg1, arg2, ...)

      as a way to call

      Text:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      Block:

      PROCEDURE procName parameter1, parameter2,... block of statements

      which takes zero or more arguments; arg1 is assigned to parameter1, arg2 is assigned to parameter2, and so on.

    • AAP-3.A.6 The exam reference sheet provides the procedure

      Text:

      DISPLAY(expression)

      Block:

      DISPLAY expression

      to display the value of expression, followed by a space.

    • AAP-3.A.7 The exam reference sheet provides the

      Text:

      RETURN(expression)

      Block:

      RETURN expression

      statement, which is used to return the flow of control to the point where the procedure was called and to return the value of expression.

    • AAP-3.A.8 The exam reference sheet provides

      result ← procName(arg1, arg2, ...)

      to assign to result the "value of the procedure" being returned by calling

      Text:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      Block:

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

    • AAP-3.A.9 The exam reference sheet provides procedure

      Text:

      INPUT()

      Block:

      INPUT

      which accepts a value from the user and returns the input value.

    עברית

    הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.

    מטרות למידה AAP-3.A: לגבי קריאות פרוצדורה: א. כתוב הוראות לקריאת פרוצ'ורות. [מיומנות 3.B] ב. קבע את התוצאה או ההשפעה של קריאת פרוצ'ורה. [מיומנות 4.B]

    • AAP-3.A.1 פרוצ'ורה היא קבוצה ממוענת של הוראות תכנות, העשויה להכיל פרמטרים וערכים החזרתיים.

    • AAP-3.A.2 לפרוצ'ורות ישנם שמות שונים, כגון שיטה או פונקציה, בהתאם לשפת התכנות.

    • AAP-3.A.3 פרמטרים הם משתני כניסה בפרוצ'ורה. ארגומנטים מציינים את ערכי הפרמטרים בעת קריאת הפרוצ'ורה.

    • AAP-3.A.4 קריאת פרוצ'ורה מפסיקה את הביצוע הרציף של ההוראות, וגורמת לתוכנה לבצע את ההוראות בתוך הפרוצ'ורה לפני שהיא ממשיכה. לאחר ביצוע ההוראה האחרונה בפרוצ'ורה (או הוראת החזרה), זרימת הבקרה חוזרת לנקודה המידית שלאחר הקריאה לפרוצ'ורה.

    • AAP-3.A.5 דף הייחוס למבחן מספק

      procName(arg1, arg2, ...)

      כדרך לקרוא ל-

      טקסט:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      בלוק:

      PROCEDURE procName parameter1, parameter2,... block of statements

      שיש לו אפס או יותר ארגומנטים; arg1 מוגדר לparameter1, arg2 מוגדר לparameter2, וכדומה.

    • AAP-3.A.6 דף הייחוס למבחן מספק את הפרוצ'ורה

      טקסט:

      DISPLAY(expression)

      בלוק:

      DISPLAY expression

      להדפסת הערך של expression, שאחריו רווח.

    • AAP-3.A.7 דף הייחוס למבחן מספק את

      טקסט:

      RETURN(expression)

      בלוק:

      RETURN expression

      ההוראה, המשמשת להחזרת זרימת הבקרה לנקודה בה נקראה הפרוצ'ורה ולהחזרת הערך של expression.

    • AAP-3.A.8 דף הייחוס למבחן מספק

      result ← procName(arg1, arg2, ...)

      כדי להגדיר לresult את "ערך הפרוצ'ורה" שנחזר על ידי קריאת

      טקסט:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      בלוק:

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

    • AAP-3.A.9 דף הייחוס למבחן מספק את הפרוצ'ורה

      טקסט:

      INPUT()

      בלוק:

      INPUT

      המקבלת ערך מהמשתמש ומחזירה את ערך הכניסה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A procedure (function) 过程 is a named, reusable block of code. Calling it runs its code with the arguments you supply, and it may return a value:

    Procedures let you use code without knowing its inner workings – procedural abstraction 过程抽象.

    עברית

    הליך (פונקציה) הוא בלוק קוד בעל שם וניתן לשימוש חוזר. קריאתו מפעילה את הקוד שלו עם ה-ארגומנטים שספקת, והיא עשויה להחזיר ערך:

    sum ← Add(3, 4)      // call, passing 3 and 4
    

    הליכים מאפשרים להשתמש בקוד ללא הכרה בפנימייתו – אבסטרקציית הליכים.

    3.13

    Developing Procedures · ⁨פיתוח הליכים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

    Learning Objective AAP-3.B: Explain how the use of procedural abstraction manages complexity in a program. [Skill 3.C]

    • AAP-3.B.1 One common type of abstraction is procedural abstraction, which provides a name for a process and allows a procedure to be used only knowing what it does, not how it does it.
    • AAP-3.B.2 Procedural abstraction allows a solution to a large problem to be based on the solutions of smaller subproblems. This is accomplished by creating procedures to solve each of the subproblems.
    • AAP-3.B.3 The subdivision of a computer program into separate subprograms is called modularity.
    • AAP-3.B.4 A procedural abstraction may extract shared features to generalize functionality instead of duplicating code. This allows for program code reuse, which helps manage complexity.
    • AAP-3.B.5 Using parameters allows procedures to be generalized, enabling the procedures to be reused with a range of input values or arguments.
    • AAP-3.B.6 Using procedural abstraction helps improve code readability.
    • AAP-3.B.7 Using procedural abstraction in a program allows programmers to change the internals of the procedure (to make it faster, more efficient, use less storage, etc.) without needing to notify users of the change as long as what the procedure does is preserved.

    Learning Objective AAP-3.C: Develop procedural abstractions to manage complexity in a program by writing procedures. [Skill 3.B]

    • AAP-3.C.1 The exam reference sheet provides

      Text:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      Block:

      PROCEDURE procName parameter1, parameter2,... block of statements

      which is used to define a procedure that takes zero or more arguments. The procedure contains block of statements.

    • AAP-3.C.2 The exam reference sheet provides

      Text:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      Block:

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

      which is used to define a procedure that takes zero or more arguments. The procedure contains block of statements and returns the value of expression. The RETURN statement may appear at any point inside the procedure and causes an immediate return from the procedure back to the calling statement.

    עברית

    הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.

    מטרת הלמידה AAP-3.B: הסבר כיצד השימוש באבסטרקציה פרוצ'ורלית מנהל את המורכבות בתוכנה. [מיומנות 3.C]

    • AAP-3.B.1 סוג נפוץ אחד של אבסטרקציה הוא אבסטרקציה פרוצ'ורלית, המספקת שם לתהליך ומאפשרת שימוש בפרוצ'ורה תוך ידע רק במה she does, לא איך she does it.
    • AAP-3.B.2 חילוץ הליכי (Procedural abstraction) מאפשר פתרון לבעיה גדולה לבסס על פתרונות של תת-בעיות קטנות יותר. דבר זה מתבצע על ידי יצירת הליכים לפתרון כל אחת מהתת-בעיות.
    • AAP-3.B.3 חלוקה של תוכנת מחשב לתת-תוכניות נפרדות נקראת מודולריות.
    • AAP-3.B.4 חילוץ הליכים עשוי להפריד מאפיינים משותפים כדי לגנרלזציה פונקציונליות במקום להכפיל קוד. הדבר מאפשר שימוש חוזר בקוד התוכנה, מה שעוזר בניהול המורכבות.
    • AAP-3.B.5 שימוש בפארמטרים מאפשר גנרליזציה של הליכים, ומאפשר לחזר אותם לשימוש עם מגוון ערכי כניסה או ארגומנטים.
    • AAP-3.B.6 שימוש בחילוץ הליכים עוזר לשפר את קריאות הקוד.
    • AAP-3.B.7 שימוש בחילוץ הליכים בתוכנית מאפשר למפתחים לשנות את הפנימיים של ההליך (כדי להפוך אותו למהיר יותר, יעיל יותר, לצרוך פחות זיכרון וכו') מבלי צורך בהודעת משתמשים על השינוי, כל עוד מה שההליך עושה נשמר.

    מטרות לימוד AAP-3.C: פיתוח חילוצי הליכים לניהול מורכבות בתוכנית על ידי כתיבת הליכים. [מיומנות 3.B]

    • AAP-3.C.1 דף העזר לבחן מספק

      טקסט:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      בלוק:

      PROCEDURE procName parameter1, parameter2,... block of statements

      שמשתמש כדי להגדיר הליך לקבל אפס או יותר ארגומנטים. ההליך מכיל block of statements.

    • AAP-3.C.2 דף העזר לבחן מספק

      טקסט:

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      בלוק:

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

      שמשתמש כדי להגדיר הליך לקבל אפס או יותר ארגומנטים. ההליך מכיל block of statements ומחזיר את הערך של expression. פקודת RETURN עשויה להופיע בכל מקום בתוך ההליך וגורמת לחזרה מיידית מההליך חזרה לפקודה הקוראת.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    You define a procedure with a name, parameters (inputs), and a body, and optionally RETURN a result:

    Writing your own procedures reduces repetition, breaks a big problem into named pieces, and makes programs readable and easier to test – the essence of abstraction 抽象.

    עברית

    את מגדירה פרוצדורה בשם, פרמטרים (כניסות), וגוף, ואופציונלית RETURN תוצאה:

    פירוק תוכנה לפרוצדורות ופרוצדורות משנה
    פירוק תוכנה לפרוצדורות ופרוצדורות משנה
    PROCEDURE Add(a, b)
    {
        RETURN(a + b)
    }
    

    כתיבת פרוצדורות משלך מפחיתה חזרות, מפרק בעיה גדולה לחלקים קרויים, והופכת את התוכניות לקריאות ולקלות יותר לבדיקה – זהו ליבת ה-ה abstraction.

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    procedure (function)/prəˈsiːdʒə/ פרוצדורה (פונקציה)
    procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ הפשטה פרוצדורלית
    abstraction/əbˈstrækʃn/ הפשטה
    library/ˈlaɪbrəri/ ספרייה
    simulation/ˌsɪmjʊˈleɪʃn/ סימולציה
    Efficiency/ɪˈfɪʃənsi/ יעילות
    heuristic/hjuːˈrɪstɪk/ הוריסטיקה
    undecidable/ˌʌndɪˈsaɪdəbl/ בלתי ניתן להחלטה
    Interface/ˈɪntəfeɪs/ ממשק
    3.14

    Libraries · ⁨ספריות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

    Learning Objective AAP-3.D: Select appropriate libraries or existing code segments to use in creating new programs. [Skill 2.B]

    • AAP-3.D.1 A software library contains procedures that may be used in creating new programs.
    • AAP-3.D.2 Existing code segments can come from internal or external sources, such as libraries or previously written code.
    • AAP-3.D.3 The use of libraries simplifies the task of creating complex programs.
    • AAP-3.D.4 Application program interfaces (APIs) are specifications for how the procedures in a library behave and can be used.
    • AAP-3.D.5 Documentation for an API/library is necessary in understanding the behaviors provided by the API/library and how to use them.
    עברית

    הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.

    מטרות לימוד AAP-3.D: בחירת ספריות מתאימות או מקטעי קוד קיימים לשימוש ביצירת תוכניות חדשות. [מיומנות 2.B]

    • AAP-3.D.1 ספריית תוכנה מכילה הליכים שניתן להשתמש בהם ביצירת תוכניות חדשות.
    • AAP-3.D.2 מקטעי קוד קיימים יכולים לבוא ממקורות פנימיים או חיצוניים, כמו ספריות או קוד שנכתב בעבר.
    • AAP-3.D.3 השימוש בספריות מפשט את המשימה של יצירת תוכניות מורכבות.
    • AAP-3.D.4 ממשקי תוכנת אפליקציה (APIs) הם ספקים עבור האופן שבו הליכים בספרייה מתנהגים ועלולים להיות משמשים.
    • AAP-3.D.5 מסמכות ל-API/ספרייה נדרשת בהבנת ההתנהגויות המסופקות על ידי ה-API/ספרייה ובאופן השימוש בהן.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A library 库 is a collection of ready-made procedures that others can reuse. An API (Application Program Interface) 应用程序接口 documents what each procedure does, its parameters, and its result – so you can use it without seeing its code. Libraries save time and let you build on existing, tested work.

    The documentation is part of the library. Documentation for an API or library is necessary in order to understand the behaviours it provides and how to use them — what each procedure expects as parameters, what it returns, and what it does at the edges. Without it you would have to read the source, which defeats the point of abstraction; with it you can use a procedure correctly without knowing how it works inside.

    עברית

    ספרייה היא אוסף של פרוצדורות מוכנות שניתן להשתמש בהן שוב. API (ממשק תכנת אפליקציה) תיעד מה עושה כל פרוצדורה, את הפרמטרים שלה ואת התוצאה שלה – כך שתוכל להשתמש בה מבלי לראות את הקוד שלה. ספריות חוסכות זמן ומאפשרות לך לבנות על עבודה קיימת ובדוקה.

    התעודה היא חלק מהספרייה. תיעוד עבור API או ספרייה הוא חיוני כדי להבין את ההתנהגויות שהיא מספקת וכיצד להשתמש בהן — מה כל פרוצדורה מצפה לקבל כפרמטרים, מה היא מחזירה, ומה היא עושה בקצוות. בלעדה היית צריך לקרוא את המקור, מה שמבטל את מטרת הה abstraction; עם התעודה ניתן להשתמש בפרוצדורה בצורה נכונה מבלי לדעת כיצד היא פועלת בפנים.

    3.15

    Random Values · ⁨ערכים רנדומליים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

    Learning Objective AAP-3.E: For generating random values: a. Write expressions to generate possible values. [Skill 2.B] b. Evaluate expressions to determine the possible results. [Skill 4.B]

    • AAP-3.E.1 The exam reference sheet provides

      Text:

      RANDOM(a, b)

      Block:

      RANDOM a, b

      which generates and returns a random integer from a to b, inclusive. Each result is equally likely to occur. For example, RANDOM(1, 3) could return 1, 2, or 3.

    • AAP-3.E.2 Using random number generation in a program means each execution may produce a different result.

    עברית

    הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.

    מטרות לימוד AAP-3.E: ליצירת ערכים אקראיים: א. כתוב ביטויים ליצירת ערכים אפשריים. [מיומנות 2.B] ב. חשב ביטויים כדי לקבוע תוצאות אפשריות. [מיומנות 4.B]

    • AAP-3.E.1 דף ההפניות לבחינה מספק

      טקסט:

      RANDOM(a, b)

      בלוק:

      RANDOM a, b

    שמייצר ומחזיר מספר שלם אקראי בין a ל-b, כולל השניים. לכל תוצאה יש סיכון שווה להתרחשות. לדוגמה, RANDOM(1, 3) עשויה להחזיר 1, 2 או 3.

    • AAP-3.E.2 השימוש בהחזרת מספרים אקראיים בתוכנית פירושה שהכל ביצוע עשוי להניב תוצאה שונה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    RANDOM(a, b) returns a random integer from a to b (inclusive), letting a program produce unpredictable results – for games, sampling, or simulations. Each call may give a different value, so a program using randomness behaves differently each run.

    עברית

    RANDOM(a, b) מחזיר מספר שלם רנדומלי מ-a עד b (כולל), ומאפשר לתוכנית לייצר תוצאות בלתי צפויות – למשחקים, דגימה, או סימולציות. כל שיחה עשויה להחזיר ערך שונה, ולכן תוכנית המשתמשת ברנדומליות תתנהג בצורה שונה בכל הפעלה.

    3.16

    Simulations · ⁨סימולציות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-3): Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.

    Learning Objective AAP-3.F: For simulations: a. Explain how computers can be used to represent real-world phenomena or outcomes. [Skill 1.A] b. Compare simulations with real-world contexts. [Skill 1.D]

    • AAP-3.F.1 Simulations are abstractions of more complex objects or phenomena for a specific purpose.
    • AAP-3.F.2 A simulation is a representation that uses varying sets of values to reflect the changing state of a phenomenon.
    • AAP-3.F.3 Simulations often mimic real-world events with the purpose of drawing inferences, allowing investigation of a phenomenon without the constraints of the real world.
    • AAP-3.F.4 The process of developing an abstract simulation involves removing specific details or simplifying functionality.
    • AAP-3.F.5 Simulations can contain bias derived from the choices of real-world elements that were included or excluded.
    • AAP-3.F.6 Simulations are most useful when real-world events are impractical for experiments (e.g., too big, too small, too fast, too slow, too expensive, or too dangerous).
    • AAP-3.F.7 Simulations facilitate the formulation and refinement of hypotheses related to the objects or phenomena under consideration.
    • AAP-3.F.8 Random number generators can be used to simulate the variability that exists in the real world.
    עברית

    הבנה מתמשכת (AAP-3): מתכננים מפצלים בעיות לחלקים קטנים ויותר ניתנים לניהול. על ידי יצירת פרוצדורות והיעזרות בפרמטרים, מתכננים ממחישים תהליכים שניתן להשתמש בהם שוב. פרוצדורות מאפשרות למתכננים להתייחס לקוד קיים שנבדק כבר, מה שמאפשר להם לכתוב תוכנות מהר יותר ובביטחון רב יותר.

    מטרות למידה AAP-3.F: עבור סימולציות: א. הסבר כיצד מחשבים יכולים לשמש לייצוג תופעות או תוצאות מהעולם האמיתי. [מיומנות 1.A] ב. השוואת סימולציות עם הקשרים מהעולם האמיתי. [מיומנות 1.D]

    • AAP-3.F.1 סימולציות הן אבסטרקציה של עצמים או תופעות מורכבות יותר לצורך ספציפי.
    • AAP-3.F.2 סימולציה היא ייצוג המשמש מערכי ערכים משתנים כדי לשקף את המצב המתגלגל של תופעה.
    • AAP-3.F.3 סימולציות לעיתים קרובות מדמות אירועים מהעולם האמיתי במטרה להסיק מסקנות, ולאפשר בדיקה של תופעה ללא מגבלות העולם האמיתי.
    • AAP-3.F.4 תהליך פיתוח סימולציה אבסטרקטית כולל הסרת פרטים ספציפיים או הפשטת פונקציונליות.
    • AAP-3.F.5 סימולציות עשויות להכיל שיפוע הנגזר מבחירות של אלמנטים מהעולם האמיתי שנכללו או נשללו.
    • AAP-3.F.6 סימולציות מועילות ביותר כאשר אירועים מהעולם האמיתי אינם מעשיים לניסויים (למשל: גדולים מדי, קטנים מדי, מהירים מדי, איטיים מדי, יקרים מדי או מסוכנים מדי).
    • AAP-3.F.7 סימולציות מקלות על ניסוח ועיבוד של היפותזות הקשורות לעצמים או תופעות הנבדקות.
    • AAP-3.F.8 מחזירי מספרים אקראיים יכולים לשמש לחיקוי השונות הקיימת בעולם האמיתי.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A simulation 模拟 is a program that models a real-world process to study it safely and cheaply. Simulations simplify reality (they leave out detail) and often use randomness to imitate chance events. They let you test scenarios that would be too costly, slow, or dangerous in real life – but their results are only as good as their assumptions.

    A simulation is a way of doing science, not just a picture. Because it can be run many times, cheaply and with one variable changed at a time, a simulation facilitates the formulation and refinement of hypotheses about the object or phenomenon under consideration: you propose an explanation, run the model, compare the result with reality, and adjust either the hypothesis or the model. That is why a simulation's simplifications matter — a result only supports a hypothesis about the real world to the extent that what was left out does not matter.

    עברית

    סימולציה היא תוכנית שמדמה תהליך בעולם האמיתי כדי ללמוד אותו בבטיחות ובזול. סימולציות מצמיחות את המציאות (הן משאירות פרטים בחוץ) ומשתמשות לעיתים קרובות ברנדומליות כדי לדמות אירועי מקרה. הן מאפשרות לך לבדוק תרחישים שהיו יקרים, איטיים או מסוכנים מדי בעולם האמיתי – אך התוצאות שלהן טובות רק במידה שההנחות עליהן מבוססות מדויקות.

    סימולציה היא דרך לעשות מדע, לא רק תמונה. מכיוון שניתן להפעיל אותה פעמים רבות, בזול ובשינוי משתנה אחד בכל פעם, סימולציה מקלה על ניסוח ועידון הנחות לגבי האובייקט או התופעה הנדונות: אתה מציע הסבר, מפעיל את הדגם, משווה את התוצאה למציאות, ומתאים או את ההנחה או את הדגם. לכן הפשטות של הסימולציה חשובה – תוצאה תומכת בהנחה לגבי העולם האמיתי רק במידה שהדברים שנשארו בחוץ אינם משמעותיים.

    3.17

    Algorithmic Efficiency · ⁨יעילות אלגוריתמית⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-4): There exist problems that computers cannot solve, and even when a computer can solve a problem, it may not be able to do so in a reasonable amount of time.

    Learning Objective AAP-4.A: For determining the efficiency of an algorithm: a. Explain the difference between algorithms that run in reasonable time and those that do not. [Skill 1.D] b. Identify situations where a heuristic solution may be more appropriate. [Skill 1.D]

    • AAP-4.A.1 A problem is a general description of a task that can (or cannot) be solved algorithmically. An instance of a problem also includes specific input. For example, sorting is a problem; sorting the list (2,3,1,7) is an instance of the problem.
    • AAP-4.A.2 A decision problem is a problem with a yes/no answer (e.g., is there a path from A to B?). An optimization problem is a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?).
    • AAP-4.A.3 Efficiency is an estimation of the amount of computational resources used by an algorithm. Efficiency is typically expressed as a function of the size of the input.
      • Exclusion statement (EK AAP-4.A.3): Formal analysis of algorithms (Big-O) and formal reasoning using mathematical formulas are outside the scope of this course and the AP Exam.
    • AAP-4.A.4 An algorithm's efficiency is determined through formal or mathematical reasoning.
    • AAP-4.A.5 An algorithm's efficiency can be informally measured by determining the number of times a statement or group of statements executes.
    • AAP-4.A.6 Different correct algorithms for the same problem can have different efficiencies.
    • AAP-4.A.7 Algorithms with a polynomial efficiency or slower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time. Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
    • AAP-4.A.8 Some problems cannot be solved in a reasonable amount of time because there is no efficient algorithm for solving them. In these cases, approximate solutions are sought.
    • AAP-4.A.9 A heuristic is an approach to a problem that produces a solution that is not guaranteed to be optimal but may be used when techniques that are guaranteed to always find an optimal solution are impractical.
      • Exclusion statement (AAP-4.A.9): Specific heuristic solutions are outside the scope of this course and the AP Exam.
    עברית

    הבנה מתמשכת (AAP-4): קיימות בעיות שאין למחשב פתרון להן, ואף כאשר המחשב יכול לפתור בעיה, ייתכן שלא יוכל לעשות זאת בזמן סביר.

    מטרות למידה AAP-4.A: לקביעת יעילותו של אלגוריתם: א. הסבר את ההבדל בין אלגוריתמים הפועלים בזמן סביר לבין אלו שאינם פועלים בזמן סביר. [מיומנות 1.D] ב. זיהוי מקרים שבהם פתרון היקטי (היוריסטי) עשוי להיות מתאים יותר. [מיומנות 1.D]

    • AAP-4.A.1 בעיה היא תיאור כללי של משימה שיכולה (או לא יכולה) להיפתר באמצעות אלגוריתם. דוגמה לבעיה כוללת גם קלט ספציפי. לדוגמה, מיון הוא בעיה; מיון הרשימה (2,3,1,7) הוא דוגמה לבעיה זו.
    • AAP-4.A.2 בעיית החלטה היא בעיה עם תשובה כן/לא (למשל, האם קיים מסלול מ-A ל-B?). בעיית מינון היא בעיה שמטרתה למצוא את הפתרון "הטוב ביותר" מבין אפשרויות רבות (למשל, מהו המסלול הקצר ביותר מ-A ל-B?).
    • AAP-4.A.3 יעילות היא הערכת כמות המשאבים החישוביים הנצרכים על ידי אלגוריתם. יעילות מתבטאת בדרך כלל כפונקציה של גודל הקלט.
      • הצהרת אי-כלליות (EK AAP-4.A3): ניתוח פורמלי של אלגוריתמים (Big-O) והסקה פורמלית באמצעות נוסחאות מתמטיות אינם בתחום הלימודים ובמסלול AP.
    • AAP-4.A.4 יעילותו של אלגוריתם נקבעת באמצעות הסקה פורמלית או מתמטית.
    • AAP-4.A.5 ניתן למדוד יעילות של אלגוריתם באופן לא פורמלי על ידי חישוב מספר הפעמים שבו ביטוי או קבוצת ביטויים מתבצעת.
    • AAP-4.A.6 אלגוריתמים שונים ונכונים עבור אותה בעיה עשויים להציג יעילויות שונות.
    • AAP-4.A.7 אלגוריתמים עם יעילות פולינומית או איטית יותר (קבועה, ליניארית, ריבועית, קובית וכו') נחשבים לפועלים בזמן סביר. אלגוריתמים עם יעילות מעריכית או פאקטוריאלית הם דוגמאות לאלגוריתמים הפועלים בזמן לא סביר.
    • AAP-4.A.8 חלק מהבעיות אינן ניתנות לפתרון בזמן סביר מכיוון שאין להן אלגוריתם יעיל לפתרון. במקרים אלו מחפש פתרונות מקבילים.
    • AAP-4.A.9 היוריסטיקה היא גישה לבעיה המייצרת פתרון שאינו מובטח להיות אופטימלי, אך עשויה לשמש כאשר טכניקות המובטחות למצוא פתרון אופטימלי בכל פעם הן לא מעשיות.
      • הצהרת אי-כלליות (AAP-4.A.9): פתרונות הייוריסטיים ספציפיים אינם בתחום הלימודים ובמסלול AP.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Efficiency 效率 is how much time (or memory) an algorithm needs as its input grows. A reasonable-time algorithm's work grows like a polynomial of the input size (e.g. linear or quadratic); an unreasonable-time algorithm grows far faster (e.g. doubling with each added item), becoming impractical for large inputs. A faster algorithm can make a previously impossible problem solvable. Sometimes an exact answer takes too long, so a heuristic 启发式 – an approach that finds a good-enough answer quickly – is used instead.

    עברית

    יעילות היא הכמות של זמן (או זיכרון) שאלגוריתם צריך ככל שהקלט שלו גדל. אלגוריתם זמן סביר מתפתח כמו פולינום בגודל הקלט (למשל, ליניארי או ריבועי); אלגוריתם זמן לא סביר מתפתח הרבה מהר יותר (למשל, הכפלה עם כל פריט נוסף), והופך למעשי לאינסטרקציות גדולות. אלגוריתם מהיר יותר יכול להפוך בעיה שכמעט בלתי פתירה לפתירה. לעיתים תשובה מדויקת לוקחת יותר מדי זמן, ולכן במקום זאת משתמשים בהיוריסטיקה – גישה שמציעה תשובה טובה מספיק במהירות.

    איך זמן הריצה של אלגוריתם גדל עם גודל הקלט n
    איך זמן הריצה של אלגוריתם גדל עם גודל הקלט n
    3.18

    Undecidable Problems · ⁨בעיות בלתי פתירות⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (AAP-4): There exist problems that computers cannot solve, and even when a computer can solve a problem, it may not be able to do so in a reasonable amount of time.

    Learning Objective AAP-4.B: Explain the existence of undecidable problems in computer science. [Skill 1.A]

    • AAP-4.B.1 A decidable problem is a decision problem for which an algorithm can be written to produce a correct output for all inputs (e.g., "Is the number even?").
    • AAP-4.B.2 An undecidable problem is one for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer.
      • Exclusion statement (EK AAP-4.B.2): Determining whether a given problem is undecidable is outside the scope of this course and the AP Exam.
    • AAP-4.B.3 An undecidable problem may have some instances that have an algorithmic solution, but there is no algorithmic solution that could solve all instances of the problem.
    עברית

    הבנה מתמשכת (AAP-4): קיימות בעיות שאין למחשב פתרון להן, ואף כאשר המחשב יכול לפתור בעיה, ייתכן שלא יוכל לעשות זאת בזמן סביר.

    מטרת הלמידה AAP-4.B: הסבר על קיום של בעיות בלתי פתירות במדעי המחשב. [מיומנות 1.A]

    • AAP-4.B.1 בעיה פתירה היא בעיית החלטה עבורה ניתן לכתוב אלגוריתם המפיק תוצאה נכונה לכל הקלטים (למשל, "האם המספר זוגי?").
    • AAP-4.B.2 בעיה בלתי פתירה היא בעיה עבורה אין אפשרות לבנות אלגוריתם המסוגל לספק תמיד תשובה נכונה כן/לא.
      • הצהרת אי-כלליות (EK AAP-4.B.2): קביעה האם בעיה נתונה היא בלתי פתירה אינה בתחום הלימודים ובמסלול AP.
    • AAP-4.B.3 בעיה בלתי פתירה עשויה להכיל דוגמאות מסוימות הניתנות לפתרון אלגוריתמי, אך אין אלגוריתם שיכול לפתור את כל הדוגמאות של הבעיה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    Some problems are undecidable 不可判定: no algorithm can solve every case of them with a correct yes/no answer. This is a fundamental limit of computing – not a matter of needing a faster computer, but a proof that no such algorithm can exist.

    Exam skill: be able to determine a code segment's result by tracing it, compare two algorithms' efficiency (reasonable vs unreasonable time), and recognize procedural and data abstraction in a program.

    עברית

    ישנן בעSome בלתי פתירות: אין אלגוריתם שיכול לפתור כל מקרה מהן עם תשובה נכונה כן/לא. זוהי מגבלה יסודית של חישוב – לא עניין של צורך במחשב מהיר יותר, אלא הוכחה שאין אלגוריתם כזה יכול להתקיים.

    מיומנות לבחינה: יכולת לקבוע תוצאה של מקטע קוד על ידי מעקב אחריו, להשוות בין יעילות של שני אלגוריתמים (זמן סביר מול לא סביר), ולהכיר בה abstraction פרוצדורלית ונתונים בתוכנית.

    3.18

    Exam tips · ⁨טיפים לבחינות⁩

    English
    • Know a variable is a named store for a value and trace how assignment updates it step by step.
    • Read the AP pseudocode carefully — a <- expression assigns, and lists are 1-indexed on the exam reference sheet.
    • Distinguish a variable from a list (a collection accessed by index) and use list operations correctly.
    • Evaluate expressions with the right precedence and boolean logic (AND, OR, NOT).
    • Pick clear, meaningful variable names — the written tasks reward readable code.
    עברית
    • לדעת שמשתנה הוא אחסון קרוי לערך ולעקוב אחר הקצאה עדכון צעד אחר צעד.
    • קראו את הפסאודוקוד AP בזהירות — a <- expression מבצע הקצאה, ורשימות ממודדות ב-1 בדף ההפניות לבחינה.
    • להבדיל בין משתנה ל-רשימה (אוסף המיוגש באמצעות אינדקס) ולשתמש נכונה בפעולות על רשימות.
    • חשבו ביטויים עם עדיפות נכונה ולוגיקה בוליאנית (AND, OR, NOT).
    • לבחור שמות משתנים ברורים ומובנים — משימות הכתיבה מעודדות כתיבת קוד קריאה.
  • 4

    Computer Systems and Networks · ⁨מערכות מחשב ורשתות⁩

    Watch lesson · ⁨צפה בשיעור⁩
    4.1

    The Internet · ⁨האינטרנט⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CSN-1): Computer systems and networks facilitate the transfer of data.

    Learning Objective CSN-1.A: Explain how computing devices work together in a network. [Skill 5.A]

    • CSN-1.A.1 A computing device is a physical artifact that can run a program. Some examples include computers, tablets, servers, routers, and smart sensors.
    • CSN-1.A.2 A computing system is a group of computing devices and programs working together for a common purpose.
    • CSN-1.A.3 A computer network is a group of interconnected computing devices capable of sending or receiving data.
    • CSN-1.A.4 A computer network is a type of computing system.
    • CSN-1.A.5 A path between two computing devices on a computer network (a sender and a receiver) is a sequence of directly connected computing devices that begins at the sender and ends at the receiver.
    • CSN-1.A.6 Routing is the process of finding a path from sender to receiver.
    • CSN-1.A.7 The bandwidth of a computer network is the maximum amount of data that can be sent in a fixed amount of time.
    • CSN-1.A.8 Bandwidth is usually measured in bits per second.

    Learning Objective CSN-1.B: Explain how the Internet works. [Skill 5.A]

    • CSN-1.B.1 The Internet is a computer network consisting of interconnected networks that use standardized, open (nonproprietary) communication protocols.
    • CSN-1.B.2 Access to the Internet depends on the ability to connect a computing device to an Internet-connected device.
    • CSN-1.B.3 A protocol is an agreed-upon set of rules that specify the behavior of a system.
    • CSN-1.B.4 The protocols used in the Internet are open, which allows users to easily connect additional computing devices to the Internet.
    • CSN-1.B.5 Routing on the Internet is usually dynamic; it is not specified in advance.
    • CSN-1.B.6 The scalability of a system is the capacity for the system to change in size and scale to meet new demands.
    • CSN-1.B.7 The Internet was designed to be scalable.

    Learning Objective CSN-1.C: Explain how data are sent through the Internet via packets. [Skill 5.A]

    • CSN-1.C.1 Information is passed through the Internet as a data stream. Data streams contain chunks of data, which are encapsulated in packets.
    • CSN-1.C.2 Packets contain a chunk of data and metadata used for routing the packet between the origin and the destination on the Internet, as well as for data reassembly.
    • CSN-1.C.3 Packets may arrive at the destination in order, out of order, or not at all.
    • CSN-1.C.4 IP, TCP, and UDP are common protocols used on the Internet.

    Learning Objective CSN-1.D: Describe the differences between the Internet and the World Wide Web. [Skill 5.A]

    • CSN-1.D.1 The World Wide Web is a system of linked pages, programs, and files.
    • CSN-1.D.2 HTTP is a protocol used by the World Wide Web.
    • CSN-1.D.3 The World Wide Web uses the Internet.
    עברית

    הבנה מתמשכת (CSN-1): מערכות מחשב ורשתות מקלות על העברת נתונים.

    מטרת לימוד CSN-1.A: הסבר כיצד מכשירי מחשב פועלים יחד ברשת. [מיומנות 5.A]

    • CSN-1.A.1 מכשיר מחשב הוא אובייקט פיזי שיכול להפעיל תוכנית. דוגמאות לכך הן מחשבים, טאבלטים, שרתים, נתבים וחיישנים חכמים.
    • CSN-1.A.2 מערכת מחשב היא קבוצה של מכשירי מחשב ותוכניות הפועלים יחד למטרות משותפות.
    • CSN-1.A.3 רשת מחשב היא קבוצה של מכשירי מחשב מקושרים היכולים לשלוח או לקבל נתונים.
    • CSN-1.A.4 רשת מחשב היא סוג של מערכת מחשב.
    • CSN-1.A.5 מסלול בין שני התקבי מחשב ברשת מחשבים (משדר ומקבל) הוא רצף של התקבי מחשב המחוברים ישירות זה לזה, המתחיל במשדר ומסתיים במקבל.
    • CSN-1.A.6 ניתוב היא תהליך מציאת מסלול מהמשדר למקבל.
    • CSN-1.A.7 רוחב הפס של רשת מחשבים הוא כמות הנתונים המקסימלית שיכולה לשדר בזמן קבוע.
    • CSN-1.A.8 רוחב הפס נמדד בדרך כלל בבית לשנייה.

    מטרת הלמידה CSN-1.B: הסבר כיצד האינטרנט פועל. [מיומנות 5.A]

    • CSN-1.B.1 האינטרנט הוא רשת מחשבים המורכבת ממערכות רשת מקושרות המשתמשות בפרוטוקולי תקשורת סטנדרטיים, פתוחים (לא פריטריאריים).
    • CSN-1.B.2 גישה לאינטרנט תלויה ביכולת לחבר התקב מחשב להתקב מחשב המחובר לאינטרנט.
    • CSN-1.B.3 פרוטוקול הוא סדרת כללים הסכמית המגדירה את התנהגותו של מערכת.
    • CSN-1.B.4 הפרוטוקולים המשמשים באינטרנט הם פתוחים, מה שמאפשר למשתמשים לחבר בקלות התקבי מחשב נוספים לאינטרנט.
    • CSN-1.B.5 ניתוב באינטרנט הוא לרוב דינמי; הוא אינו נקבע מראש.
    • CSN-1.B.6 התרחבות של מערכת היא היכולת שלה להשתנות בגודלה ובסקאלה כדי לענות על דרישות חדשות.
    • CSN-1.B.7 האינטרנט עוצב להיות מתרחב.

    מטרת הלמידה CSN-1.C: הסבר כיצד נתונים נשלחים דרך האינטרנט באמצעות חבילות. [מיומנות 5.A]

    • CSN-1.C.1 מידע עובר דרך האינטרנט כזרם נתונים. זרמי נתונים מכילים חלקי נתונים, המעטפים בחבילות פאקטים.
    • CSN-1.C.2 חבילות מכילות חלק נתונים ומטא-דאטה המשמשים לניתוב החבילה בין המקור ליעד באינטרנט, כמו גם להרכבה מחדש של נתונים.
    • CSN-1.C.3 חבילות עשויות להגיע ליעד בסדר, מחוץ לסדר, או אף לא להגיע בכלל.
    • CSN-1.C.4 IP, TCP ו-UDP הם פרוטוקולים נפוצים המשמשים באינטרנט.

    מטרת הלמידה CSN-1.D: תיאור ההבדלים בין האינטרנט לבין World Wide Web. [מיומנות 5.A]

    • CSN-1.D.1 World Wide Web הוא מערכת של דפים מקושרים, תוכניות וקבצים.
    • CSN-1.D.2 HTTP הוא פרוטוקול המשמש את World Wide Web.
    • CSN-1.D.3 הרשת העולמית (World Wide Web) משתמשת ברשת האינטרנט.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    The Internet 互联网 is a global network of networks. Data travels as packets 数据包 – small chunks that are sent separately and reassembled at the destination. Two ideas make it work at scale:

    • Protocols 协议 are agreed rules for communication. IP (Internet Protocol) addresses and routes packets; TCP reassembles them in order and re-requests lost ones; HTTP carries web pages; DNS translates a name like example.com into an IP address.
    • Redundancy 冗余 and routing: there are many possible paths between two points, so if one path fails, packets take another. This makes the Internet fault-tolerant 容错.

    The Internet is designed to be open and scalable – built on standards anyone can use, so it keeps working as billions of devices join. Bandwidth 带宽 is the amount of data a connection can carry per second.

    עברית
    מחבר Ethernet RJ45 — קשרים פיזיים ממסרים חביות דרך האינטרנט
    מחבר Ethernet RJ45 — קשרים פיזיים ממסרים חביות דרך האינטרנט

    ה-אינטרנט הוא רשת גלובלית של רשתות. נתונים עוברים כ-חביות – חלקים קטנים שנשלחים בנפרד ומורכבים מחדש ביעד. שתי רעיונות מאפשרים את פעילותו בקנה מידה:

    האינטרנט היא הרשת העולמית; האינטרנט הוא שירות אחד הפועל עליה
    האינטרנט היא הרשת העולמית; האינטרנט הוא שירות אחד הפועל עליה
    • פרוטוקולים הם כללי הסכמה לתקשורת. כתובות IP (פרוטוקול האינטרנט) וחבילות מסדרות; TCP מרכיב אותן בסדר ובקשן מחודש אלו שאבדו; HTTP נושא דפי אתר; DNS תרגום שם כמו example.com לכתובת IP.
    • חוזרות וניווט: קיימות מספר מסלולים אפשריים בין שני נקודות, כך אם מסלול אחד נכשל, חביות ייקחו אחר. זה הופך את האינטרנט ל-עמיד לקלקולים.

    האינטרנט עוצב להיות פתוח ומתרחב – בנוי על סטנדרטים שאף אחד יכול להשתמש בהם, כך שהוא ממשיך לפעול כאשר מיליארדים מכשירים מצטרפים. רוחב פס הוא כמות הנתונים שהחיבור יכול לשאת בשנייה.

    Explore · ⁨חקור⁩

    How data crosses the Internet in packets · ⁨כיצד נתונים עוברים ברשת האינטרנט בחבילות⁩

    The Internet breaks a message into numbered packets, each addressed and routed independently (often by different paths), then reassembled at the destination. That design makes it fault-tolerant — if one route fails, packets take another. · ⁨האינטרנט מפצל הודעה לחבילות מסומנות, כל אחת מופנית ומונחה באופן עצמאי (לרוב בדרכים שונות), ואז מורכבת מחדש ביעד. עיצוב זה הופך אותו לעמיד לקלקולים — אם דרך אחת נכשלת, חבילות לוקחות אחרת.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Internet/ˈɪntənet/ אינטרנט
    packets/ˈpækɪts/ חבילות נתונים
    Protocols/ˈprəʊtəkɒlz/ פרוטוקולים
    Redundancy/rɪˈdʌndənsi/ חזרה על עצמה
    fault-tolerant/fɒlt ˈtɒlərənt/ עמיד בפני תקלות
    Bandwidth/ˈbændwɪdθ/ רוחב פס
    reliability/rɪˌlaɪəˈbɪlɪti/ אמינות
    Sequential computing/siːˈkwenʃl kəmˈpjuːtɪŋ/ חישוב רציף
    Parallel computing/ˈpærəlel kəmˈpjuːtɪŋ/ חישוב מקביל
    Distributed computing/ˈdɪstrɪbjuːtɪd kəmˈpjuːtɪŋ/ חישוב מפוזר
    speedup/ˈspiːdʌp/ הקצאה מהירות
    Watch lesson · ⁨צפה בשיעור⁩
    4.2

    Fault Tolerance · ⁨עמידות לקלקולים⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CSN-1): Computer systems and networks facilitate the transfer of data.

    Learning Objective CSN-1.E: For fault-tolerant systems, like the Internet: a. Describe the benefits of fault tolerance. [Skill 1.D] b. Explain how a given system is fault-tolerant. [Skill 5.A] c. Identify vulnerabilities to failure in a system. [Skill 1.D]

    • CSN-1.E.1 The Internet has been engineered to be fault-tolerant, with abstractions for routing and transmitting data.
    • CSN-1.E.2 Redundancy is the inclusion of extra components that can be used to mitigate failure of a system if other components fail.
    • CSN-1.E.3 One way to accomplish network redundancy is by having more than one path between any two connected devices.
    • CSN-1.E.4 If a particular device or connection on the Internet fails, subsequent data will be sent via a different route, if possible.
    • CSN-1.E.5 When a system can support failures and still continue to function, it is called fault-tolerant. This is important because elements of complex systems fail at unexpected times, often in groups, and fault tolerance allows users to continue to use the network.
    • CSN-1.E.6 Redundancy within a system often requires additional resources but can provide the benefit of fault tolerance.
    • CSN-1.E.7 The redundancy of routing options between two points increases the reliability of the Internet and helps it scale to more devices and more people.
    עברית

    הבנה מתמשכת (CSN-1): מערכות מחשב ורשתות מקלות על העברת נתונים.

    מטרות למידה CSN-1.E: עבור מערכות עמידות לטעויות, כמו רשת האינטרנט: א. תאר את היתרונות של עמידות לטעויות. [כישור 1.D] ב. הסבר כיצד מערכת נתונה היא עמידה לטעויות. [כישור 5.A] ג. זיהוי נקודות חלשות להפרעה במערכת. [כישור 1.D]

    • CSN-1.E.1 רשת האינטרנט עוצבה להיות עמידה לטעויות, עם השערות (abstractions) לניווט ולשליחת נתונים.
    • CSN-1.E.2 ריבוי (Redundancy) הוא כללת רכיבים נוספים שיכולים לשמש להפחתת הנזק בהפרעת מערכת אם רכיבים אחרים ייכשלו.
    • CSN-1.E.3 דרך אחת לבצע ריבוי ברשת היא על ידי קיום יותר מנתיב אחד בין כל שני מכשירים מחוברים.
    • CSN-1.E.4 אם מכשיר או חיבור מסוים ברשת האינטרנט נכשל, נתונים הבאים ישלחו בנתיב אחר, אם אפשר.
    • CSN-1.E.5 כאשר מערכת יכולה לתמוך בהפרעות ועדיין ממשיכה לפעול, היא נקראת עמידה לטעויות. הדבר חשוב כי אלמנטים במערכות מורכבות נכשלים בזמנים לא צפויים, לעיתים קרובות בקבוצות, ועמידות לטעויות מאפשרת למשתמשים להמשיך להשתמש ברשת.
    • CSN-1.E.6 ריבוי בתוך מערכת דורש לעיתים משאבים נוספים אך יכול לספק את היתרון של עמידות לטעויות.
    • CSN-1.E.7 הריבוי באפשרויות ניווט בין שני נקודות מגביר את האמינות של האינטרנט ועוזר לו לגדול ולהתפשט למכשירים ומשתמשים נוספים.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English

    A system is fault-tolerant if it keeps working even when part of it fails. The Internet achieves this through redundant connections: because packets can be routed along multiple paths, the failure of one router or cable does not stop communication – traffic simply reroutes. Fault tolerance costs extra resources (the redundant paths) but greatly improves reliability 可靠性. A single path with no backup is not fault-tolerant.

    עברית
    נתב Wi-Fi: השער המקומי שמפנה חביות לעבר האינטרנט הרחב
    נתב Wi-Fi: השער המקומי שמפנה חביות לעבר האינטרנט הרחב

    מערכת היא עמידה לקלקולים אם היא ממשיכה לפעול גם כאשר חלק ממנה נכשל. האינטרנט מגיע לכך באמצעות חיבורים חוזרים: מכיוון שחביות יכולות להיות מסודרות לאורך מסלולים מרובים, כשל של נתב או כבל אחד אינו עצור תקשורת – התנועה פשוט מוסדרת מחדש. עמידות לקלקולים דורשת משאבים נוספים (המסלולים החוזרים) אך משפרת מאוד את האמינות. מסלול יחיד ללא גיבוי אינו עמיד לקלקולים.

    החלפת חבילות שולחת חבילות דרך מסלולים עצמאיים, כך שהרשת עמידה בפני קישור תקול
    החלפת חביות שולחת חביות במסלולים עצמאיים, כך הרשת עמידה לקישור כושל
    4.3

    Parallel and Distributed Computing · ⁨מחשוב מקביל ומפורץ⁩

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (CSN-2): Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.

    Learning Objective CSN-2.A: For sequential, parallel, and distributed computing: a. Compare problem solutions. [Skill 1.D] b. Determine the efficiency of solutions. [Skill 1.D]

    • CSN-2.A.1 Sequential computing is a computational model in which operations are performed in order one at a time.
    • CSN-2.A.2 Parallel computing is a computational model where the program is broken into multiple smaller sequential computing operations, some of which are performed simultaneously.
    • CSN-2.A.3 Distributed computing is a computational model in which multiple devices are used to run a program.
    • CSN-2.A.4 Comparing efficiency of solutions can be done by comparing the time it takes them to perform the same task.
    • CSN-2.A.5 A sequential solution takes as long as the sum of all of its steps.
    • CSN-2.A.6 A parallel computing solution takes as long as its sequential tasks plus the longest of its parallel tasks.
    • CSN-2.A.7 The "speedup" of a parallel solution is measured in the time it took to complete the task sequentially divided by the time it took to complete the task when done in parallel.

    Learning Objective CSN-2.B: Describe benefits and challenges of parallel and distributed computing. [Skill 1.D]

    • CSN-2.B.1 Parallel computing consists of a parallel portion and a sequential portion.
    • CSN-2.B.2 Solutions that use parallel computing can scale more effectively than solutions that use sequential computing.
    • CSN-2.B.3 Distributed computing allows problems to be solved that could not be solved on a single computer because of either the processing time or storage needs involved.
    • CSN-2.B.4 Distributed computing allows much larger problems to be solved quicker than they could be solved using a single computer.
    • CSN-2.B.5 When increasing the use of parallel computing in a solution, the efficiency of the solution is still limited by the sequential portion. This means that at some point, adding parallel portions will no longer meaningfully increase efficiency.
    עברית

    הבנה מתמשכת (CSN-2): מחשוב מקביל ומפוזר מנצל מספר מחשבים כדי לפתור בעיות מורכבות או לעבד סטות נתונים גדולות מהר יותר.

    מטרות למידה CSN-2.A: עבור מחשוב סדרתי, מקביל ומפוזר: א. השווה פתרונות לבעיות. [כישור 1.D] ב. קבע את היעילות של הפתרונות. [כישור 1.D]

    • CSN-2.A.1 מחשוב סדרתי הוא מודל חישובי שבו פעולות מבוצעות בסדר, אחת לאחר השנייה.
    • CSN-2.A.2 מחשוב מקביל הוא מודל חישובי שבו התוכנית מפוצלת לפעולות מחשוב סדרתי קטנות יותר, חלקן מהן מבוצעות בו-זמנית.
    • CSN-2.A.3 חישוב מבוזר הוא דגם חישובי שבו משתמשים במספר התקנים כדי להריץ תוכנית.
    • CSN-2.A.4 השוואת יעילות של פתרונות יכולה להתבצע על ידי השוואת הזמן הנדרש מהם לבצע את אותה משימה.
    • CSN-2.A.5 פתרון סידורי לוקח בדיוק זמן כפי ששווה לסכום כל השלבים שלו.
    • CSN-2.A.6 פתרון לחישוב מקביל לוקח זמן כפי ששווה למשימות הסידוריות שלו בתוספת הזמן הארוך ביותר של המשימות המקבילות שלו.
    • CSN-2.A.7 ה"היערות" (speedup) של פתרון מקביל נמדדת בזמן שהמשימה לקחה להיגמר בסידור, חלקי בזמן שהיא לקחה להיגמר כאשר בוצעה במקביל.

    מטרת לימוד CSN-2.B: לתאר את היתרונות והאתגרים של חישוב מקביל ומבוזר. [מיומנות 1.D]

    • CSN-2.B.1 חישוב מקביל מורכב מחלקה מקבילה וחלקה סידורית.
    • CSN-2.B.2 פתרונות המשתמשים בחישוב מקביל יכולים לצמוח בצורה יעילה יותר מאשר פתרונות המשתמשים בחישוב סידורי.
    • CSN-2.B.3 חישוב מבוזר מאפשר לפתור בעיות שלא היו ניתנות לפתרון במחשב יחיד בשל זמן העיבוד או הצרכים באחסון הנתונים הקשורים לכך.
    • CSN-2.B.4 חישוב מבוזר מאפשר לפתור בעיות גדולות הרבה יותר ובמהירות רבה יותר מאשר ניתן היה לפתורן באמצעות מחשב יחיד.
    • CSN-2.B.5 כאשר מגדילים את השימוש בחישוב מקביל בתוך פתרון, היעילות של הפתון עדיין מוגבלת על ידי החלק הסידורי שלו. המשמעות היא שכאמור, הוספת חלקים מקבילים לא תגדיל עוד משמעותית את היעילות.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    English
    • Sequential computing 顺序计算 runs one operation at a time.
    • Parallel computing 并行计算 splits a task into parts that run at the same time on multiple processors, finishing faster.
    • Distributed computing 分布式计算 uses many computers connected by a network to work on one problem – essential for problems too big for a single machine.

    A parallel solution's speedup 加速比 is the sequential time divided by the parallel time. Speedup is limited: parts that must run in sequence cannot be sped up by adding processors, so doubling the processors rarely doubles the speed.

    Worked example. A task has a part that must run sequentially, taking $40$ seconds, plus a parallelizable part that takes $60$ seconds on one processor – so on a single processor the whole task takes $40+60=100$ seconds. Spread the parallel part across $3$ processors and it takes $\tfrac{60}{3}=20$ seconds, so the total parallel time is $40+20=60$ seconds and the speedup is $\tfrac{100}{60}\approx1.67$. The $40$-second sequential part is a floor: even with infinitely many processors the task can never finish in under $40$ seconds.

    Exam skill: given the times for the sequential and parallel portions of a task, be able to calculate the total parallel time and the speedup.

    עברית
    מארזי שרתים במרכז נתונים: מחשוב מפורץ מפזר עבודה על מכונות רבות
    מארזי שרתים במרכזי נתונים: מחשוב מבוזר מפצל עבודה על פני מכונות רבות
    • מחשוב סדרתי מבצע פעולה אחת בכל פעם.
    • מחשוב מקביל מחלק משימה לחלקים העובדים באותו זמן על מעבדים מרובים, ומסתיים מהר יותר.
    • מחשוב מבוזר משתמש במחשבים רבים המחוברים ברשת כדי לפתור בעיה אחת – קריטי לבעיות גדולות מדי למכונה אחת.
    מחשוב מקביל: מעבדים רבים עובדים באותו זמן
    מחשוב מקביל: מעבדים רבים עובדים באותו זמן

    האצה של פתרון מקביל היא החלוקה של הזמן הסדרתי בזמן המקביל. ההאצה מוגבלת: חלקים שחייבים לבצע בסדר לא יכולים להיות מואצים על ידי הוספת מעבדים, ולכן הכפלת מספר המעבדים נדיר להכפיל את המהירות.

    דוגמה פותרת. למשימה יש חלק שחייב לבצע בסדר וקוח $40$ שניות, וחלק הניתן לביצוע מקביל הקורה $60$ שניות במעבד אחד – כך שמעבד אחד יוצר כולו את המשימה תוך $40+60=100$ שניות. אם מפצלים את החלק המקביל על פני $3$ מעבדים, הוא ייקח $\tfrac{60}{3}=20$ שניות, ולכן הזמן המקביל הכולל הוא $40+20=60$ שניות וההאצה היא $\tfrac{100}{60}\approx1.67$. החלק הסדרתי של $40$ שניות הוא גבול תחתון: גם עם אינסוף מעבדים, המשימה לעולם לא תסתיים בתוך פחות מ$40$ שניות.

    מיומנות לבחינה: בהינתן הזמנים לחלקים הסדרתי והמקביל של משימה, יכול לחשב את הזמן המקביל הכולל וההאצה.

    4.3

    Exam tips · ⁨טיפים לבחינות⁩

    English
    • Describe how data travels in packets over a redundant, fault-tolerant network of independent routers.
    • Know that protocols (IP, TCP, HTTP) are agreed rules, and that open standards let different systems interoperate.
    • Explain scalability and how the Internet grows without central control.
    • Contrast bandwidth (rate) with latency (delay), and describe the DNS name-to-address lookup.
    • Discuss the digital divide and security basics (encryption, authentication) in plain terms.
    עברית
    • לתאר כיצד נתונים עוברים בחבילות דרך רשת אמינה ועמידה לטעויות של נתבים עצמאיים.
    • לדעת שפרוטוקולים (IP, TCP, HTTP) הם כללי הסכם, ושסטנדרטים פתוחים מאפשרים אינטראופרטיביליות בין מערכות שונות.
    • להסביר תכנון-קנה ולהראות כיצד האינטרנט צומח ללא בקרה מרכזית.
    • להשוות בין רוחב פס (קצב) לבין השהייה (延迟), ולתאר את חיפוש השם-כתובת ב-DNS.
    • לדון בפערים דיגיטליים ובבסיסי אבטחה (הצפנה, אימות) בשפה פשוטה.
  • 5

    Impact of Computing · ⁨השפעת המחשוב⁩

    Watch lesson · ⁨צפה בשיעור⁩
    5.1

    Beneficial and Harmful Effects

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.A: Explain how an effect of a computing innovation can be both beneficial and harmful. [Skill 5.C]

    • IOC-1.A.1 People create computing innovations.
    • IOC-1.A.2 The way people complete tasks often changes to incorporate new computing innovations.
    • IOC-1.A.3 Not every effect of a computing innovation is anticipated in advance.
    • IOC-1.A.4 A single effect can be viewed as both beneficial and harmful by different people, or even by the same person.
    • IOC-1.A.5 Advances in computing have generated and increased creativity in other fields, such as medicine, engineering, communications, and the arts.

    Learning Objective IOC-1.B: Explain how a computing innovation can have an impact beyond its intended purpose. [Skill 5.C]

    • IOC-1.B.1 Computing innovations can be used in ways that their creators had not originally intended:
      • The World Wide Web was originally intended only for rapid and easy exchange of information within the scientific community.
      • Targeted advertising is used to help businesses, but it can be misused at both individual and aggregate levels.
      • Machine learning and data mining have enabled innovation in medicine, business, and science, but information discovered in this way has also been used to discriminate against groups of individuals.
    • IOC-1.B.2 Some of the ways computing innovations can be used may have a harmful impact on society, the economy, or culture.
    • IOC-1.B.3 Responsible programmers try to consider the unintended ways their computing innovations can be used and the potential beneficial and harmful effects of these new uses.
    • IOC-1.B.4 It is not possible for a programmer to consider all the ways a computing innovation can be used.
    • IOC-1.B.5 Computing innovations have often had unintended beneficial effects by leading to advances in other fields.
    • IOC-1.B.6 Rapid sharing of a program or running a program with a large number of users can result in significant impacts beyond the intended purpose or control of the programmer.
    עברית

    הבנה מתמשכת (IOC-1): בעוד שמחדשות מחשוב מותאמות בדרך כלל为了实现 מטרה ספציפית, הן עשויות לגרור consequences בלתי צפויות.

    מטרת לימוד IOC-1.A: להסביר כיצד השפעה של חדשה מחשובית יכולה להיות גם מיטיבה וגם נזירה. [מיומנות 5.C]

    • IOC-1.A.1 אנשים יוצרים חדשות מחשוביות.
    • IOC-1.A.2 הדרך שבה אנשים מבצעים משימות משתנה לעיתים קרובות כדי לשלב את החדשות המחשוביות החדשות.
    • IOC-1.A.3 לא כל ההשפעות של חדשה מחשובית מתוכננות מראש.
    • IOC-1.A.4 אפקט יחיד יכול להיראות כמיטיב וכנזיר בהתבוננות של אנשים שונים, או אף מאותו אדם.
    • IOC-1.A.5 התקדמות במחשוב ייצרה וייברה יצירתיות בתחומים אחרים, כמו רפואה, הנדסה, תקשורת ואמנות.

    מטרת לימוד IOC-1.B: להסביר כיצד חדשה מחשובית יכולה להיות לה השפעה מעבר למטרה המתוכננת שלה. [מיומנות 5.C]

    • IOC-1.B.1 חדשונות מחשוב יכולים לשמש בצורות שיוצאי הדופן שלהם לא התכוונו בהתחלה:
      • הרשת העולמית הוקמה במקור רק להחלפה מהירה וקלה של מידע בתוך הקהילה המדעית.
      • פרסום ממוקד משמש לעזרת עסקים, אך עלול להיפרץ גם ברמת יחידים וגם ברמת קבוצות.
      • למידת מכונה וחפירת נתונים אפשרו חדשנות ברפואה, בעסקים ובמדעים, אך מידע שנמצא בדרך זו שימש גם כדי לבצע אפלייה נגד קבוצות אנשים.
    • IOC-1.B.2 חלק מהצורות שבהן חדשונות מחשוב יכולים לשמש עשויות להיות בעלות השפעה מזיקה על החברה, הכלכלה או התרבות.
    • IOC-1.B.3 מתכנתים אחראיים מנסים לקחת בחשבון את הצורות הבלתי צפויות שבהן חדשונות המחשוב שלהם יכולים לשמש, ainsi que את האפקטים הפוטנציאליים הטובים והמזיקים של שימושים אלו.
    • IOC-1.B.4 אינה אפשרית עבור מתכנת לקחת בחשבון את כל הצורות שבהן חדשונות מחשוב יכולים לשמש.
    • IOC-1.B.5 לחדשונות מחשוב היו לעיתים תכופר אפקטים טובים בלתי צפויים באמצעות הנחלתם להתקדמות בתחומים אחרים.
    • IOC-1.B.6 שיתוף מהיר של תוכנית או ריצה של תוכנית עם מספר גדול של משתמשים יכולה לייצר השפעות משמעותיות מעבר למטרה המצופה או לשליטת המתכנת.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    A pile of e-waste — computing has environmental costs as well as benefits
    A pile of e-waste — computing has environmental costs as well as benefits

    Every computing innovation can be used in ways that help and ways that harm – often the same technology does both. A social network connects people and can spread misinformation; automation raises productivity and can remove jobs. Effects are frequently unintended: creators cannot foresee every use. When you evaluate a computing innovation, weigh its benefits and harms on people and society, and remember that harms are not always deliberate.

    Computing affects the public's wellbeing in several ways
    Computing affects the public's wellbeing in several ways

    Computing also generates creativity in other fields, which the CED asks for as a benefit in its own right, not merely as convenience: modelling and imaging in medicine, simulation in engineering, new forms in the arts and music, and new kinds of communication entirely. An innovation's beneficial effects are often in a field far from computing.

    5.2

    The Digital Divide

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.C: Describe issues that contribute to the digital divide. [Skill 5.C]

    • IOC-1.C.1 Internet access varies between socioeconomic, geographic, and demographic characteristics, as well as between countries.
    • IOC-1.C.2 The "digital divide" refers to differing access to computing devices and the Internet, based on socioeconomic, geographic, or demographic characteristics.
    • IOC-1.C.3 The digital divide can affect both groups and individuals.
    • IOC-1.C.4 The digital divide raises issues of equity, access, and influence, both globally and locally.
    • IOC-1.C.5 The digital divide is affected by the actions of individuals, organizations, and governments.
    עברית

    הבנה מתמשכת (IOC-1): בעוד שמחדשות מחשוב מותאמות בדרך כלל为了实现 מטרה ספציפית, הן עשויות לגרור consequences בלתי צפויות.

    מטרות לימוד IOC-1.C: לתאר נושאים התורמים לפער הדיגיטלי. [מיומנות 5.C]

    • IOC-1.C.1 גישה לאינטרנט משתנה בין מאפיינים סוציו-אקונומיים, גיאוגרפיים ודמוגרפיים, ainsi que בין מדינות.
    • IOC-1.C.2 "הפער הדיגיטלי" מתייחס לגישות משתנות למכשירי מחשוב ולאינטרנט, בהתבסס על מאפיינים סוציו-אקונומיים, גיאוגרפיים או דמוגרפיים.
    • IOC-1.C.3 הפער הדיגיטלי יכול להשפיע גם על קבוצות וגם על יחידים.
    • IOC-1.C.4 הפער הדיגיטלי מעלה נושאים של צדק, גישה והשפעה, גם בגלובל וגם מקומית.
    • IOC-1.C.5 הפער הדיגיטלי מושפע מפעולותיהם של יחידים, ארגונים וממשלות.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    The digital divide 数字鸿沟 is the unequal access to computing and the Internet across groups – by income, geography, age, or country. Those with access gain education, jobs, and services; those without fall further behind. The divide is shaped by economic, social, and geographic factors, and efforts to close it (affordable devices, public access, infrastructure) aim to make computing's benefits fairer.

    Public library computers: digital divide is about unequal access to devices, connectivity and skills
    Public library computers: digital divide is about unequal access to devices, connectivity and skills
    A rural satellite dish: geography still shapes who gets fast internet and who waits
    A rural satellite dish: geography still shapes who gets fast internet and who waits
    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    digital divide/ˈdɪdʒɪtl dɪˈvaɪd/ פער דיגיטלי
    5.3

    Computing Bias

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.D: Explain how bias exists in computing innovations. [Skill 5.E]

    • IOC-1.D.1 Computing innovations can reflect existing human biases because of biases written into the algorithms or biases in the data used by the innovation.
    • IOC-1.D.2 Programmers should take action to reduce bias in algorithms used for computing innovations as a way of combating existing human biases.
    • IOC-1.D.3 Biases can be embedded at all levels of software development.
    עברית

    הבנה מתמשכת (IOC-1): בעוד שמחדשות מחשוב מותאמות בדרך כלל为了实现 מטרה ספציפית, הן עשויות לגרור consequences בלתי צפויות.

    מטרות לימוד IOC-1.D: להסביר כיצד קיים ביאס בחדשונות מחשוב. [מיומנות 5.E]

    • IOC-1.D.1 חדשונות מחשוב יכולים לשקף ביאסים אנושיים קיימים בשל ביאסים שכתובים בתוך האלגוריתמים או ביאסים בנתונים שבהם החדשנות משתמשת.
    • IOC-1.D.2 מתכנתים צריכים לנקוט בפעולה לצמצום הביאס באלגוריתמים המשמשים לחדשונות מחשוב כדרך לקרב את הביאסים האנושיים הקיימים.
    • IOC-1.D.3 סטיות עשויות להיות מובנות בכל רמות פיתוח התוכנה.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    A self-driving car on a city street — autonomous systems raise safety and bias questions
    A self-driving car on a city street — autonomous systems raise safety and bias questions

    Bias 偏见 can be built into computing systems – often unintentionally. If the data used to build a system reflects existing prejudice, or if the designers' assumptions are one-sided, the system can produce unfair results (for example, a hiring tool that favors one group). Bias can enter at every stage – data collection, design, and use – so systems should be tested for fairness across different groups. Recognizing that "the computer said so" is not the same as "fair" is an important habit.

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Bias/ˈbaɪəs/ שיפוע
    5.4

    Crowdsourcing

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.E: Explain how people participate in problem-solving processes at scale. [Skill 1.C]

    • IOC-1.E.1 Widespread access to information and public data facilitates the identification of problems, development of solutions, and dissemination of results.
    • IOC-1.E.2 Science has been affected by using distributed and "citizen science" to solve scientific problems.
    • IOC-1.E.3 Citizen science is scientific research conducted in whole or part by distributed individuals, many of whom may not be scientists, who contribute relevant data to research using their own computing devices.
    • IOC-1.E.4 Crowdsourcing is the practice of obtaining input or information from a large number of people via the Internet.
    • IOC-1.E.5 Human capabilities can be enhanced by collaboration via computing.
    • IOC-1.E.6 Crowdsourcing offers new models for collaboration, such as connecting businesses or social causes with funding.
    עברית

    הבנה מתמשכת (IOC-1): בעוד שמחדשות מחשוב מותאמות בדרך כלל为了实现 מטרה ספציפית, הן עשויות לגרור consequences בלתי צפויות.

    מטרת הלמידה IOC-1.E: הסבר כיצד אנשים משתפים פעולה בתהליכי פתרון בעיות בקנה מידה גדול. [מיומנות 1.C]

    • IOC-1.E.1 גישה נרחבת למידע ולנתונים ציבוריים מקלה על זיהוי בעיות, פיתוח פתרונות והפצת תוצאות.
    • IOC-1.E.2 המדע הושפע מהשימוש ב"מדע אזרחי" ומודלים מפוזרים לפתרון בעיות מדעיות.
    • IOC-1.E.3 מדע אזרחי הוא מחקר מדעי הנערך כולו או חלקית על ידי individuals מפוזרים, הרבים מהם אינם מדענים, התורמים נתונים רלוונטיים למחקר באמצעות מכשירי המחשוב האישי שלהם.
    • IOC-1.E.4 Crowdsourcing היא שיטה לקבלת קלט או מידע ממספר רב של אנשים דרך האינטרנט.
    • IOC-1.E.5 יכולות אנושיות יכולות להשתפר באמצעות שיתוף פעולה דרך טכנולוגיות מחשוב.
    • IOC-1.E.6 Crowdsourcing מציע דגמים חדשים לשיתוף פעולה, כמו חיבור בין עסקים או מטרות חברתיות לבין מימון.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    Crowdsourcing 众包 obtains input, ideas, or funding from a large group of people, usually online. It harnesses the knowledge and effort of many – mapping projects, product reviews, citizen science, and crowdfunding all rely on it. The Internet makes crowdsourcing possible at a scale and speed never before achievable, letting a project draw on contributors worldwide.

    A Wikipedia edit-a-thon: crowdsourcing pools many people's work into a shared resource
    A Wikipedia edit-a-thon: crowdsourcing pools many people's work into a shared resource
    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Crowdsourcing/ˈkraʊdsɔːsɪŋ/ מיקור המוני
    5.5

    Legal and Ethical Concerns

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-1): While computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences.

    Learning Objective IOC-1.F: Explain how the use of computing can raise legal and ethical concerns. [Skill 5.E]

    • IOC-1.F.1 Material created on a computer is the intellectual property of the creator or an organization.
    • IOC-1.F.2 Ease of access and distribution of digitized information raises intellectual property concerns regarding ownership, value, and use.
    • IOC-1.F.3 Measures should be taken to safeguard intellectual property.
    • IOC-1.F.4 The use of material created by someone else without permission and presented as one's own is plagiarism and may have legal consequences.
    • IOC-1.F.5 Some examples of legal ways to use materials created by someone else include:
      • Creative Commons—a public copyright license that enables the free distribution of an otherwise copyrighted work. This is used when the content creator wants to give others the right to share, use, and build upon the work they have created.
      • open source—programs that are made freely available and may be redistributed and modified
      • open access—online research output free of any and all restrictions on access and free of many restrictions on use, such as copyright or license restrictions
    • IOC-1.F.6 The use of material created by someone other than you should always be cited.
    • IOC-1.F.7 Creative Commons, open source, and open access have enabled broad access to digital information.
    • IOC-1.F.8 As with any technology or medium, using computing to harm individuals or groups of people raises legal and ethical concerns.
    • IOC-1.F.9 Computing can play a role in social and political issues, which in turn often raises legal and ethical concerns.
    • IOC-1.F.10 The digital divide raises ethical concerns around computing.
    • IOC-1.F.11 Computing innovations can raise legal and ethical concerns. Some examples of these include:
      • the development of software that allows access to digital media downloads and streaming
      • the development of algorithms that include bias
      • the existence of computing devices that collect and analyze data by continuously monitoring activities
    עברית

    הבנה מתמשכת (IOC-1): בעוד שמחדשות מחשוב מותאמות בדרך כלל为了实现 מטרה ספציפית, הן עשויות לגרור consequences בלתי צפויות.

    מטרת הלמידה IOC-1.F: הסבר כיצד השימוש בטכנולוגיות מחשב יכול לגרום לדאגות משפטיות ואתיות. [מיומנות 5.E]

    • IOC-1.F.1 חומר שנוצר במחשב הוא רכוש אינטלקטואלי של היוצר או הארגון.
    • IOC-1.F.2 נוחות הגישה וההפצה של מידע דיגיטלי מעלה דאגות לגבי רכוש אינטלקטואל בנוגע לזכויות mlk, ערך ושימוש.
    • IOC-1.F.3 יש לנקוט בצעדים שמירה על רכוש אינטלקטואלי.
    • IOC-1.F.4 השימוש בחומר שנוצר על ידי מישהו אחר ללא רשות והצגתו כמשלך הישר הוא פלגיאט (Plagiarism) ועלול לגרור השלכות משפטיות.
    • IOC-1.F.5 לעילאן דוגמאות לשימוש חוקי בחומר שנוצר על ידי מישהו אחר:
      • Creative Commons—רישיון זכויות יוצרים ציבורי המאפשר הפצה חופשית של יצירה הכוללת זכויות יוצרים. נעשה שימוש בה כאשר היוצר רוצה לתת לאחרים את הזכות לחלוק, להשתמש ולבנות על היצירה.
      • open source—תוכניות המוצגות בחופשיות ועלולות להיות מופצות מחדש ומשולבות
      • open access—פלט מחקרי אונליין חופשי מכל מגבלות גישה וחופשי ממגבלות רבות בשימוש, כמו מגבלות זכויות יוצרים או רישיונות
    • IOC-1.F.6 השימוש בחומר שנוצר על ידי מישהו אחר אמור להיות תמיד מוסף.
    • IOC-1.F.7 Creative Commons, תוכנה פתוחה וגישה פתוחה אפשרו גישה רחבה למידע דיגיטלי.
    • IOC-1.F.8 ככל עם כל טכנולוגיה או מדיה, השימוש במחשבים לפגוע באנשים או בקבוצות אנשים מעלה דאגות משפטיות ואיתיות.
    • IOC-1.F.9 מחשבים יכולים לשחק תפקיד בנושאים חברתיים ופוליטיים, מה שמוביל לעיתים קרובות להעלאת דאגות משפטיות ואיתיות.
    • IOC-1.F.10 הפער הדיגיטלי מעלה דאגות איתיות הקשורות למחשבים.
    • IOC-1.F.11 חדשנות בטכנולוגיות מחשוב עלולה להעלה שאלות משפטיות ואתיות. לדוגמה לכך:
      • פיתוח תוכנה המאפשרת גישה להורדות ומדיה זורמת דיגיטלית
      • פיתוח אלגוריתמים המכילים הטיה
      • קיום התקני מחשוב האוספים ומנתחים נתונים על ידי ניטור מתמיד של פעילות

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    A CCTV control room: surveillance systems trade safety gains against privacy concerns
    A CCTV control room: surveillance systems trade safety gains against privacy concerns

    Computing raises questions of law and ethics:

    • Intellectual property 知识产权 and copyright 版权 protect creators' work; using it may require permission or a license. Open-source 开源 and Creative Commons licenses let creators share work under stated terms.
    • Plagiarism 抄袭 – using others' work as your own – is unethical and often illegal.
    • Collecting and using personal data raises privacy questions about consent and misuse.

    The three "open" terms, which are not the same thing

    Term What it means
    open source programs that are made freely available and may be redistributed and modified by anyone. The licence grants those rights explicitly — free of charge is not the same as open source, and a free program you may not modify is not open source.
    open access 开放获取 research and other content made available online without charge, so a reader does not need a subscription. It says nothing about the right to modify.
    Creative Commons 知识共享 a family of licences a creator applies to their own work to grant specific permissions in advance — for example "you may reuse this if you credit me" or "you may reuse this but not commercially".

    All three are ways of granting rights the creator holds by default under copyright. That is why they matter for the exam: copyright is automatic, so anything not explicitly licensed is restricted, and using it needs permission.

    Just because something is technically possible does not make it legal or ethical.

    What is recorded while you browse

    Two collection routes the CED names, and neither needs you to type anything:

    • Websites can record and maintain a history of the individuals who have viewed their pages — which pages, when, how long, and from which device.
    • Search engines can use your search history to suggest websites, and to sell targeted marketing: the advertisement follows the search, which is why a product looked up once then appears for weeks.

    Neither is inherently malicious, and both are the mechanism behind services people find useful. The point the exam wants is that data collected for one purpose can be combined and used for another, often without the person realising they agreed to it.

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Intellectual property/ˌɪntəˈlektʃuːəl ˈprɒpəti/ בעלות על רוחניות
    copyright/ˈkɒpɪraɪt/ זכויות יוצרים
    Open-source/ˈəʊpən sɔːs/ קוד פתוח
    Plagiarism/ˈpleɪdʒərɪzəm/ גניבת רעיונות
    open access/ˈəʊpən ˈækses/ גישה פתוחה
    Creative Commons/kriːˈeɪtɪv ˈkɒmənz/ Creative Commons
    open source/ˈəʊpən sɔːs/ קוד פתוח
    5.6

    Safe Computing

    Syllabus · ⁨סיילבוס⁩
    English

    Enduring Understanding (IOC-2): The use of computing innovations may involve risks to personal safety and identity.

    Learning Objective IOC-2.A: Describe the risks to privacy from collecting and storing personal data on a computer system. [Skill 5.D]

    • IOC-2.A.1 Personally identifiable information (PII) is information about an individual that identifies, links, relates, or describes them. Examples of PII include:
      • Social Security number
      • age
      • race
      • phone number(s)
      • medical information
      • financial information
      • biometric data
    • IOC-2.A.2 Search engines can record and maintain a history of searches made by users.
    • IOC-2.A.3 Websites can record and maintain a history of individuals who have viewed their pages.
    • IOC-2.A.4 Devices, websites, and networks can collect information about a user's location.
    • IOC-2.A.5 Technology enables the collection, use, and exploitation of information about, by, and for individuals, groups, and institutions.
    • IOC-2.A.6 Search engines can use search history to suggest websites or for targeted marketing.
    • IOC-2.A.7 Disparate personal data, such as geolocation, cookies, and browsing history, can be aggregated to create knowledge about an individual.
    • IOC-2.A.8 PII and other information placed online can be used to enhance a user's online experiences.
    • IOC-2.A.9 PII stored online can be used to simplify making online purchases.
    • IOC-2.A.10 Commercial and governmental curation of information may be exploited if privacy and other protections are ignored.
    • IOC-2.A.11 Information placed online can be used in ways that were not intended and that may have a harmful impact. For example, an email message may be forwarded, tweets can be retweeted, and social media posts can be viewed by potential employers.
    • IOC-2.A.12 PII can be used to stalk or steal the identity of a person or to aid in the planning of other criminal acts.
    • IOC-2.A.13 Once information is placed online, it is difficult to delete.
    • IOC-2.A.14 Programs can collect your location and record where you have been, how you got there, and how long you were at a given location.
    • IOC-2.A.15 Information posted to social media services can be used by others. Combining information posted on social media and other sources can be used to deduce private information about you.

    Learning Objective IOC-2.B: Explain how computing resources can be protected and can be misused. [Skill 5.E]

    • IOC-2.B.1 Authentication measures protect devices and information from unauthorized access. Examples of authentication measures include strong passwords and multifactor authentication.
    • IOC-2.B.2 A strong password is something that is easy for a user to remember but would be difficult for someone else to guess based on knowledge of that user.
    • IOC-2.B.3 Multifactor authentication is a method of computer access control in which a user is only granted access after successfully presenting several separate pieces of evidence to an authentication mechanism, typically in at least two of the following categories: knowledge (something they know), possession (something they have), and inherence (something they are).
    • IOC-2.B.4 Multifactor authentication requires at least two steps to unlock protected information; each step adds a new layer of security that must be broken to gain unauthorized access.
    • IOC-2.B.5 Encryption is the process of encoding data to prevent unauthorized access. Decryption is the process of decoding the data. Two common encryption approaches are:
      • Symmetric key encryption involves one key for both encryption and decryption.
      • Public key encryption pairs a public key for encryption and a private key for decryption. The sender does not need the receiver's private key to encrypt a message, but the receiver's private key is required to decrypt the message.
      • Exclusion statement (EK IOC-2.B.5): Specific mathematical procedures for encryption and decryption are beyond the scope of this course and the AP Exam.
    • IOC-2.B.6 Certificate authorities issue digital certificates that validate the ownership of encryption keys used in secure communications and are based on a trust model.
    • IOC-2.B.7 Computer virus and malware scanning software can help protect a computing system against infection.
    • IOC-2.B.8 A computer virus is a malicious program that can copy itself and gain access to a computer in an unauthorized way. Computer viruses often attach themselves to legitimate programs and start running independently on a computer.
    • IOC-2.B.9 Malware is software intended to damage a computing system or to take partial control over its operation.
    • IOC-2.B.10 All real-world systems have errors or design flaws that can be exploited to compromise them. Regular software updates help fix errors that could compromise a computing system.
    • IOC-2.B.11 Users can control the permissions programs have for collecting user information. Users should review the permission settings of programs to protect their privacy.

    Learning Objective IOC-2.C: Explain how unauthorized access to computing resources is gained. [Skill 5.E]

    • IOC-2.C.1 Phishing is a technique that attempts to trick a user into providing personal information. That personal information can then be used to access sensitive online resources, such as bank accounts and emails.
    • IOC-2.C.2 Keylogging is the use of a program to record every keystroke made by a computer user in order to gain fraudulent access to passwords and other confidential information.
    • IOC-2.C.3 Data sent over public networks can be intercepted, analyzed, and modified. One way that this can happen is through a rogue access point.
    • IOC-2.C.4 A rogue access point is a wireless access point that gives unauthorized access to secure networks.
    • IOC-2.C.5 A malicious link can be disguised on a web page or in an email message.
    • IOC-2.C.6 Unsolicited emails, attachments, links, and forms in emails can be used to compromise the security of a computing system. These can come from unknown senders or from known senders whose security has been compromised.
    • IOC-2.C.7 Untrustworthy (often free) downloads from freeware or shareware sites can contain malware.
    עברית

    הבנה עומדת (IOC-2): שימוש בחדשות מחשוביות עשוי לכלול סיכונים לבטיחות אישית ולזהות.

    מטרות לימוד IOC-2.A: תאר את הסיכונים לפרטיות הנובעים מאיסוף ואחסון נתונים אישיים במערכת מחשב. [מיומנות 5.D]

    • IOC-2.A.1 מידע זיהוי אישי (PII) הוא מידע על אדם המזהה, מקשר, מקשר או מתאר אותו. לדוגמה ל-PII נכללים:
      • מספר ביטוח לאומי
      • גיל
      • גזע
      • מספר(י) טלפון
      • מידע רפואי
      • מידע פיננסי
      • נתונים ביומטריים
    • IOC-2.A.2 מנועי חיפוש יכולים לתעד ולשמור היסטוריית חיפושים שנעשו על ידי משתמשים.
    • IOC-2.A.3 אתרים יכולים לרשום ולשמור היסטוריה של אנשים שצפו בדפי האתר.
    • IOC-2.A.4 מכשירים, אתרים ורשתות יכולים לאסוף מידע על מיקום המשתמש.
    • IOC-2.A.5 טכנולוגיה מאפשרת איסוף, שימוש והניצול של מידע אודות אנשים, קבוצות ומוסדות, על ידי מי ומעבורם.
    • IOC-2.A.6 מנועי חיפוש יכולים להשתמש בהיסטוריית החיפוש כדי להציג אתרים או לשיווק ממוקד.
    • IOC-2.A.7 נתונים אישיים מפורזים, כגון מיקום גיאוגרפי, עוגיות (cookies) והיסטוריית גלישה, יכולים להיות מצומדים ליצירת ידע אודות אדם.
    • IOC-2.A.8 PII ומידע אחר שהונח באינטרנט יכולים לשמש לשיפור חוויות האינטרנט של משתמש.
    • IOC-2.A.9 PII שנשמר באינטרנט יכול לשמש לפישוט ביצוע רכישות מקוונות.
    • IOC-2.A.10 ניהול מידע מסחרי וממשלתי עשוי להתניצל אם פרטיות והגנות אחרות מתעלמים מהן.
    • IOC-2.A.11 מידע שהונח באינטרנט יכול לשמש בדרכים שלא התכוונו אליהן ועלולות לגרום להשפעה מזיקה. לדוגמה, הודעת דוא"ל עשויה להעברת מחדש, תווים (tweets) יכולים להועבר מחדש, ופוסטים ברשתות חברתיות עשויים להיראות על ידי מעסיקים פוטנציאליים.
    • IOC-2.A.12 PII יכול לשמש למעקב אחרי אדם, גניבת זהותו או לעזרה בתכנון פעילות פלילית אחרת.
    • IOC-2.A.13 ברגע שמידע הונח באינטרנט, קשה מאוד למחוק אותו.
    • IOC-2.A.14 תוכניות יכולות לאסוף את המיקום שלך ולרשום היכן היית, איך הגעת לשם וכמה זמן היית במיקום מסוים.
    • IOC-2.A.15 מידע שפורסם בשירותי מדיה חברתית יכול לשמש על ידי אחרים. שילוב מידע שפורסם במדיה חברתית עם מקורות אחרים יכול לשמש לחישוב מידע פרטי עליך.

    מטרות הלמידה IOC-2.B: הסבר כיצד משאבי מחשוב יכולים להיות מוגנים ועלולים להיפרע. [מיומנות 5.E]

    • IOC-2.B.1 צעדי אימות מגנים על מכשירים ומידע מנגישות לא מורשית. דוגמאות לצעדי אימות כוללות סיסמאות חזקות ואימות רב-גורמי.
    • IOC-2.B.2 סיסמה חזקה היא דבר שקל למשתמש לזכור אך יהיה קשה לאדם אחר לנחש על בסיס ידע על המשתמש.
    • IOC-2.B.3 אימות רב-גורמי הוא שיטה בקרת גישה למחשב שבה למשתמש מותרת גישה רק לאחר הצגה מוצלחת של כמה חלקי עדות נפרדים למנגנון אימות, בדרך כלל לפחות בשני הקטגוריות הבאות: ידע (דבר שהוא יודע), רכוש (דבר שהוא יש לו) ותכונה (דבר שהוא).
    • IOC-2.B.4 אימות רב-גורמי דורש לפחות שני שלבים לפתיחת מידע מוגן; כל שלב מוסיף שכבת אבטחה חדשה שעליה לשבור כדי לקבל גישה לא מורשית.
    • IOC-2.B.5 הצפנה היא תהליך קידוד נתונים למניעת גישה לא מורשית. פענוח הוא תהליך פיענוח הנתונים. שתי גישות הצפנה נפוצות הן:
      • הצפנת מפתח סימטרית כוללת מפתח אחד גם להצפנה וגם לפענוח.
      • הצפנה בפתח ציבורי משתמשת בזוג של מקודד (Public Key) להצפנה ומקודד פרטי (Private Key) לפיענוח. השולח אינו זקוק למקודד הפרטי של המקבל כדי להצפין הודעה, אך המקודד הפרטי של המקבל נדרש לפיענוחה.
      • הצהרת פסילה (EK IOC-2.B.5): הליכים מתמטיים ספציפיים להצפנה ולפיענוח אינם בתחום העניין של קורס זה ובבחינת AP.
    • IOC-2.B.6 רשויות הצהרה מנפיקות תעודות דיגיטליות המאמתות את זכות הבעלות על מפתחות ההצפנה המשמשים בתקשורת מאובטחת והן מבוססות על דגם אמון.
    • IOC-2.B.7 תוכנות סריקה נגד וירוסים ותוכנות רע במחשב יכולות לסייע בהגנת מערכת מחשוב מפני זיהום.
    • IOC-2.B.8 וירוס מחשב הוא תוכנה רעה שיכולה לעתק את עצמה ולקבל גישה למחשב באופן בלתי מורשה. וירוסים לעיתים קרובות נדבקים לתוכניות חוקיות ומתחילים לפעול באופן עצמאי במחשב.
    • IOC-2.B.9 תוכנת רע היא תוכנה המיועדת לפגוע במערכת מחשב או לקחת שליטה חלקית על פעילותה.
    • IOC-2.B.10 לכל המערכות בעולם האמיתי ישנם תקלות או פגמי עיצוב שניתן לנצל כדי לפגוע בהן. עדכוני תוכנה שגרתיים עוזרים לתקן תקלות שעלולות לפגוע במערכת מחשב.
    • IOC-2.B.11 משתמשים יכולים לשלוט ברשותות שהתוכניות מקבלות לאיסוף נתוני משתמש. משתמשים צריכים לבדוק את הגדרות הרשותות של התוכניות כדי להגן על הפרטיות שלהם.

    מטרת הלמידה IOC-2.C: הסבר כיצד מתקבלת גישה בלתי מורשה למשאבי מחשב. [מיומנות 5.E]

    • IOC-2.C.1 פישिंग היא טכניקה שמנסה להטעות משתמש לספק מידע אישי. מידע זה יוכל לשמש לאחר מכן לגישה למשאבים אונליין רגישים, כגון חשבונות בנק ודוא"ל.
    • IOC-2.C.2 קלידוגרף היא השימוש בתוכנה כדי לרשום כל לחיצה על מקשי המקלדת שנעשו על ידי משתמש מחשב במטרה לקבל גישה מופקעת לכ Passwords ומידע סודי אחר.
    • IOC-2.C.3 נתונים הנשלחים דרך רשתות ציבוריות עשויים להיות מופקדים, מנותחים ומועברים. אחת הדרכים שבהן הדבר יכול לקרות היא דרך נקודת גישה בלתי מורשית.
    • IOC-2.C.4 נקודת גישה בלתי מורשית היא נקודת גישה אלחוטית המספקת גישה בלתי מורשה לרשתות מאובטחות.
    • IOC-2.C.5 קישור רע יכול להיות מסווה בדף אתר או בהודעת דוא"ל.
    • IOC-2.C.6 דוא"ל לא ביקשתי, קבצים מצורפים, קישורים וטפסים בדוא"ל יכולים לשמש לפגיעה באבטחת מערכת מחשב. הם עשויים להתקבל משולחים לא ידועים או משולחים ידועים whose security has been compromised.
    • IOC-2.C.7 הורדות שאינן אמינות (לרוב חינם) מאתרי תוכנות חינמיות או שרו-וואר עשויות להכיל תוכנת רע.

    Source: College Board AP Course and Exam Description · ⁨מקור: תיאור הקורס והמבחן של College Board AP⁩

    Protecting personal data is a shared responsibility. Key ideas:

    Encryption scrambles plaintext with a key; only the key can decrypt it
    Encryption scrambles plaintext with a key; only the key can decrypt it
    • Personally identifiable information (PII) 个人身份信息 (name, address, ID numbers) should be shared carefully, because it can be misused for identity theft 身份盗窃.
    • Threats include phishing 网络钓鱼 (tricking you into revealing information), malware 恶意软件, and weak passwords.
    • A malicious link can be disguised on a web page or in an email message: the text you see and the address it actually goes to are separate, so a link reading www.yourbank.com can point anywhere. Hover to see the real destination before clicking, and be most suspicious of a link that arrives unexpectedly and creates urgency.
    • Defenses include strong, unique passwords, multi-factor authentication 多因素认证, encryption 加密 (scrambling data so only authorized people can read it), and keeping software updated.

    Encryption is the central tool for keeping data private in transit and storage. Being a responsible computer user means protecting your own and others' information.

    Exam skill: be able to identify the beneficial and harmful effects of a given innovation, explain a privacy or security risk, and name a safe-computing practice that addresses it.

    Worked example. A hiring algorithm is trained on a company's past hires, who were mostly one group, and it then rejects qualified applicants from other groups. Name the problem and its cause: this is computing bias, caused by biased training data — the model learned the historical pattern instead of a fair rule. A full-mark exam answer states the harm (qualified people are unfairly rejected) and its cause (the bias came from the data, not the code).

    Explore · ⁨חקור⁩

    Scramble a message with encryption · ⁨לערובל מסר באמצעות הצפנה⁩

    Encryption protects data by scrambling it with a key; only someone with the key can read it back. This simple Caesar cipher shifts each letter — real encryption uses the same idea with far stronger keys to keep passwords and messages safe. · ⁨הצפנה מגנה על נתונים על ידי עיורובם באמצעות מפתח; רק מי שיש לו את המפתח יכול לקרוא אותם חזרה. תחבורת קסאר פשוטה זו מזיזה כל אות — הצפנה אמיתית משתמשת באותה רעיון אך עם מפתחות הרבה חזקים יותר כדי לשמור על סודיות הסיסמאות והמסרים.⁩

    Vocabulary · ⁨מילון מונחים⁩ Train · ⁨אימון⁩
    English עברית
    Personally identifiable information (PII)/ˈpɜːsənəli aɪˈdentɪfaɪəbl ˌɪnfəˈmeɪʃn/ מידע זיהוי אישי (PII)
    identity theft/aɪˈdentɪti θeft/ גניבת זהות
    phishing/ˈfɪʃɪŋ/ דייפישינג
    malware/ˈmælweə/ תוכנה רעה
    multi-factor authentication/ˈmʌlti ˈfæktə ɔːˌθentɪˈkeɪʃn/ אישור רב-שלבתי
    encryption/enˈkrɪpʃn/ הצפנה
    5.6

    Exam tips

    • Argue both the beneficial and harmful effects of a computing innovation — a balanced answer scores best.
    • Use correct terms for data concerns: PII, privacy, security, and algorithmic bias.
    • Explain how crowdsourcing and large data sets create value and raise new risks.
    • Distinguish the digital divide (access) from bias (fairness) and give a concrete example of each.
    • Tie every claim to a specific innovation and effect, as the written response demands.

Log in or create account · ⁨היכנס או צור חשבון⁩

IGCSE, A-Level & AP