บล็อกโพสต์นี้มีจุดประสงค์เพื่อที่จะเล่าประสบการณ์ของผมในการเข้าค่าย สอวน. และมีกลุ่มเป้าหมายเป็นคนไทย นักเรียนไทย ที่สนใจในการเข้าค่าย แต่เนื่องจากผมพิมพ์ภาษาไทยไม่ค่อยได้ ผมเลยเลือกที่จะไม่พิมพ์ไทย และเลือกที่จะพิมพ์เป็นภาษาอังกฤษแทน
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!
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.
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 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]
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].
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.
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:
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...
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.
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."
Hello!
After over a year of not posting anything, I'm finally ready to make a status update! I am making this status update post be on this month partly because of my last status update also being on this month last year.
Just a reminder, although I am starting to use this blog more and more, it might not be as active as my social media. If you want to follow me, also follow me on social media! Links are at the homepage.
That's right! You've probably stumbled and saw this post through the homepage if you see that I've changed the homepage! It now contains more stupid stuff that no one is interested in! Wow! But in reality, there isn't really anything more to add, so I think to be "cool", I'm going to add my "activity log" that only updates once every half hour!
Obviously, there will many other cool things that I may or may not add later, as future updates to this website are still coming up (especially if a major version just released) as bug fixes are needed.
Nothing much. As stated in my "Plans for 2024" post, my #1 priority, just like most high-schoolers, is to still get in a good university, so the things that I'm currently up to are still what I've said in said post.
I guess, that's all for this blog post, but, in interest of not making this blog post give the feeling that I've wasted your time...
Camp 2 for Informatics (i.e., competitive programming) for the 2023 Academic Year started on March 18, 2024, and lasted until April 3, 2024 (for Bangkok, at least.) It is held in one of the four university centers. If you just want to see the results, check my certificate display, or scroll down (to avoid spoilers, I made you check the certificate display to see the results only if you've just reached this part of the blog.)
I scored a 80.5% on Camp 1, making it enough to place me in the Top 30 and allowing me to attend Camp 2. According to a professor there, Camp 2's material is "second-year bachelor's material", so, in essence, I've already got a head start if I manage to get in a CS-related major.
The dorm that I stayed in (yes, a dorm, because no one is driving for 2 hours per day just to get there) is probably the best type of dorm in the university I was in, complete a table, a bed, free air-conditioning, a convenience store just across the dorm buildings, and of course, free internet connectivity per room.
On every learning day, it is a 3-hour lecture, followed by a break, then a 3-hour "lab"/practice session. But let's be real, no one actually paid attention for the full 3 hours or did the "lab" for the whole 3 hours, especially in later days, when, for me, the amount of information is "too much" and of course, sitting in front of a computer, in a computer lab, cases of going off to a non-related website or browser game website has happened, which both I and many others did.
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. Of course, it is hard, as university-level material is being taught to middle-to-high-schoolers. I believe many centers (both in and out Bangkok) have posted on what is going to be in their Camp 2 material, so a quick search on Facebook should give a good result on what is being taught and tested.
The judging system for my center was actually a custom made one, and actually broke on the first test-day, but was fixed quickly, so no big deal there. But sadly, due to some brain issues on my side, I'll admit that I did not do to well on the first team selection exam, scoring only 150 out of the 300 points, but of course, I didn't give up.
On the second team selection exam, I actually scored 300 out of 300 points, getting full score. But of course, there was a twist after the exam: more test cases after exam has concluded, and the scores are only from the "visible" test cases or the example test cases (reminds me of Codeforces Div. 1 and Div. 2 judging), and obviously my score fell down to somewhere around 200 points (probably 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.)
The professors and lectures there were actually quite nice and fun, and on the first day, a lecturer came up to me and asked me to take a selfie with him so he could "send it to a high-ranking teacher" at my school (he was an alumni at the school I'm currently studying at), and obviously, that made a fun story that I can tell my other school friends now that I'm back.
While in the dorm, I just played Minecraft and watched silly videos. Nothing much. But there was this time where I tried to unclog my dorm's toilet with a bottle, as it won't flush. I won't get into the deep details of this one, as it might be too dumb and "immature" to state. I did find a shop that sold plungers about an hour after I tried unclogging the toilet with a bottle. (I didn't know there was a shop that sold plungers in the dorm.)
In the closing ceremony, a very powerful person handed out our certification certificates, and of course, we heard a speech of the Dean of the Science faculty inviting us to continue to "upskill" ourselves at the faculty.
Now for the big reveal.
My name wasn't on the team selection results announcement roster, and I am therefore unable to complete in the 20th Thailand Olympiad in Informatics. Only five campers passed. Those who didn't pass can retake the team selection exam, provided they are still in the grade range. Unfortunately, I was already out of the grade range allowed to retake the team selection exam, so I can't retake the exams anymore.
Still, I was grateful of this opportunity and had lots of fun, and sometimes posted my experiences on social media. Maybe if you visited them, you could find some stories about it?
Obviously, this was a non-exhaustive review because I don't want to write about what happened each day (as it would be too much both for me and for you reading the blog), nor did I write about the other problems while in the camp (e.g. the dorm's elevator losing power). Overall, I think this was a fun experience to test myself, to learn more CS, and to meet new friends.
See you in the next blog post/Mathematical Base Defenders update/whatever!
Since 2023 is coming to an end, I am doing what people are doing: setting New Year's resolutions. There will probably be more aside from this, but I don't really know what else to set more. I'm also writing to my blog so that this doesn't feel empty again.
By the way, I have decided that my blog posts will be under the CC BY 4.0 license, so you are free to share/distribute/adapt my blog posts, as long as you give me credit by (e.g.) providing a link back to the respective blog post's URL, or by mentioning my name.
Right now, I am in high school, so my #1 priority (just like most high-schoolers) would probably to get in a good university. I've taken the Digital SAT (Aug. 2023, 1460) and IELTS (Dec. 2023, 7.5, Academic on computer), and I'm quite satisified with my scores. I do not plan on retaking the Digital SAT or IELTS again because I already retook those once, but since my (or the objective) #1 university (in Thailand) also wants to see a science aptitude test score, I might need to study for that as well. I've never really studied for any school test for the past 1.5 years, but still managed to pass (that is, 50% or above) over 80% of the time if I remember correctly.
If you've been OSINT'ing be on my Facebook/Instagram account or on my certificate display, you might also notice that I passed the สอวน. (POSN) Training Camp 1 (Computer) selection test and passed another selection test while in said camp for eligibility to enter Training Camp 2, which I will be attending in March 2024. I really hope that I can somehow get a spot in the Thailand Olympiad in Informatics (TOI), so I'm mainly studying computer science algorithms right now. A reason why I'm trying really hard to get a spot (or even better, a medal) in the TOI is that I can use that instead of my test scores to apply to university, and another reason why I'm trying is that I get to brag to my friends about how smart I am.
(Explanatory Note: If you don't know what the TOI is, it is basically the International Olympiad in Informatics (IOI), but on the national level, so the TOI isn't that prestigious as the IOI, but most Thai universities only need a TOI medal (or a medal in another subject's Thai national olympiad, or for some universities, diploma from Training Camp 2) for higher/guaranteed chances of acceptance in TCAS's Round 1.)
I do not frequently post stuff on social media, and that includes not posting stuff that promotes/tries to get more players into Mathematical Base Defenders. I want to change, so that I can be described as "more expressive" and "less-introverted" person in real life, and maybe to get more followers like my friends who post everything they do on their Instagram stories (no offense to them).
I switched back to using GNU/Linux. I would also like to contribute to open-source software, but the #1 reason I'm scared to do so is that it might backfire(???), and the #1 reason I can't do it is that I do not think I have anything useful to add to existing FLOSS. I would also like that mindset to change, but I have great difficulties trying to express myself (because I might be an introvert or something). Additionally, I would also like to talk about my plans for my projects:
I plan to really put in the effort to market/advertise Mathematical Base Defenders in 2024, so it can get more players, and maybe use the fact that I am a powerful person in Mathematical Base Defenders for my university application(???). On a side note, if you want to play Mathematical Base Defenders, click here. I am also waiting for feedback from potential users/testers, so that I can improve from it.
As for my personal website, I don't need to add anything on the apex domain itself (since it's just a project listing page), but I might add some new subdomains on my domain in 2024 to spice up my website. I would also like to improve the "stability" of my domains, as well as adding new features to existing domains.
These are some of my New Year resolutions for 2024. Share this blog post with other people so more people can laugh at me if I fail my New Year resolutions, and thank you for taking the time for reading!
Are you expecting a review on the สอวน. training camp that I promised over a month ago? Well, I don't really have any in-depth review of it, since it's a come-and-go-home camp (not an overnight camp). So here is a very short summary of it: Learn, eat, learn more eat, learn more, go home. Except for the middle and the end of the camp, where the teachers gave me the Training Camp 2 selection test. (สอวน. Training Camp 2 for Computer will probably be an overnight camp, as shown by social media posts from previous years.) But at least there's a better chance of an actual review (i.e., a dedicated blog post) for Training Camp 2 because of the more advanced material, and also the fact that it's an overnight camp. So if you want a review, you might have to wait until Camp 2 starts. Sorry...
It's finally here! 16 days ago, I released the first test-build for Mathematical Base Defenders: Reversal. Now, the website portion is complete (I didn't test it throughly), and I am ready to "confidently" say that Mathematical Base Defenders: Reversal is finally in public testing!
On 2023-01-20, I finally realized that the game isn't that playable due to there being tiles, or limited resources [1]. I tried playing it, and it has caused problems even to me (the creator). I finally realized I did something wrong, and I wanted to redeem myself.
So instead of making math equations, you now solve them! This means there will be no more tiles. Instead, you are free to type anything you want!
Having limited resources when you want/should have/need unlimited could also be breaking the flow, making the game unenjoyable. There will be no more resources, instead, you just have to solve math equations as fast as possible! This is easier to get in the flow on.
For the 20 registered players (as of writing this), don't worry, your experience points (and level), game rank, and join date will not be reset. However, your scores will be reset sometime later, making the leaderboard clean and 100% filled with new-style submissions.
Since Mathematical Base Defenders is now open source, you can visit the GitHub organization to view "raw" source-code upates! You can also find the game's social media accounts at the footer of the non-play
subdomain.
I would like to thank the National Science and Technology Development Agency of Thailand for hosting the annual National Software Contest! Without it, Mathematical Base Defenders probably wouldn't have been thought of back in 2020. Thank you for funding making Mathematical Base Defense (and then Mathematical Base Defenders) exist, and funding it with 5 figures (THB12,000 to be exact)!
While on the topic of National Software Contest, I would also like to thank KG07, Muq1937 and my project advisor for helping me with Mathematical Base Defense during the competition! (The original version of Mathematical Base Defense was made for NSTDA's National Software Contest, the persons listed here were in OG Mathematical Base Defense's development.)
Thank you for reading, have a nice day, and I'll see you in the game!
Note: Multiplayer will be released later.
I kinda need help for something. I can't seem to find the perfect enemy speed. Can you help me? I might give you a reward.
Finally! Another progress report! This one is about the new Mathematical Base Defenders update, titled "The Reversal Update".
Since my final exams are over, this means that I will have a lot more time to work on the project!
Don't forget: Mathematical Base Defenders is now open source, so you can see what I've been working on to see if I actually worked on something. The project is currently being worked on at the reversal
branch.
The original Mathematical Base Defenders (and Mathematical Base Defense) had a very complicated gameplay flow (in my opinion, as explained here), so I've decided change how the game is played, from making equations with limited numbers (which was inspired from math games/activites like the "24 Puzzle" and IQ 180) to just solving equations as fast as you can like a number-cruncher game because in my opinion, it's a true test of mental math speed.
I also believe the new gameplay would be much simpler and hopefully self-explanatory, as well as allowing for easier keyboard input (the original versions required users to remember which key corresponds to which tiles, and then it becomes a problem when there is no more of that tile you need for the expression, breaking "the flow" of speed).
This is what the new gameplay looks like. You can now just type in numbers that are the answers to math problems that you see, making it easier to get in the "flow".
Of course, Easy mode is still available, and I'm still waiting on feedback for the ideal enemy speed!
(Answers are in the range [-100, 100]
, which is subject to change.)
The original Mathematical Base Defenders (and Mathematical Base Defense) had a user interface where the buttons are extremely small. I've decided to fix it by making the buttons really big and have pictures, with colors!!!
The "playfield" for the Reversal update is now vertical and has "definite" borders, which is now easier for people to see which is which (during Multiplayer). I also got inspiration of the new UI from (e.g.) TETR.IO and Jstris, which are stacker games I've played in the past which I like the gameplay and also the UI of (and think that it's easy to implement for my project.)
Also, I've also made it so that the score number has "dumb animations" like this (it can be turned off if you don't like it, of course):
Note that UI is subject to change.
I plan on finishing and releasing the Reversal Update before my birthday (March 9), which is a difficult thing to do, but since finals are over for me, it might be a little bit easier. Note that I will probably miss the deadline due to my incompotency and laziness.
I haven't been doing much advertising on the game's social media accounts either too.
But thank you for reading, and have a great day, and see you in the game (when it gets released!)
Yeah. I made it myself. Custom mistertfy64 software that might will break again, and if you're interested, I made the RSS "part" of my website public under the MIT license: https://github.com/mistertfy64/TextFeedBridger.
Once again, RSS will break, and I will change how my RSS feed works in the future. As of releasing (2023-02-01), my blog's RSS feed only show the 10 most recent blog posts.
And now it's time to go back to Mathematical Base Defenders: Reversal. How did I not notice I misspelled announcement
for over 3 weeks?
IMPORTANT: Mechanics in this page may NOT be final.
After over a year, I have finally come to the realization that how Mathematical Base Defenders is played (<0.3.0-beta
) is pretty... complicated. So, that is why, I have decided to plan an update after a 10-1 vote (among my friends as of 2023-01-20 15:00 UTC) saying that I should create a new "gameplay flow" from scratch. That is, Mathematical Base Defenders will have an entirely new gameplay mechanic, possibly replacing the old one.
Instead of trying to be different and "cool" by making this math game make you form problems instead of solving expressions/equations, it will just be solving expressions and equations, just like every other math game.
Other notable gameplay changes include:
You will still be "defending your base from enemies", hence the name.
Other notable gameplay similarites include:
When the Reversal Update is released, these things MAY happen:
Other non-gameplay-related statistics, such as rank and join date, will be kept.
Probably around 2023-02 to 2023-03. These new features take time to design and work out.
However, if you're impatient (like me), you can check the reversal
branch on the repository
There are many reasons that led me to this decision. The main reason is that the game is inaccessible and too hard to play, as pointed out by some of the playerbase. Another reason is that the source code is extremely poorly written, because that's what happens 1 year ago. Files containing 1000 lines, functions being 300 lines and doing multiple things make me look stupid, just like technical debt.
I want to "refresh" the game, while adopting more best security and privacy practices along with it as well. I also have plans to rewrite the game content to be in TypeScript, as well as making it easier to selfhost if you want to.
I believe this would also make the game more easy to play, therefore attracting more players, as I want this game to be one of those "easy to learn, hard to master" games or something like that. I also want this game to be "accessible" (where you don't have to learn any complicated rules) and non-grindy.
Yes. It will only go down when an update comes.
Probably yes.
I am currently not accepting applications for the moderation team. However, contributions to the repository are welcome. If you do happen to contribute, you may be considered for a position on the team. You can also donate.
Probably around an hour. (but obviously more because im stupid an incompetent)
Happy New Year to Everyone! (I'm 21.5 hours late in my timezone, UTC+7). But I'm pretty sure at least some of you are still here waiting for me. So what happened? What's next for me? Where do I see myself 5 years from now? Here are the answers (not to some of these rhetorical questions)
I'll confess right now. I started to lose interest on developing Mathematical Base Defenders. I have finally come to realize that the game may not have the easiest controls or the best gameplay or enemy generation. However, I might come back to developing it, if some of you can give me some ideas by messaging me.
I feel like the game is already "complete" and that it needed only bug fixes and minor improvements. Singleplayer is done, multiplayer is done, and settings is done.
But if you want to see the game thrive on, feel free to contribute to the one of the repositories! Even though I may have lost interest, but having someone being interested in the project really motivates me into continuing (I will also take a look at your pull request)!
The game was originally created for a "software contest" (more precisely: NSTDA's National Software Contest). The initial, first, prototype version was developed in 2020, when said iteration of the competition took place. I used Java for the language, but I found out that it might not be the best for me now. So I switched to JavaScript with an incomplete TypeScript migration. After the competition and having receiving THB12,000 in funding, I wanted it to be able to be used commerically. But obviously due to my incompotency, it failed. However, I won't be giving up on the project.
Speaking of NSTDA's National Software Contest, I (and one of my friends) have submitted another proposal to NSTDA for this year (2023)'s National Software Contest! The results on whether it will be accepted will come out on 2023-01-20 during the day. If it gets accepted, the development on that "new game" will start! But if it doesn't, well... I'm not sure what to do.
2023-01-20 Update: It wasn't accepted.
The game will be similar to Mathematical Base Defenders, but much easier to play and to survive longer. This game would also be a more "simple" game than Mathematical Base Defenders, containing less math, less RNG, and more speed and skill!
Of course, for my personal website, there will still be updates! I may or may not open-source it in the future (I can't really recall whether I committed sensitive information in). I will also be updating the Prayut Counter if there are news about Prayut once again, you know, just to make things more i n t e r e s t i n g .
Remember when I said I wont be answering some of the questions in the first line? Well, I lied, and these are just rhetorical questions (I don't know if they really are). But if you want to see updates on my life, check out my social media account (not just my GitHub account) where I have a 5% of posting something every 2 weeks!
That's it for this blog post. Thank you for reading this and have a great year!
Welcome to a series of blog posts where I might (will) forget to make a new post about this series every week.
This is about progress reports for Mathematical Base Defenders.
So let's get right in to what I did.
Don't forget: Mathematical Base Defenders is now open source, so you can always see what changes I've made after this blog post.
The first progress report will be about better frontend and data presentation. Other progress reports may be of mixed content.
Let's dive in!
I've spent the last couple of days allowing for "player instances" (i.e., the gamefield) to move and scale.
These are created for better multiplayer game experiences, so you don't have to stare at a small gamefield on 2 player games.
Note: This may not be implemented in the direct next update. At the moment, these transformations are only used for debug/development purposes, but if you want to see it faster, make sure to contribute!
These are just some touch-ups to the user interface.
These include (but aren't limited to):
...and I've also made other small changes, including fixing some bugs (and creating new ones), attempting to better code quality, and attempting to get more players.
Finally, I'd like to end on a note that I fill the game is too hard for players. I realized that just because I can play it doesn't mean you guys can play it. I'm sorry. But you can help by finding the right enemy speed. Feel free to suggest the right enemy speed (or new mechanics that make the game easier) in the game's Discord Server! You can also directly add a feature by contributing!
There isn't much to say in this blog post, but thank you for your time, and see you in the game!