MCQ Reflection

Total Score: 59/67

  • Time spent: 02:48:34
  • Previous Score: 53/66

2018 Practice Exam MCQ Analysis

2020 Practice Exam MCQ Analysis

Missed Topics:

  • 1.4
  • 3.1
  • 3.12
  • 5.5
  • 5.6
  • 3.8
  • 3.9

Improved Topics:

  • 2.3
  • 3.1
  • 3.17

Reoccurring Topics:

  • 1.4
  • 3.1
  • 3.12
  • 5.5
  • 5.6

New Topics:

  • 3.8
  • 3.9

Missed Questions:

Topic 1.4 (Skill 4.C: Identify and Correct Errors)

  • Score: 5/7
  • Q64, Q66
  • Takeaways:
    Evaluate all options. I have a general idea of the answers because I got at least one question correct, but I need to be more careful when evaluating the second option and should read all choices rather than finding an option and moving on. Review questions 16, 39, 54, 58, 67, because I got those right, and rewatch 1.4 Daily AP Videos 1-3.

Topic 2.1 Binary Numbers (Skill 2.B: Develop and Implement Algorithms)

  • Score: 4/5
  • Q11
  • Takeaways:
    No need to convert everything to binary; you can just evaluate the triplet using process of elimination.

Topic 3.8 Iteration (Skill 2.B: Develop and Implement Algorithms)

  • Score: 6/7
  • Q18
  • Takeaways:
    Make sure you’ve clicked the right option.

Topic 3.9 Developing Algorithms (Skill 1.D: Evaluate Solution Options)

  • Q15
  • Takeaways:
    Program A initializes i to 1. Inside the loop, it prints i and then increments i. The loop terminates when i is greater than 10, which occurs after 10 is printed. Program A prints 1 2 3 4 5 6 7 8 9 10. Program B initializes i to 0. Inside the loop, it increments i and then prints i. The loop terminates when i equals 10, which occurs after 10 is printed. Program B prints 1 2 3 4 5 6 7 8 9 10.

Topic 3.12 Calling Procedures (Skill 3.B: Develop Programs that Incorporate Abstractions)

  • Q60
  • Takeaways:
    This code segment creates newList1, containing the unique elements from list1, and newList2, containing the unique elements from list2. These two lists are combined to form bothList. Any elements that appear in both lists are removed from bothList to form uniqueList. The correct count is the difference between the lengths of bothList and uniqueList. For example, assume that list1 contains [10, 10, 20, 30, 40, 50, 60] and list2 contains [20, 20, 40, 60, 80]. The first line of code creates newList1, which contains [10, 20, 30, 40, 50, 60]. The second line of code creates newList2, which contains [20, 40, 60, 80]. The third line of code creates bothList, which contains [10, 20, 30, 40, 50, 60, 20, 40, 60, 80]. The fourth line of code creates uniqueList, which contains [10, 20, 30, 40, 50, 60, 80]. Since bothList contains 10 elements and uniqueList contains 7 elements, the correct result 3 is assigned to count.

  • Q51
  • Takeaways:
    Creative Commons licensing allows copyright owners to specify the ways in which their works can be used or distributed. This allows individuals to access or modify these works without the risk of violating copyright laws.

Topic 5.6 Safe Computing (Skill 5.D: Describe the Impact of Gathering Data)

  • Q48
  • Takeaways:
    Phishing is a technique that is used to trick a user into providing personal information. In this case, the user is tricked into providing a username and password to an unauthorized individual posing as a technical support specialist.

Plan:

Revise AP Daily Videos and Read Fiveable Study Guides on:

  • 1.4
  • 3.1
  • 3.12
  • 5.5
  • 5.6
  • 3.8
  • 3.9

PPR Requirement: Procedure Code Segments

First Segment

The first segment must be my student-developed procedure that:

  • Defines the procedure’s name and return type (if necessary)
  • Contains and uses one or more parameters that have an effect on the functionality of the procedure
  • Implements an algorithm that includes sequencing, selection, and iteration

Code Snippet:

def addSkill(skill_name, skill_level, user_id):

    new_skill = Skill(skill_name=skill_name, skill_level=skill_level, user_id=user_id)
    try:
        db.session.add(new_skill)
        db.session.commit()
        return new_skill.read()
    except Exception as e:
        db.session.rollback()
        raise e

