Skip to the content.

Final Review

Burndown List

My Contributions

  1. Created the Figma board in our initial planning phase.
    Image

  2. Researched popular tourist places in South America to showcase to users.

  3. Improved frontend index page to direct users toward our features.

  4. Designed continent layouts of frontend using colorful text, fonts, and transitions.
    Home page

  5. Created API endpoints for different countries to connect the user input to the database.

# Example
argentina_api = Blueprint('argentina_api', __name__, url_prefix='/api')

# API docs https://flask-restful.readthedocs.io/en/latest/api.html
api = Api(argentina_api)

class ArgentinaAPI:
    @staticmethod
    def get_restaurant(name):
        restaurant = {
            "The Argentinian Experience": {
                "name": "The Argentinian Experience",
                "location": "Argentina",
            },
            "Mercado": {
                "name": "Mercado de Liniers Restaurante",
                "location": "Argentina",
            },
            
        }
        return restaurant.get(name)

    class _theArgentinianExperience(Resource):
        def get(self):
            # Use the helper method to get John's details
            theargentinianexperience_details = ArgentinaAPI.get_restaurant("The Argentinian Experience")
            return jsonify(theargentinianexperience_details)

    class _Mercado(Resource):
        def get(self):
            # Use the helper method to get Jeff's details
            Mercado_details = ArgentinaAPI.get_restaurant("Mercado")
            return jsonify(Mercado_details)

    class _Bulk(Resource):
        def get(self):
            # Use the helper method to get both John's and Jeff's details
            theargentinianexperience_details = ArgentinaAPI.get_restaurant("The Argentinian Experience")
            Mercado_details = ArgentinaAPI.get_restaurant("Mercado")
            return jsonify({"restaurant": [theargentinianexperience_details, Mercado_details]})

    # Building REST API endpoints
    api.add_resource(_theArgentinianExperience, '/restaurant/theargentinianexperience')
    api.add_resource(_Mercado, '/restaurant/mercado')
    api.add_resource(_Bulk, '/restaurant')

# Instantiate the StudentAPI to register the endpoints
argentina_api_instance = ArgentinaAPI()

PPR

What is PPR?
PPR, or Personal Project Reference, is a portion on the AP Exam where students submit a personal code segment that meets CPT requirements, alongside their CPT video and program code file. The submission of the code segment in the PPR should be fully made by the student without collaboration (though it can be devloped with partners).

PPR Requirements In this class, students have the choice to submit their class project or an individual code segment. Either way, two types of code segments are required, and the requirements include:

  1. Procedure
    • Uses 1+ parameters that affect the functionality of the procedure
    • Sequencing, selection, and iteration

      This is a code segment I have that demonstrates this:
      Image
      Sequencing: The API request, JSON response, debugging measure, and the final result are all part of a sequence to allow the user to filter the ingredients.
      Selection: After the JSON data is received, the algorithm selects ingredients by the user’s filters.
      Iteration: For the excluding feature to work, the algorithm iterates the data until there are no ingredients that match the excluded ingredients.

  2. List
    • How data is stored in the list
    • How the same data stored is being used for the program’s purpose.

      This is a code segment that demonstrates this:
      Image
      A list (array) is used in this segment to create HTML elements for the images. The ingredient data is assigned its own image and then added to the general list of the other ingredients that the user requests.

These segments must be submitted as images. After this submission, students must also be able to explain their code segment’s function and purpose in the Written Response of the AP Exam (which will be in-person due to AI influences).
To prepare for the digital portfolio submission, our team has been developing our site to meet these CPT requirements.

General Project Overview

