mistertfy64
's blog

A much more in-depth review of POSN Camp (ค่าย สอวน.)


บล็อกโพสต์นี้มีจุดประสงค์เพื่อที่จะเล่าประสบการณ์ของผมในการเข้าค่าย สอวน. และมีกลุ่มเป้าหมายเป็นคนไทย นักเรียนไทย ที่สนใจในการเข้าค่าย แต่เนื่องจากผมพิมพ์ภาษาไทยไม่ค่อยได้ ผมเลยเลือกที่จะไม่พิมพ์ไทย และเลือกที่จะพิมพ์เป็นภาษาอังกฤษแทน

Even though this blog post is catered towards Thai audiences, I am not going to write in Thai because I can't type Thai.

Finally another blog post! In commemoration of it being 11 months and 1 week since I entered สอวน. ค่าย 2 (POSN Camp 2), I thought that maybe I should write a more comprehensive and in-depth blog post about my experiences in the POSN Camp, partly because someone wants to hear my advice/experience, and partly because I wanted to actually fill up this blog up with stuff.

Hopefully this blog post will be of use to someone.

Attending the POSN Camps was a really good experience for myself, even if there are some minor mishaps or problems, some by me, and some by other people. I got to meet new people and exchange Instagram handles, exchange more Instagram handles with people whom I never met, and I got to experience the thrill of an university-styled exam that gives feelings of a "life-or-death" exam, and much more!

What even is POSN Camp? (ค่าย สอวน.)

Thai students can already skip this part. But if you don't really know much about academic olympiads or are not familiar with how Thailand sends people to the IOI/IMO/etc., this might be of good knowledge.

Are you a Thai student who wants to compete in the IMO/IOI or the other international science olympiads? If so, signing up for POSN Camp is your first step. The full name of POSN is quite long, so I won't copy and paste it here, but if you want it in simple terms, it's the foundation that "promotes olympiads" in Thailand.

One of the two main purposes of the POSN Foundation according to the foundation's website is to "stimulate/train students to increase their potential in math, science, or informatics [...], preparing them for selection for the International Academic Olympiads."

If you're interested in competitive programming, just think of POSN Camp as (one of the) training camps for Informatics (i.e., competitive programming) that is officially backed by the organization that has the power to set up a National Olympiad and has power in saying who gets to the International Olympiad. This can be generalized to other international olympiads, like math or biology.

Introduction

The day was September 19, 2023, and final exams for my school are currently in place. But it's currently (lunch) break time, and of course, with nothing to do, I just crammed for the next subject that I'm about to take, Biology. Well, to be fair, I can do some of the exams without actually studying for anything (e.g. Math because it was "too easy for my grade"), but it seems like my "pass-without-study" method won't work for Biology, partly due to the fact that I am not that good in Biology.

But once noon strikes, I went to a website, signed in, and...

I am eligible?????

I passed...? I was actually in shock that I somehow managed to do this, but that was a "lie", so is the part of me waiting until noon to go to said website. In fact, the screenshot above was actually taken at 3:29PM, not at noon. I didn't think that I actually managed to pull this off. Probably because the test was harder than last year's which brought the average score down (but not my score down), and Bangkok POSN opened a new Computer Camp center, increasing the number of accepted students from 180 to 200.

Instead what actually happened was I went to a different website, which in essence, serves the same purpose: telling who is eligible for POSN Camp.

According to Bangkok POSN's Facebook page, the website that shows individual results (that is pass/fail, your scores, and score statistics) will only be available after the results for all five subjects were announced. Biology was the last [1] to be announced, probably because of issues from the center responsible for the Biology training camps.

The POSN Foundation (มูลนิธิ สอวน.) is "responsible for inviting applications from students, selecting them through the POSN centers scattered all over the county, and organizing a national competition to recruit a number of highly talented students for intensive training by the IPST [Institute for the Promotion of Teaching Science and Technology] for final selection for participation in international academic Olympiads." [2]

