Skip to the content.

Big Idea 1 Blog

my learnings from big idea 1

Big Idea 1

Big Idea 1 of AP CSP’s College Board requirements revolves around creative development. This includes collaboration, program function and purpose, program design, development, and being able to identify and correct errors.

1.1 Collaboration

Collaboration is the biggest recurring concept in our CSP class. In a group of 6, we used Agile and Scrum methods in order to create an efficient team that is able to function and get its work done. Without collaboration and communication especially, our group would not have been able to be successful in the class. I had always thought that coding was a one man job where someone was shut into an office by themselves, but now I’m realizing that no good website can come from a single person who refuses to work with others. In order to maximize our efforts, we created a kanban board and frequently chatted within our slack groupchat.

I think we really stepped up our collaboration when we started having stand up meetings. before, our group would constantly be losing out on points because we assumed that everyone had understood their roles, but on the day of the review we were all scrambling to figure our what we were presenting and how to show our work. This allowed us to establish better connections and a more encouraging environment, and I was excited to share my ideas to my group because I knew that they would consider them.

1.2 Program Function and Purpose

In order for us to be successful for writing code and making sure they would function, we had to first understand how our program would function and be appropriate for the theme of our project. After thorough brainstorming and planning, we had a clear vision of the six functions that we wanted in our code.

In creating my feature, I had a clear view of what my feature should look like because I had spent time researching other AI tools. This allowed me to style in ways that were pleasing to the eye, and I could write a backend API for gemini and set a prompt for the AI that followed our focus on camping/national parks:

generation_config = { "temperature": 1.0, "top_p": 1, "top_k": 50, "max_output_tokens": 1000, "response_mime_type": "text/plain", } system_instruction = ( "You are an AI expert specializing in camping advice. You have the knowledge of park rangers and survival specialists. " "You are knowledgeable about camping in national parks, especially in tundras, deserts, valleys, mountains, and forests. " "You provide expert guidance on the best camping gear and brands, strategies for sourcing food in the wild, essential survival skills, and practical tips and tricks for a safe and enjoyable outdoor experience. " "Maintain a friendly and supportive tone suitable for campers of all levels. " "Inform the users about the best camping brands and cheaper alternatives. " "Your responses are short, concise, and easy to understand. " "You DO NOT give responses longer than 4 sentences." ) model = genai.GenerativeModel( model_name="gemini-1.5-flash", generation_config=generation_config, system_instruction=system_instruction, )

1.3 Program Design and Development

In order to ensure that users would find our features useful and easy to access, we put ourselves in a user’s perspective and communicated to each other about what we want our website to look like. With frequent reviews with each other and Mr. Mortenson, we were also able to improve our website through iteration.

Again, by researching what we wanted and comparing our websites to existing professional websites, we were able to improve our design and development.

For example, we had made a planning issue that showcased what our website was meant to do:

Image 1 Image 2 Image 3

1.4 Identifying and Correcting Errors

There definitely wasn’t a single line of code that was completely void of errors while we were developing code. By frequently using the debug function of main.py and using tools like copilot, we were able to detect lines of code where things had gone wrong. We also used postman to test our code, and when we saw error messages we were able to identify issues with our code. Some examples were that our code wasn’t going to the correct endpoint, or our crud functions were wrong.

Image 4

We also inputted lines of code that would define errors:

message = AIMessage.query.get(message_id) if not message: return jsonify({"error": "Message not found"}), 404

data = request.get_json() if not data: return jsonify({"error": "Invalid JSON"}), 400 message_id = data.get("id") if not message_id: return jsonify({"error": "Message ID is required"}), 400 message = AIMessage.query.get(message_id) if not message: return jsonify({"error": "Message not found"}), 404

Conclusion

Reflecting upon Big Idea 1, I’m realizing that this isn’t just for coding, its applicable in all parts of my life. In almost all cases, I will be able to do more by collaborating, troubleshooting, planning, and understanding the purpose of my future tasks. This was definitely an experience that has allowed me to grow as a developer and a student, and even as a future employee.