Explanation:

  • Procedure Name and Parameters: The procedure addSkill is defined with three parameters: skill_name, skill_level, and user_id. These parameters affect the functionality of the procedure by specifying the details of the skill to be added.
  • Sequencing: The procedure follows a sequence of steps: creating a new skill instance, adding it to the database session, and committing the changes.
  • Selection: The procedure includes a try-except block to handle any exceptions that may occur during the database operations.
  • Iteration: Although not explicitly shown in this snippet, iteration could be part of the process when handling multiple skills.

Second Segment

The second segment must show where my student-developed procedure is being called in your program.

Code Snippet:

@app.route('/api/skill', methods=['POST'])
def create_skill():
    data = request.get_json()
    skill_name = data.get('skill_name')
    skill_level = data.get('skill_level')
    user_id = data.get('user_id')
    return jsonify(addSkill(skill_name, skill_level, user_id))

Explanation:

  • Calling the Procedure: This segment shows the addSkill procedure being called within the create_skill function. When a POST request is made to the /api/skill endpoint, the create_skill function extracts the skill details from the request data and calls the addSkill procedure with the extracted parameters.

PPR Requirement: List Code Segments

First Segment

The first segment must show how data have been stored in the list.

Code Snippet:

skills = [
    Skill(skill_name='Tactics', skill_level='High', user_id=1),
    Skill(skill_name='Blitz', skill_level='Low', user_id=2),
]
for skill in skills:
    try:
        db.session.add(skill)
        db.session.commit()
    except IntegrityError:
        db.session.rollback()

Explanation:

  • Storing Data in List: This segment demonstrates how skill data is stored in a list. Two instances of the Skill class are created with specific skill names, levels, and user IDs, and these instances are stored in the skills list.
  • Adding to Database: The code iterates over the list and adds each skill to the database session, then commits the changes. If an integrity error occurs (e.g., duplicate entry), the changes are rolled back.

Second Segment

The second segment must show the data in the same list being used, such as creating new data from the existing data or accessing multiple elements in the list, as part of fulfilling the program’s purpose.

Code Snippet:

@app.route('/api/skills', methods=['GET'])
def get_skills():
    user_id = request.args.get('user_id')
    skills = Skill.query.filter_by(user_id=user_id).all()
    return jsonify([skill.read() for skill in skills])

Explanation:

  • Using Data from List: This segment shows how the data in the list is accessed and used. The get_skills function queries the database for skills associated with a specific user_id and returns the queried skills as a JSON response, with each skill’s data formatted using the read method of the Skill class.

Question 4: Feedback, Testing, Reflection

Explanation:

During the development of my Skills Rating Project, I utilized feedback from peers and mentors to refine the user interface and improve the functionality of the skill management feature. Testing was conducted to ensure that the CRUD operations worked seamlessly and that data integrity was maintained. Reflection on the project helped me identify areas for improvement and implement changes that enhanced the overall user experience.

Review Preperation

Review with Rayhaan

Review Grade

  • 5 points - 5 things you did over 12 weeks, Issues, burndown, presentation: 4/5 –> 0.9 + 0.9 + 0.9 + 0.9 + 0.9

  • 2 points - Full Stack Project Demo, including CPT requirement highlights, and N@tM feedback: 1.8/2 –> 0.9 On Demo, and 0.9 on CPT requirements, I could be more specific

  • 1 point - Project Feature blog write up, using CPT/FRQ language: 0.9/1 –> Should bold the language, and use explicit examples

  • 1 point - MCQ
  • 0.93 9/10

0.92/1

  • The 10th point comes from ability to impress me in reflection and looking forward (Retrospective).
  • 0.9 on retrospective
  • Taking extreme interests in other projects and people, ie N@tM reviews, chronicle event/interests, personalization
  • 0.9
  • Reaching out and helping someone new to you get Final Exam materials organized. Performing practice/preliminary live review with this new person or Ms Pataki. Met up with Rayhaan Sheeraj P5
  • Thinking what you will do next in CompSci, interests, classes, college, internships, career. -0.9, could be more explicit with the plan
  • Reflection on individual strengths, weaknesses -0.9 could be more detailed
  • Reflection on project by creating next steps plans, strengths, weaknesses, did not mention, but I would say that we want to fix the chatbot
  • Sending summary of what you will be talking about 24 hours in advance of Live review in DM
  • Yes
  • Include in summary honest self grade assessment on point related topics, including reasoning. -Yes
  • Being able to highlight all 10 points in 3 minutes of Live Review. -Yes, practice was 2:45

Average 0.91