In other words, the POSN Foundation selects students to attend the POSN Centers, organizes the National Olympiad(s), and sends (some of) the students to the IPST, where the IPST selects the students who get to attend the International (Science) Olympiads. [3] While the POSN Foundation doesn't directly train the students, they assign schools/universities as "centers", and the faculty members of those schools/universities are the ones who directly teach and train the students.

If you live in Thailand, there's a good chance that you've seen news like "So amazing! Thai students got medals from the International Olympiad in Informatics!" In my opinion, it seems like Thai society really values international olympiad medalists. [4] In addition, the IPST (and other organizations) also give scholarships (up to the doctoral level) to international olympiad competitors. [5] That's probably one of the reasons I signed up for this. But even if you don't make the international olympiad, it's still a very trusted and amazing extracurricular you could use for your higher-education applications. That's also one of the reasons I signed up for this.

Back to my experience. My name was on the eligible applicants list, and of course, I was happy, and that's how I got in this situation: getting selected to attend the POSN Informatics/Computer Camp for the 2023 Academic Year. [6]

POSN Camp 1 (สอวน. ค่าย 1)

For Bangkok, the POSN Camp in Informatics began on October 2, 2023. Yes, that's usually on the school break for most schools. After all, it probably won't look good if another educational program collided with regular school class days.

After getting all my documents ready and going to the training camp (which is basically another school) while being excited, on Day 1 (October 2), once I arrived, I... arrived too early, so I had to wait.

But after the wait is over and the opening ceremony finishes, I was led to a computer room, and... even though there were computer rooms, I got handed worksheets for math. Well, it's understandable, because people tend to associate computer science/engineering/programming with math, and that's how Day 1 and Day 2 went, math instead of programming.

On Day 3, its finally time to write some code! With me having prior programming experience, and with the fact that most POSN Camp students already "pre-learn" everything (myself included, when preparing to go in Camp 1), it's safe to say that what I learned wasn't that... new, but it had to be done since this is POSN Computer Camp, so it's essential that most (or all) students know how to code.

On October 9 [7], there was a test for 30% of the total score. I'll just say it here: I was actually scared of the exam, because in the Bangkok centers, at least for the 2023 Academic Year, 60% of the camp total score are from... paper exams, and that's not all... more on the remaining 40% later.

The paper exam was very easy to understand but very hard to get right: it was basically "given this piece of code, what would it print"-style questions. Even though it was (supposed to be) easy, students (like myself) get scared of these types of exams because just one tiny slip could turn a 100%-credit answer to a 0%-credit answer, especially when the "piece of code" is about twenty (and not something like five) lines long. As such, the exam required lots of concentration and focus, but not that much knowledge. In my opinion, it was basically more like a showdown of who has better focus.

The "what would this code print"-style questions scare me, but too bad for me, I'll probably be seeing more of it in my further studies...

Good thing I got a very respectable score of 25% out of 30%, missing only the matrix multiplication question [8], which was 5% of total score.

Also in the Bangkok centers, at also at least in the 2023 Academic Year, C is taught in Camp 1. From what I've heard, I actually thought this is quite hard, due to myself seeing memes about C and C++ and how hard it is, especially from what I've heard about pointers, but...

When it's time to learn about pointers in C on October 11, well, I actually found it easier than what I expected. I don't know why, maybe I could understand computer material better, or maybe because they didn't teach that much and only thought to the point that is needed in competitive programming.

Well, at this rate I am supposed to be writing about what happened for each day, but, there wasn't much going on in Camp 1, probably because it was a go-to-center, then go-back-home style, and there were no overnight stays, but I can tell there were recreational activities before each day. I'll be honest, I actually found some of them quite fun, but most of them were boring to me (probably because I am the highest grade at time of camp attendance), but at least I got to meet new friends from other schools. There was free food in the camp as well.

I actually found the material quite easy to understand and didn't have any trouble understanding it, probably because I already know some of them from my past programming experiences, but I still tried to get to learn something new.

Now for the climax, the remaining 70% of the camp total score. On October 18, the final day of the camp, there was, of course, the final camp test. It was split into two parts: the other 30% from another paper exam, now with harder pieces of code to "compile" in my head, and, of course, this being a camp about competitive programming, the remaining 40% exam: an actual competitive programming exam/contest, but with a catch.