CPT Requirements

  • Big Idea 1.4 Debugging Code and Fixing Errors (Frontend Debugging): Initially, I was confused how to fix the headers for the sites. I used the Inspect tool when attempting to figure out the style of the frontend that was off, such as the flooded headers. They made the website look tacky, and I was able to inspect and see that I just needed to change the site header qualities.
    Image

  • Big Idea 2 Data (Data Backup and Recovery): To ensure that our user data was safe, we implemented the db_init.py to initialize the database, db_restore.py to save and restore the data, and db_backup.py to bring back our data from deletion. This would make sure that data would not be lost if the database was deleted.

  • Big Idea 4 Internet (Domain Name System (DNS)): For our wesbite, we received a DNS called starting with restaurant, related to our purpose. In this way, users would now have access to our website’s features through searching our website. We also secured it during class with HTTPS, not just HTTP. However, later, the website wouldn’t display when we searched for it online, and we realized that part of the issue was that in our backend, the pythonURI read http:// instead of https://. After discovering this, the website was able to initialize again.


N@tM Experience/Feedback
I showcased our website to many people and showed off our features, such as the posting and recipe finder feature. They all commented on how smooth the presentation looked and the interesting elements of the colors and design. I was also looking around the room and providing reviews for other teams, who all had very interesting projects; one had a game where you would control a character throughout a series of parkour games, and other was an application program designed to alleviate teacher workload by organizing school assignments (similar to Synergy).
Image
Image

Project Feature

I worked on the South America maps by researching the top places that were popular in South America and putting maps from Google Maps. I first got the HTML link from the Google Maps location I wanted to pinpoint, and then put them into dividers using rows so that they would look organized. However, through this process, sometimes the format would suddenly jumble up and I would need to frontend debug with the Inspect function to find what I did wrong or if I incorrectly edited the style. Users can access each map by clicking on the map, inputing their request to navigate to a different page, where they’ll result in a different page. The <iframe> tag allows for this. Explore page

MCQ

Overall, since the last MCQ, I improved my score from 38/66 (~58%) to 45/67 (~67%). I was able to go through the questions more thoroughly, which was an issue I had with the last MCQ. Previously, I had rushed through the answers instead of trying to go through each question carefully, which caused me not only to have a bad score but also little learning experience. Now, I spent, on average, 5-10 minutes on each question, and I was able to improve my score.

Corrections
Q2 - Citizen science with wildlife research: I chose the answer that did not reflect citizen science and focused more on individual science. Though I thought it was the most efficient answer, it did not incorporate group science elements.

Q10 - Science museum tickets: The procedure I chose did not consider the condition of people older than 12 AND going on a guided tour, therefore it wasn’t functional.

Q14 - Print digits algorithm: The step that I included failed to consider the infite loop that would result since it will display the integer quotient 0 and store the remainder 2 infinitely.

Q15 - Compare output of program a and b: While I thought that out of the programs displayed, program B displayed one more value than program A, this is not the case. Both programs print ten values.

Q17 - Data represented by bit sequences: At the lowest level, all data is represented with sequences of bits.

Q20 - Average amount of data per user: Each value on the right line graph is roughly 10x the value on the left graph, not 100x.

Q22 - Simulate spinner: I incorrectly calculated the probabilities of each chance, therefore the procedure I picked is not correct.

Q27 - Existence of unsolvable problems: I incorrectly assumed that all problems that computers can solve require internet, but they don’t.

Q28 - Swap alpha and beta: The code segment I chose would store both values of beta and alpha to an initial value of alpha, which would not allow for the variable temp to be interchanged.

Q34 - BotMover: I misunderstood what the code segment meant and assigned the wrong instructions.

Q37 - DrawLine on a coordinate grid: The lines would be drawn incorrectly.

Q39 - Error in calculating sum: The step I chose to change would cause the loop to terminate when i is 10, which would not fix the problem.

Q40 - Role of certificate authorities: The meaning of issuing certificate authorities is not password certificates, but digital certificates.

Q47 - Requirements for binary search: A binary serach will work on any sorted list even if it was duplicate values.

Q48 - Phishing scenario: The interception and deceitful analyzing can take place without the user providing personal information, therefore does not require phishing.

