Trimester 1 Final Blog
Categories: CSP Blogs FinalAneesh's blog
Trimester 1 Reflection
My Journey Through CSP
CSP Trimester 1 has been a mix of creativity, logic, and problem-solving. When I started, I thought computer science was just about typing code — but I learned it's really about building, fixing, and expressing ideas through technology.
What I Built
🌐 Website
I learned how to create a repository, move it into my VSCode, and how to make a deployed website.
⌨️ Coding
I learned how to code (3-01 to 3-017).
🔧 Debugging & Problem-Solving
Found that every error message is just another puzzle waiting to be solved.
💡 I learned to ideate
Coding turned out to be both artistic and mathematical — a perfect mix for me.
🗣️ I learned to collaborate
Collaborating really helped me understand my mistakes, while also letting me take inspiration from others.
🔧 Tools
I learned how to use my coding tools. Like VSCode, jupyter notebooks.
What I Learned
Coding doesn't always go right the first time. Every error is a step toward getting it right. I've learned to see bugs as part of the process, not obstacles.
What's Next
Next trimester, I want to refine my projects and push my creativity further. I need to fully understand what I am learning if I want to be ready for the AP Exam. I want to have smoother, more polished code. CSP taught me that programming isn't about how much you can code but more about the effort you put in.
Retrospective
1. Growth Over the Trimester
Compared to the beginning of the year, I think I have improved greatly, as when the school started I wasn't used to coding, since I forgot a lot that I had learned from CSSE, so to me it was like starting anew. Although, as time went on, it gradually came back to me, and now I think I know more from when I left off and from when I started.
2. Sprint Reflections
Tools: I learned about cloning repositories, working in VSCode, running localhost servers, and mastering basic terminal commands like cd. I understood how each piece fits together to support debugging and managing projects effectively. Learning Git version control was especially important as understanding branches, commits, and merges gave me confidence that I could experiment without breaking everything. I also learned the importance of a well-organized workspace and how proper file structure is important. This sprint gave me the groundwork I needed to feel comfortable in CSP.
JS & PY: This sprint unlocked my understanding of programming languages themselves. I explored the syntax differences between the two languages, from how JavaScript uses curly braces and semicolons while Python relies on indentation, to the way each language handles functions and data structures. Working with both JavaScript and Python showed me how the same concepts can be expressed through different approaches and structures. I became comfortable with variables, loops, conditionals, and functions in both languages. My confidence in reading and writing code grew significantly, and I shifted from simply copying examples to actually thinking through problems like a programmer.
West Coast Travel Quest (UI Design Project): This sprint, to me, was super fun. I was able to collaborate and work with the whole class, which was fun as I was able to view different perspectives and be inspired by different ideas (Especially the local storage idea by Akhil Kulkarni). I also loved the late night calls with the members of the modules I was working with, it was very fun to work together. I understood how the whole class was slacking at the start of this sprint, but I think we did good after the ideation phase and made a huge comeback. I also learned a lot from coding because before this sprint I had no idea what API's were, now I understand them and i'm able to teach it to others.
3. Night at the Museum
Presenting in Night at the Museum was a great experience, getting to attend other people's presentations, learning how they presented, what they presented, and presenting to the parents and showing our new vocabulary. Through N@tM, I felt like I've stepped in to a higher level of coding, even if there's a lot more higher levels. A few comments that piqued my interest were "I loved the depth of information and it is presented in a relatable way. The quiz at the end also helped me test my understanding. Some feedback that I would provide is reduce some of the paragraphs of text into bullets." by Anvay and "Overall very good, fix the styling (white background) and also add some variety with the checkpoints (like frqs)" by an anonymous person. These ideas, in my opinion, were great because when I was presenting to the parents, I was thinking the same thing, but I only realized when it was time to present.
4. Goals for Next Project
For my next project, I wan't to create a project that is worthy of a 100% in the class. I will put more effort than I did in trimester 1, and create a project that looks good, is informational but easy to read and understand, and is also completely interactive with the audience.
5. Future Learning Goals
I want to expand my knowledge in coding, so one day I will be able to code without the use of AI, or expanding my knowledge to be able to create better prompts while using AI.
6. Analytics Review
View My GitHub AnalyticsMCQ Review
Q19: Library e-books metadata
My Answer: C (The date the e-book was first published)
Correct Answer: A (An archive containing previous versions of the e-book)
Why mine is wrong: The publication date is actually very useful metadata for a search feature. Users often want to find books from specific time periods or the most recent publications. This is descriptive information that helps categorize and search for books.
Why the correct answer is correct: An archive of previous versions is LEAST likely to be in the metadata because it doesn't help users search for books they're interested in. Metadata is designed to describe and help find content, not store historical versions. Previous versions would be stored separately, not as part of the searchable metadata.
Q23: Redundant routing with four computers
My Answer: C
Correct Answer: D
Why mine is wrong: In configuration C, there are actually multiple paths between P and S. For example, P can reach S directly, or P → Q → S, or P → R → S. This means redundant routing IS possible in configuration C.
Why the correct answer is correct: Configuration D is the only one where there is NO redundant routing between P and S. In this configuration, there is only ONE path from P to S, so if that connection fails, P and S cannot communicate. Redundancy requires at least two independent paths.
Q25: Shortening strings by replacing TH and IS
My Answer: A
Correct Answer: D
Why mine is wrong: String A can actually be shortened using byte pair encoding. The explanation shows that repeated character pairs can be replaced with single characters, reducing the overall length.
Why the correct answer is correct: String D cannot be shortened because it doesn't contain any repeated character pairs. Byte pair encoding only works when the same pair of characters appears multiple times in the string, allowing you to replace those repeated pairs with a single character. If no pairs repeat, the encoding cannot shorten the string.
Q42: Increasing bit representation for internet protocol
My Answer: C (2^96 times as many addresses)
Correct Answer: D (2^96 times as many addresses)
Why mine is wrong: Wait, I actually selected C but the correct answer is listed as C in the explanation. This seems like there might be confusion in the question. However, the math is: 128-bit addresses provide 2^128 possible addresses, while 32-bit provides 2^32. The ratio is 2^128 / 2^32 = 2^(128-32) = 2^96.
Why the correct answer is correct: IPv6 has 2^96 times as many addresses as IPv4 because when you increase from 32 bits to 128 bits, you multiply the number of possible addresses by 2^(128-32) = 2^96. This is an exponential increase, not a linear one.
Q46: Computer program using 4 bits (overflow errors)
My Answer: D (I, II, and III)
Correct Answer: C (II and III only)
Why mine is wrong: I incorrectly thought all three operations would cause overflow. However, with 4 bits, you can represent numbers from 0 to 15 (2^4 - 1 = 15). Statement I must involve an operation that doesn't exceed 15, so it wouldn't cause overflow.
Why the correct answer is correct: Only statements II and III cause overflow. The maximum value with 4 bits is 15. Any operation that produces a result greater than 15 causes overflow. Statement I doesn't produce a large enough result to overflow, but statements II and III do exceed the 4-bit limit.
Q48: Science experiment with 75 percent successful trials
My Answer: B
Correct Answer: A
Why mine is wrong: Option B would cause the experiment to be successful only 25% of the time, not 75%. I misunderstood which range of random values should correspond to success.
Why the correct answer is correct: For 75% success rate, the random number generator should return true for 75% of its possible outputs. If RANDOM produces values from 1-100, then checking if RANDOM ≤ 75 would give a 75% success rate. Option A correctly implements this logic.
Q50: Searching list for target
My Answer: C (I and III)
Correct Answer: B (II only)
Why mine is wrong: The procedure shown implements a linear search (checking each element sequentially), not a binary search (which requires a sorted list and divides the search space in half). I confused the two search algorithms.
Why the correct answer is correct: The procedure implements a linear search (statement II), which works by checking each element in order until the target is found or the end is reached. Linear search works on both sorted and unsorted lists, so statement III is false. Binary search (statement I) is a completely different algorithm.
Q51: Examples of symmetric encryption
My Answer: A
Correct Answer: B
Why mine is wrong: Option A describes asymmetric encryption because it uses two different codes (keys) - one to send messages and a different one to retrieve them. In symmetric encryption, the same key is used for both encryption and decryption.
Why the correct answer is correct: Option B is symmetric encryption because Finn and Gwen use the SAME secret key to both encode and decode messages. Symmetric encryption means the same key encrypts and decrypts the data.
Q52: Algorithms to identify palindrome words
My Answer: C (I and III)
Correct Answer: B (II only)
Why mine is wrong: Option I doesn't work because if you shorten the words first (take just the first letter), you lose the information needed to determine if they're palindromes. You can't check if "c" is a palindrome when the original word was "civic". Option III has the same problem with different order.
Why the correct answer is correct: Option II works correctly: First, keep only the palindromes from the list (identifying full words like "civic", "racecar"). Then shorten them to just their first letters. Finally, sort alphabetically. This order preserves the information needed at each step.
Q55: Results of the KeepPlaying procedure
My Answer: A
Correct Answer: D (Returns false no matter what)
Why mine is wrong: I didn't carefully trace through the logic of the procedure. There must be a bug in the code that causes it to always return false regardless of user input.
Why the correct answer is correct: The procedure has a logic error that causes it to always return false. Even when the user inputs "y", the code structure doesn't properly evaluate the condition, resulting in false being returned every time.
Q59: Movie studio media librarian
My Answer: D
Correct Answer: B (Using lossy compression)
Why mine is wrong: Redundancy is actually helpful for the studio's goal because it protects against data loss from disk failures. I misunderstood what "LEAST likely to support" meant - I need to find what would HURT the goal, not help it.
Why the correct answer is correct: Lossy compression permanently removes data to reduce file size, which means the full-quality video cannot be recovered. Since the studio wants to preserve "full-quality videos," lossy compression directly contradicts this goal. It's the LEAST supportive option because it degrades quality.
Key CSP Concepts & Vocabulary
Data & Number Systems
Binary sequences: The fundamental building blocks of all digital information, representing data as sequences of 0s and 1s.
Bits: The smallest unit of data in computing, representing a single binary digit (0 or 1).
Binary number: A number system using only two digits (0 and 1), which computers use for all operations.
Nonnegative integers: Whole numbers greater than or equal to zero, commonly used in programming for counting and indexing.
Integer: A whole number that can be positive, negative, or zero.
Floating-point representation: A method for representing real numbers with decimal points in binary format, allowing computers to handle fractional values.
Overflow error: Occurs when a calculation produces a number too large to be represented within the allocated number of bits.
Security & Encryption
Symmetric encryption: A type of encryption where the same key is used to both encrypt and decrypt data, requiring secure key sharing between parties.
Internet & Networking
Internet communication: The exchange of data between devices over interconnected networks using standardized protocols.
Internet Engineering Task Force (IETF): The organization responsible for developing and promoting Internet standards and protocols.
Open standards and protocols: Publicly available technical specifications that enable interoperability between different systems and devices.
Routing: The process of determining the path data packets take across networks to reach their destination.
Addresses: Unique identifiers assigned to devices on a network, allowing data to be sent to the correct destination.
Internet protocol version: Different versions of the Internet Protocol (like IPv4 and IPv6) that define how data is addressed and routed across networks.
Circuits: Physical or logical pathways through which data travels in a network.
Data Processing & Compression
Byte pair encoding: A compression technique that identifies frequently occurring pairs of characters and replaces them with single symbols to reduce data size.
Lossy transformation: A data compression method that permanently removes some information to reduce file size, trading quality for smaller storage.
Logic & Boolean Operations
Boolean: A data type that can only have two values: true or false, used extensively in conditional logic.
Boolean variable: A variable that stores a Boolean value (true or false), often used in decision-making structures.
And/Or: Logical operators used to combine Boolean expressions, where "and" requires all conditions to be true, while "or" requires at least one condition to be true.
Programming Concepts
Iterative and incremental process of program development: A development approach where programs are built in small, repeated cycles, allowing for continuous testing, refinement, and improvement.
Palindromes: Words, phrases, or sequences that read the same forwards and backwards, often used as programming practice problems.
Concat: Short for concatenation, the operation of joining two strings or data sequences together end-to-end.
Modern Computing Paradigms
Cloud computing: The delivery of computing services (storage, processing, software) over the internet, allowing access to resources without local infrastructure.
Citizen science: Scientific research conducted by non-professional scientists, often enabled by digital platforms that allow public participation in data collection and analysis.
Crowdsourcing participants: Individuals who contribute to a project or task as part of a large group, leveraging collective intelligence and effort.
Machine learning programs: Software that can learn from data and improve performance over time without being explicitly programmed for every scenario.
Digital Equity
Digital divide: The gap between those who have access to modern information and communication technology and those who don't, often based on socioeconomic, geographic, or demographic factors.
8. Something Cool to Share
Something cool that I would like to share is that my whole family works in the computer science area, my dad, Srinivasa, works in Qualcomm, my mom, Vanaja, at CoreLogic, and my brother, Abhijay, is job searching.