Remember how I said I would talk about the remaining 40% exam? This is the exam, and the catch is... there is no automatic judge [9] (at least in the Bangkok centers, in the 2023 Academic Year). Yes, you've read that correctly, no automatic judge, which means that you have to be sure that your code is actually working correctly (and not just the 2-3 example cases on paper, although you may get points for it), and there's no sure way to know it's working correctly other than you double/triple/quadruple-checking the code yourself, or proving the correctness of your code (which I don't think was necessary) Once again, the problems weren't that hard, they were just straightforward simulation, but one slip up could mess with your code (so it's basically like another "focus"-test).

After taking the 40% programming exam ("practical exam"), I was met with a technicality that only affected me and a few others, and that actually made me scared, not because I did something wrong programming-wise, but because of "formatting"-wise [10], and that actually made me become worried for a while, as I believe there's a possibility that my work that could get up to 40% would not even be graded. The worry went through the final 30% second paper exam, and even after the exam ended, just like after what happens after an exam ends, the first thing students tend to do is talk about the exam. But instead of talking about the most recent exam, I asked the other campers about said technicality in the 40% programming exam before going back home.

Back home, after the final day of the camp and all three exams, the technicality was still in my mind. Thoughts like "Oh no, I might not get the 40% at all..." keep intruding my mind.

I then later went back to school for the second semester.

Finally, on November 1, the results for who made the second camp was announced. This was a Wednesday, but, the results are now online, so it probably wasn't that much of an inconvenience to check the results. What was more inconvenient to think about is the technicality.

After the announcement file loaded... I was relieved. Those three words properly should tell you enough for the second camp results. But if you still can't figure it out from the three words, I made it into Camp 2.

If you wanted to know my total score, it's 80.5%. 25% from the first paper test, 36% from the programming test, and 19.5% from the second test. Obviously the second paper test was harder, and some questions even had errors in it [verification needed].

Intermission

Now that I've made Camp 2, just like before going into Camp 1, I "pre-learn"-ed Camp 2 material.

Since Camp 2 is the camp just before the National Olympiad (the Thailand Olympiad in Informatics for my case), and also because Camp 1 only thought about basic C programming (with recursion), you can see that Camp 2 would probably be every computer student's "favorite subject" in university(?): data structures and algorithms.

Standing on the shoulders of giants, I signed up for multiple competitive programming sites, but the one that I took seriously was Codeforces, where I stayed up past midnight just to attend the contests and be able to train on the problems. [11] This also made me late multiple times for school, because that is what getting only 5-6 hours of sleep before a school day does to yourself.

While in the second semester of school for the 2023 Academic Year, I actually got "free" money and one "free" meal from my school for attending POSN Camp 1. The "free" money and "free" meal was from one of the computer teachers at my school. For the "free" meal part, the teacher invited me telling that "it's a dinner for people who made POSN Camp students and other students who received international awards [12]". For the "free" money part, the money I received isn't actually "free" or "prize" money (although it was handed out to some students in the dinner party that I mentioned earlier), but it was actually an "allowance" [13], the kind of money you get where it's intended use is to buy food at school.

Regarding the allowance, it was actually a decent sum of money: THB1,300.00 (THB100.00 per day in Camp 1). In addition to that, the center originally planned to treat everyone to a shabu meal, but can't, so the center gave another THB300.00 to every camper, so thats THB1,600.00 for making the camp. As expected, I spent all the money on other things.

After the second semester ended, I was invited to school again, during the second semester break, after finishing the grade, to receive a s p e c i a l certificate for "bringing fame into the school" [14], where the school does this to recognize the achievements of students who won in academic/activity competitions [15], POSN Campers included. Ironically, in the booklet that details what each student did that "gave fame" to the school, while most (or basically all) students who made POSN Camp 2 had the fact that they made POSN Camp 2 listed, my entry only had POSN Camp 1 listed.

Finally, on March 11, 2024, 1 week before Camp 2 began, I managed to reach Pupil on Codeforces.

POSN Camp 2 (สอวน. ค่าย 2)