Q49 - Unique bit sequences for staff: Only 7 bits is the number that can allow for a unique bit sequence.

Q50 - Reasonable time algorithms: All algorithms have reasonable time since the maximum amount of elements that are gathered are n^2 elements.

Q54 - Copy even values from originalList to newList: The change I chose would add only odd elements instead of even elements.

Q58 - Error in AnyPairs procedure: This procedure returns the intended value, which is not what the question asks for.

Q59 - Advantages of open source software: Open-source software can be continually updated even without the original developers when it becomes public.

Q66 - Error in counting perfect numbers: Without removing Line 11, the program will not work as intended.

Q67 - Error in numOccurrences procedure: The procedure I chose does return the intended value, which is not what the question asks for.

CPT Big Ideas

  • Big Idea 1 Creative Development: There were minimal questions that covered this Idea, but I performed slightly below average. This may be because I was focused more on the technical issues of the MCQ that the debugging parts were my weaknesses.

  • Big Idea 2 Data: Like Idea 1, there were also minimal questions that covered this idea, but in this area I performed slightly above average than in Idea 1.

  • Big Idea 3 Algorithms and Programming: Since most of the questions were focused around this Idea, I observed more mistakes than in the other topics. There were several topics that only had one question cover them that I made mistakes on, such as 3.1 Variables and Assignments, or 3.18 Undecidable Problems.

  • Big Idea 4 Computing Systems and Networks: I believe that due to the relevancy and large amount of review that this topic was related to, I was able to score full marks for questions in this Idea.

  • Big Idea 5 Impact of Computing: I performed lower than average on this topic, which may be due to the fact that this Idea hasn’t been focused on in relevant elements of the class. However, this is an overarching Idea to consider when implementing computing systems in order to understand the meaning and purpose.

Reflections

Self Reflection Currently, I grade myself a .85. Though I have contributed towards the project, most of my contributions have been through the frontend design. The backend is more challenging for me to understand, however, I have observed that I have more knowledge on the backend than the start of the trimester. I have also noticed that my studying habits and my habits that have improved my studying skills have stemmed from this class due to the unique classroom elements of constant team work. I believe that presently demonstrating more teamwork than a usual class asks for is a sign to help prepare for college, in which there will be a lot more teamwork. I have developed basic levels of program understanding, however, I still have much to improve on.

  • Strengths:
    1. Design capabilities
    2. Organization
    3. Brainstorming Ideas
  • Weaknesses:
    1. Understanding the code syntax
    2. Grasping new concepts in the allocated time
    3. Lack of communication skills
      To improve my weaknesses, I will first dedicate more of my time trying to understand the code and its purpose. To help with my overall grasp of concept, I will seek help from a tutor for my struggling understanding and if I require extra explanation above my individual understanding. Lastly, for my communication skills, I will continuously check up on my teammates to make sure we’re on the same page and discuss important topics that all of the team needs to be level with, such as the concepts of deployment. To support my teammates, I will also try and improve my full-stack abilities so that I may be proficient in both the frontend and backend.

Topics Grade Reason
Contributions 5/5 I have prepared five unique items, all of which were helpful towards the site.
CPT Requirements 1/1 I touched on most of the requirements and mentioned all of the ones that I mainly focused on.
N@tM Feedback 1/1 The users I interacted with provided positive but helpful feedback about the layout which I designed.
Project Feature 0.8/1 I contriubuted to a feature that allows for users to have diverse experiences. However, this feature is not neccesarily a very strong feature.
MCQ 1/1 In this MCQ, I was more focused and eager to learn instead of just getting a good score. I also improved my score.
Impress Point 0/1 I have contributed the minimum of the project, and I believe that I haven’t done anything outstanding to earn the impressive point. However, I will dedicate my time to try and impress for future projects.
Total 8.8/10 Overall, I believe that I wasn’t able to contribute as much as I should’ve, but I have contributed and deserve at least an 8.8.