Camp 2 in Informatics for all four Bangkok centers in the 2023 Academic Year began on March 18, 2024. In Bangkok Informatics Camp 1, 200 students are split into 4 school centers, making one center contain 50 students, plus some people who are planning to retest. [16] In the 2023 Academic Year, 30 people from Camp 1 per center are selected to attend Camp 2.

At least for Informatics/Computer/Competitive Programming, before you sign up for the qualification exam, you choose what center/school you want to go to. As of the 2023 Academic Year, the school center you chose for Camp 1 determines what university center you go to for Camp 2. With the addition of a new center from the 2023 Academic Year, instead of there being 18 students from the Bangkok centers going to the Thailand Olympiad in Informatics (6 students per each of the 3 centers), there are now 20 students (5 students per each of the 4 centers).

According to a professor at my center (who wrote Bangkok's exams for Camp 1 [17]) for Camp 2, the material that is taught in Camp 2 is "second-year bachelor's material [in computers]", that is, everyone's "favorite" [18]: Data Structures and Algorithms. So it already means I get to "pre-learn" [19] university-material already. Whether I actually understand and retain them is a different story.

Of course, being a camp in a university, students are expected to sleep in the university dorms, although it's not mandatory. The majority of students (me included) chose the dorm option, because, let's be honest, it would be a massive inconvenience to drive from a house to the university center then drive back to the house 1.5 hours every day for 14 days straight.

For the dorm in the university center I chose, it was actually the best dorm type (i.e., the most expensive one), complete with a table for each person, a bed for each person, air conditioning, a convenience store just opposite to the dorm that is only a 3-minute walk away, and most importantly, free internet connectivity. One router per room. [20]

As for the actual training part, the language used is now C++, just like what most competitive programmers use. For every training day, there is a 3-hour lecture session, where university lectures/professors teach about the topic for the day, and then a 3-hour "lab" session, where it's time to solve some problems.

On Day 1, March 18, 2024, before any training even began, a lecturer there recognized that I go to the same school that he went [21], so of course, he wanted to take a picture of myself so he can "send it to a high-ranking teacher/faculty member at my school".

Still at Day 1, my favorite topic popped up again, matrix multiplication (in one of the lab questions). I still didn't remember the algorithm for it, so I had to search it up.

As stated above, I did want/am supposed to write more about what happened each day unlike what happened with Camp 1's entries, but, there wasn't anything much to write about (again), but there are key differences between Camp 1 and Camp 2:

  • No recreational activities before class. I can see why, probably because university is very different from school in that there usually isn't a morning assembly everyday.
  • No one cares what you do. Pretty much this is how an actual university lecture goes, no one cares if you have anything else open in the background. [22]

On Day 6, March 23, 2024, a Saturday, it's finally time to go home (and then come back 2 days later)! Speaking of home, there were a group of kind alumni who made IPST camp create a practice contest (Pre-POSN2) that I can practice on. Too bad I can't do any of the problems, but I am still thankful they made the contest so then-current POSN students like me could practice.

On March 25, 2024, I came back to the dorm.

On March 26, 2024, there was, the mid-camp test, and of course, just like myself, and probably other students, everyone wants the highest score possible, a 300%/300%. This time, there is a automatic judging system! Hooray!

Oh wait, it was a custom made one (not something like CMS), and although its usable and I can send submissions to it, I (and many other students) did run into problems with it, like how it broke while testing the system. Thankfully it was fixed, but more on that later.

Now for the actual performance on my test... well... I will just admit that I didn't score well: 150%/300%, this was probably due to my stubbornness on one of the problems, the way where I didn't time allocate properly and the way I straight up went for full credit even if partial credit is available [23]. Problem 1 wasn't that hard, and I got 100% on it (in approx. 1 hour in), but after clicking on Problem 2, well..., I actually became confused. The problem was about "traversing" a grid according to the instructions, but I couldn't understand the instructions. So I went to Problem 3, which I can understand, but wasted all my time for full credit to the point that I couldn't find a solution, so in the end, with not that much time remaining, I quickly coded up a 50% solution and got the 50%, then went back to Problem 2. The constraints on Problem 2 were very relaxed for 80% of credit, where a straightforward simulation solution will already suffice for the partial credit. I tried to create a straightforward way of traversing said cell, but time ran out.

Of course, I felt disappointed in myself, but reminded myself that it probably isn't over yet, because I could still do well on the second exam worth 60%...

Back to learning. As stated in my previous blog post, "Content of Camp 2 (in my center) ranges from basic C++, to breath-first search and depth-first search, and all the way to maximum flow algorithms." Obviously, it is challenging, as university-level material is being taught to middle-to-high-schoolers, but if you want a more detailed breakdown, a quick search on Facebook should give a result/schedule on what is being taught and tested.

The lecture "hall" is actually a computer lab, and of course, due to it being in a computer lab, someone will probably get distracted and open something else in the background. That "someone" turned out to be... a lot of people, me included. Sometimes we do need a break from studying..., well, what do you expect when there's a computer screen that no one actually monitors? Pretty sure I felt guilty, but at least I didn't use my foot to press the spacebar on a keyboard, which is what someone else [24] did after downloading a game to play in one of the computers in the computer lab [25].

On March 30, 2024, another Saturday, it's time to go home again! (My center doesn't have lectures on Sunday), except for the fact that there was a minor inconvenience: the dorm's elevator has no power. Not a big deal, just walk down while carrying something heavy with me.

Speaking of dorm inconveniences, there was a major one for me: the toilet won't flush. I won't get that deep into this one, but here is all you need to know: I spent hours trying to unclog a toilet in my room, only to find out there's actually a shop in the dorms that sells plungers [26]. That was after I tried to find hacky ways (which didn't work) to clog the toilet.

Other than that, I just watched funny videos and played games on my laptop.

On April 3, 2024, the final day, it's time for the second selection exam, and it seems like the problems were easier...? I (and basically half of the student body) exited the room early. I actually got 300%/300% on the exam approximately half time. But as expected, there was a twist, because half of the students getting 300%/300% before time sounds to good to be true.

Also on April 3, 2024, there was the closing ceremony. There isn't that much going in the closing ceremony, because it went like how most closing ceremonies go: get the competition diploma from a well-respected person, listen to the Dean of the faculty give advice, and go home. But being a training camp that selects people, there was one more thing: announcing the approximate date of who gets selected to go further.

That's it for Camp 2, but...

After Camp 2

Remember when I said I would speak "more on that later" about the judging system? While I was out of my home, a message from the head professor/lecturer was sent into a group chat [27], well, it's not the results, but rather, a re-evaluation.

It turns out that my 300%/300% was actually a "provisional" score [28]. That, combined with the fact that I've heard other students discussing that just printing a hardcoded number is already 33.3% when exiting the exam room for the last time, is enough to make me worried.

That worry became true, as the real score is made by adding more test cases. Because of that, my score went from 300%/300% to somewhere around 200%/300% [29].

So it's safe to say that I didn't make the Thailand Olympiad in Informatics...

The statement above held true when another message from the head professor/lecturer was sent into a group chat: the actual results, and my name wasn't on there.

Conclusion

Even with the problems I faced, such as a technicality in Camp 1, or the toilet that won't flush and the "broken" judge system, in Camp 2, attending POSN Camp was still a valuable experience for myself. That's probably why I've decided to talk about this 11 months after entering Camp 2.

I got to meet new friends, get new Instagram handles, get diplomas of competitions. Additionally, I also got a very cool jacket that I can wear for "bragging rights" to let everyone know that I went to POSN Camp 2, but I do wish the POSN logo was on there and that the center's acronym was actually spelled correctly. Not a big problem, I just applied tape to fix the incorrect spelling.

Finally, if you're going in to POSN Camp 2 this year, or any future year, good luck. But let's be honest, it probably won't be enough to make the National Olympiad...


[1] I have no evidence that Biology was actually the last announced, but judging from the comments saying that the Biology results had "issues", it's safe to say it was the last actually announced.

[2] Quote taken from the POSN Foundation's website: https://www.posn.or.th/history-th

[3] The POSN Foundation was founded in 1999, after Thailand's IPST began sending people to the olympiads. I don't know what happened before the foundation was founded, but if I remember correctly, selected students would just attend the IPST Camp. But for now, think of the POSN Camps as the "first steps" to get to attend the IPST camps. Once again, this is from my memory and experience, so some details are may be incorrect. For the correct and up-to-date information, go visit their websites: POSN Foundation's Website, (Olympic) IPST's Website

[4] (e.g.) เก่งมาก, เก่งจังเลย

[5] Well, to be fair, it's not easy to be eligible for the IOI (in Thailand, at least, according to my experience.) You can't just "sign up" for the IOI. In Thailand (and probably basically every country), an organization (usually a government/educational one, e.g., the IPST in Thailand) selects the team for their country and sends it to the international olympiad's organizers.

[6] I actually applied twice before, but I didn't pass the test. On my third attempt (Academic Year 2023), I passed. If you didn't pass, you can always apply again until you've exceeded the grade limit.

[7] I stopped saying "Day X" because there was no training on Sundays and other public holidays.

[8] I've never formally learnt matrix multiplication (or anything about matrices) in my (regular) school studies. Even though matrix multiplication was taught during Days 1-2 in the Camp, I still forgot the algorithm.

[9] "Submissions" are graded by hand (that is, someone sits and enters all the test data manually).

[10] If you wanted to know: the question paper instructed me to name my file in Thai, but the head teacher instructed me to name my file in English. Another teacher told me I should follow the head teacher's instructions, but a different teacher said to follow the exam paper's instructions when I asked them if I've done everything correctly (formatting-wise, not material-wise).

[11] (Most) Codeforces contests begin at 2:35PM UTC, which is 9:35PM in Thailand. They run for about 2 hours, and even after it's done, I still can't fall asleep instantly.

[12] Said international awards doesn't have to be POSN/IPST/National Science Olympiad/International Science Olympiad related. At the dinner, I saw some of my friends and other students receive recognitions for projects and inventions.

[13] The exact word was "เบี้ยเลี้ยง".

[14] The exact word was "นักเรียนที่นำชื่อเสียงมาสู่โรงเรียน".

[15] Once again, said awards doesn't have to be POSN/IPST/National Science Olympiad/International Science Olympiad related.

[16] At least in Bangkok Computer Camps, if you don't manage to get from Camp 1 to Camp 2, or Camp 2 to TOI, you can retest (without attending the camp again) as long as you are still in the grade range.

[17] Yes, the paper exams where "one tiny slip could turn a 100%-credit answer to a 0%-credit answer"

[18] In quotation marks because according to what I heard, it's very hard.

[19] In my school's computer classes, data structures and algorithms aren't taught (at least for my room), instead, more "practical" projects (e.g. Arduino, web development) are taught.

[20] If I had to take a guess, there's hundreds of these rooms in my dorm room's building.

[21] There are student uniforms in Thailand, and (most of) those uniforms have the wearer's school emblem/school's initials on them.

[22] The same lecturer stood behind me for having a game open on my phone. Nothing serious, because I almost finished one of the problems and I could explain it to him.

[23] In the IOI, there are subtasks for partial credit, e.g. N<50 for 20% and N<200000 for the remaining 80%. For example, if your algorithm isn't efficient enough to complete the N<200000 task but successfully completes the N<50 task will, you get 20% credit.

[24] According to my memory, I did see someone use their foot, but I'm not 100% sure if it was actually their foot. But for the sake of having something to write, let's just assume that's the case.

[25] I watched videos instead. To be fair, I'm not that comfortable in downloading and signing in to programs on a public computer.

[26] I had no idea there was a shop that sells these, and initially there were no plumbing equipments in the room.

[27] Just like every event, participants are expected to join a group chat so there's an easy way of making announcements or contacting others.

[28] Similar to Codeforces Div. 1 and Div. 2 judging, where there are pretests and system tests.

[29] Mentioned in my previous post: "Because the number of new test cases added was so few that getting a WA in one of them could get you a 20-point deduction, for each problem it was 100 points split equally into each test case."



Blog posts are under the CC BY 4.0 license unless stated otherwise.