mkdir cs225

As every computer science major knows, data structures is a very integral class in their curriculum. As a result, data structures can be considered the first major test if one wants to label themselves as a proficient programmer or computer scientist.

This semester, we would be working in C++, which was a considerable step up from Java. In preparation for the programming portions of the class, I took to Project Euler, a programming problem solving site that allowed me to hone my Java and object oriented programming skills.

Despite my prep, however, the first machine problem proved to be a patch of tricky footing for everyone. We were all faced with the novel task of writing our own Makefile and slogging through the syntax of C++ on our lonesome. Anticipating a long assignment, my friends and I convened together in an attempt to make some headway on learning our new second language. Within half an hour, we all found ourself walking into a brick wall editing our own Makefile.

We reached a crossroads of sorts, deciding that it would be unproductive to simply throw more time at the problem at hand. I voted to continue working on our machine problem at Siebel Center, where we could rely on the help of our course staff. My friends decided to stay back in hopes of slogging through and making some purchase on this tricky problem.

Riding the bus into the receding Urbana sun, I got off and ascended the few steps into the computer science building. I sat down at one of the basement’s resident EWS machines and began to work. Next to me was one of my classmates who was working on the same problem. We sat together and refined our individual Makefiles in hopes of allowing our program to fully compile. When I thought I was absolutely stuck, I reached out to the current TA, who walked me through the idea of Makefiles and also scanned my code for bugs. After a quick review, I compiled my code again: ./mp1 . The console showed no warnings, and using the terminal diff commands confirmed that my code was correct.

Just to be sure, I ran my final source code against the staff’s test suite, Monad. Five green “passed” markers greeted me, and I heaved a great sigh of relief. After nearly three hours of frustrating debugging and refining, I had solved my first true Machine Problem. I silently reminded myself that the programming problems would only get harder from here on out, but resolved to reviewing my current code for any other errors.

My programming neighbor wasn’t having the same luck, however. As he tried to understand the concept of flipping the PNG 180 degrees, the TA would constantly shoot him down, berating him with a sharp “为什么你不懂这个? 这是很容易。” (Why don’t you understand this? It’s really easy.) After the TA moved on to help another student in the office hours queue, I slid my chair over and began to walk my classmate through the steps that I had taken not so long ago.

“So I see that you’ve placed the target files on your desktop. Here, let’s put them into a new directory. Type in ‘mkdir cs225’ into the terminal, right over here, and press Enter…”

Posted in Uncategorized | Leave a comment

Passion in Grand Rapids

Prior to my first semester of school, many of my close friends and family said that university would be some of the best years of my life, full of substance, variance, and enjoyment.

Two weeks into school, I wasn’t so sure about that adage. I hadn’t done so much as to set a foot outside my dormitory unless necessary, holing myself in my room with coursework.

I would say it was by chance that I found my social niche. Simply sitting next to different people in classes introduced me to a new study group, and a new crew of weekend explorers. I began to spend more time outside my dormitory, and sure enough, I found that more often than not that I would be outside my room.

However, going to school in Urbana-Champaign has, to an extent, pigeonholed me in a vacuous bubble. Despite finding my group of friends, I feel that something is still missing. When a few friends brought up the notion of roadtripping to Chicago and Michigan over the weekend, I really couldn’t refuse. After all, maybe I would finally chance upon something that I could hold on to and develop into a fully-fledged idea. It was certainly refreshing to leave Urbana-Champaign for the first time in two and half months. I was able to finally get a taste of Chicago life, and was also able to visit Indiana and Michigan as well.

Perhaps something that really remained with me from our adventures up North was our visit with Jonathan, my friend’s brother. I was very excited to meet Jonathan after reading (sorry, viewing) his laundry list of completed projects. Jonathan was a personable and motivated individual and was very excited about his work.

Though 1900 miles away from San Jose, Jonathan made me and my friends feel at home. He invested his time to get to know us better, asking us about how we felt about our classes and social life at school. He implicitly emphasized the importance of passion and motivation, showing us the multitude of documentaries that he had tirelessly filmed and edited, as well as his brainchild and budding social project “FoodCircles”. As he flitted excitedly around his laptop and recording gear, he detailed the development cycle and conception of each individual project. The point of passion really began hit home for me. “Rohit, is computer science what you really want to do?” he asked.

I don’t know. I guess it’s too early to tell, but regardless, I went with my instinct and responded resoundingly with a “Yes, Jonathan. I really think so.” I’ve definitely made decisions and uttered outlandish comments out of impulse, but I know that my answer was correct, because I can’t imagine pursuing anything else for the remainder of my life.

Posted in Uncategorized | Leave a comment

Computer Science

First off, it’s been a while. I’ll try to write more often from now on.

It’s been two months since I set foot into my first college classes. I was, and still am, very excited to learn more about the vast field of computer science. To be honest, however, I couldn’t help feeling a few chills down my spine when my instructors repeatedly drove home that machine problems would constitute a sizable portion of the introductory course, calling them the meat and cheese of the class. I wasn’t very good at programming, and although I certainly wanted to become a better programmer, I secretly hoped that computer science couldn’t merely be trivialized to solving machine problems day in and day out.

When I scrolled through the major’s curriculum, It made me happy that computer science was so much more than programming. It warmed me inside that I chose a major that would transform me into a well-rounded, versatile engineer. I came to UIUC to gain a deeper and more profound understanding of how we manage data and allocate computing resources in an efficient manner. I left a cozy home 1,872 miles away to study computer science, not programming. And although I’m spending most of my first year grinding out machine problems with classmates, I look forward to some of the theoretical classes that I’ll take in the future. Writing code is fun and enjoyable, but learning why the aforementioned code works the way it does enhances the experience tenfold. I feel that the best of computer science is still yet to come.

Posted in Uncategorized | 1 Comment

TSA Conference Reflection, and How to Teach Engineering

Engineering excites me. After hours and days being forced to evaluate theoretical expressions that only held up in precise utopian states, it felt nice to finally be faced with problems that had practical applications and real results.

When I earned the presidency of my school’s Junior Engineering Technical Society, I couldn’t have been more elated. It was my goal to promote engineering schoolwide. Following our TSA’s TEAMS regionals runner-up finish, we were invited to attend the national Technology Student Association conference in Washington DC. As I read the results of the regional, I couldn’t help but think that this would be the pinnacle of achievement for our club. We were going to represent our school on a national stage.

Our team prepared well into summer nights to ensure a quality performance at our debut conference. We threw ideas onto powerpoints and documents, proofread and revised, argued and discussed. After hours of careful preparation, we were ready.

I for one felt greatly privileged to be on the 6am flight to Washington DC. After all the paperwork and cooperation necessitated with Lynbrook, we were all very lucky to have the opportunity to partake in the conference.

The conference center was a bustling hub of activity, with more than 7,000 participants in attendance. Many of them wore numerous ribbons on their name, such as “first time competitor”, “chapter president”, and “future engineer” providing a distinct sense of flair for each individual. Later in the night, the welcome ceremony fireworks made us all feel even more special and important. It seemed as if the conference would host a welcome mecca of enthusiastic engineers.

The conference's opening ceremonial fireworks.

The conference’s opening ceremonial fireworks.

However, my glorified image of this engineering conference would take a drastic turn the very next day. Our team grouped up together, anticipating our first engineering challenge. The proctor summoned all the team captains and explained the challenge to us.

As he explained the task, I didn’t seem to be getting more optimistic. At the very least, the challenge seemed to be a joke after all the trouble we had been through just to partake in the conference and its festivities.

I say this with unwavering sincerity – we were supposed to balance a full 2-liter water bottle using a piece of paper, essentially engineering a load-bearing structure with a simple sheet of A4 paper. I was aghast. We had traveled nearly 2800 miles, completed a veritable mound of paper work, and spent a whole thousand dollars just to manipulate a simple sheet of paper?! I concealed my heavy disdain and carefully relayed the instructions to my teammates.

Unfortunately, as the challenge advanced, our team struggled with the task, and failed to create a piece of paper that would bear the weight of the full bottle. If it was any consolation, I could safely attest that our professional-grade writeup was top notch.

The oral competition wasn’t much better. Few of my teammates felt the need to understand the material we had prepared for the presentation on alleviating congestion, and it showed. The judges assaulted us with questions which we answered in shaky voices. Needless to say, I was disappointed.

During the awards ceremony, I wasn’t expecting anything. To my surprise, though, we were called up for our good performance on the writing section. We jovially jogged up to the stage and awaited the announcement of the awards. While we lined up, each team member received small “consolation” pins. As it turned out, we had placed 6th in the country for our collaborative research paper that we wrote on tracking.

The interior of the Gaylord Convention Center, the venue of the 2014 TSA National Conference.

The interior of the Gaylord Convention Center, the venue of the 2014 TSA National Conference.

Aside from the small recognition our team earned, I couldn’t take much away from the conference. Or maybe it was just that we had been promoting engineering incorrectly. I began to think harder, and came to the conclusion that we weren’t using the correct approach to bring engineering to fellow students. Quite aptly, a quote from the popular comedy show “The Office” came to my mind. In the episode “Safety Training”, Regional Manager Michael Scott remarks, “You don’t go to the museum and get handed a pamphlet on electricity. You put your hands on metal ball, your hair sticks up… and you learn science.”

Attending to the conference and participating in a trivial challenge felt like being handed the metaphorical pamphlet on engineering. It was no different from an FBLA or DECA business conference, neither of which successfully further true business concepts. The TSA national conference failed to seed profound engineering interests in fresh new minds. In the future, I believe that prospective engineering students should be placed in active environments containing tangible problems and challenges for them to solve. Put engineers next to an incomplete freeway interchange, and have them create actual design specifications for the onramps and exit lanes. Take students to a new server farm, and have them study the different file transfer protocols and infrastructure that allows a company to store its data. Plan a field trip to the local university laboratory, and allow participants to manage the manufacturing process – the machines, instruments, and materials – of a new medical device. Through these hands-on, close-up brushes with various scenarios, people will immerse themselves in the thrill of creation and the euphoria of success that comes with engineering.

A passive approach falls short to enlighten and ensnare new minds into the world of engineering. Using active scenarios, we can make a difference and fill the growing demand for new, hungry engineers.

Posted in Uncategorized | Leave a comment

2014 Track, and a Fresh Start

I got up fairly early this morning, around 6:30. There were birds chirping outside, the sun was rising, and I didn’t feel tired when I got out of bed. I felt like I was 8 again – all I needed was to grab a bowl of cereal and sit in front of the TV to watch some Saturday morning cartoons.

I didn’t do any of that, though. Instead, I started on some of the last schoolwork I’d do in high school. As I started browsing the web for some material for my literature project, a reminder with an alarm clock icon popped up on the right hand corner of my screen. “CCS Semifinals in 10 minutes” it said. My heart lurched as I soaked in the text.

At the start of the season, I was pretty confident that I would be at San Jose City College, running in one of the last races of my high school career.

Instead, I was at home, mashing F5 and anticipating the live results of the competition. In retrospect, I only had myself to blame. Simply put, I slacked on my diet and training, and I paid the price.

In the future, I won’t be a spectator. I will be an active participant, and I will do my best to win. I still remember the time when I won my first and only invitational, and the indescribable euphoria that accompanied the victory.

I have to chase that feeling. This year, I will be chasing the finish line of the 2014 Chicago Marathon, searching for that euphoria, because I know I will find it.

Posted in Cross Country, Track & Field | Leave a comment

Everything Has a Purpose…

So I recently came across a very ridiculous proof on Quora that I thought was very cool. This proof uses the infamous Fermat’s Last Theorem to create a very slick proof of a typical problem. I would have never fathomed that such a behemoth of a theorem could be used to solve a very simple-looking problem. Here it is below:

Prove that the cube root of 2 is irrational.

So let’s suppose by proof of contradiction that the cube root of 2 is in fact rational.

Therefore 2^(1/3) = p/q, where both p and q are rational numbers.

By cubing both sides, we get that 2 = p^3 / q^3, or p^3 = 2q^3.

We can modify the equation so that it becomes p^3 = q^3 + q^3. We know that this equation is false because of Fermat’s Last Theorem, in which a specific case of the theorem states that a^3 + b^3 ≠ c^3. Therefore, the cube root of 2 must be irrational!

To generalize, this proof also works for any nth root of 2, where n is an integer greater than or equal to 3.

Like I said, I really enjoyed reading this proof because it used something so esoteric to solve a very simple problem. I guess this goes to show that everything has a purpose.

Posted in Math | Leave a comment

2013 AIME I #12

So I’m trying something new this time around. I’ve decided to start a series of problem solving videos where I’m going to present solutions to some of the problems that I solve in my own way. I’m eager to continue making these type of videos, and I would like to know what you think! Here is the first video I created. I chose this problem because I solved it on my own, using some very simple techniques in geometry to solve a tough AIME problem. Without further ado, I present to you 2013 AIME I, Number 12.

Posted in Math | 2 Comments

Goals for 2014 Track

After my successful cross country season, I’m excited to see what this track season holds in store. The focus will be on the larger scale meets like Arcadia, CCS Top 8, and the postseason racing cycle.

Ideally, I would like to bring my 3200m time under 9:30 and my 1600m time under 4:25. Working with speed and interval workouts will be key to notching more PRs this season.

This year’s track season will have more of a team feel since my 1600m time will help us qualify for the DMR and the 4×1600 relay at Arcadia, while my 3200m will help us score points at important meets like CCS Top 8 and CCS finals, allowing us to have some chances at winning larger meets as a team.

I will strive to stay healthy and maintain a consistent training schedule to achieve my goals this season. A successful track season would be a good swan song to my high school running career, and a good way to springboard into my collegiate career, if I decide to continue running then.

Posted in Track & Field | Leave a comment

Chessboard Tetris Mathematics

It’s time for the Power ARML, which is one of my favorite math contests. The atmosphere within the math room is rife with collaboration and ideas. Today’s power round topic is Tetris. Most of the team is excited because many of them are familiar with the game dynamics and techniques.

We delegate the problems between members, and the scramble begins. After 30 minutes out of the allotted 40, we are done with almost all of the power round problems.

The team is waiting on me for a few crucial calculations that will be important for another problem. However, time is running out and I need to find a more practical way of solving my problem. Brute force approaches will only get you so far.

The question was:

3b. If the puzzle is ten spaces wide, there are 10C2 = 45 different patterns where two squares remain on the bottom line and all other squares have disappeared. Some of these patterns can be achieved with just one row disappearing while others require at least three rows to disappear. How many of each kind are there?

I listed out all possible combinations and found the answer. But to my horror, the next question proved to be much tougher:

If you try to repeat part (b) of the previous problem but without using the “T”-shaped block, you will discover that some patterns still require only one line to disappear, others require three lines to disappear, but now some are impossible altogether.

4a. Determine how many of the 45 patterns still require only one line, how many require three, and how many are now impossible.
4b. Give a simple explanation why some patterns are impossible without the “T”-block.

Source: Spring 2014 ARML Power Contest

The seven different tetrominos used in Tetris. The “T”-block refers to the purple tetromino.

I tried thinking about what distinguished the T-block from the other tetrominos. Suddenly, thoughts of chess and different pieces wandered into my mind. I had to stop getting distracted – there wasn’t a whole lot of time left. But wait a minute, chessboard… black and white – parity! It all came together, it was parity! If you put all the tetrominos on a chessboard, a T-block covers three squares of one color and one of the other, while the other tetrominos have an equal split of color.

I quickly wrote down my solution and shared it with the other team members. We extended my parity argument and casework and floated through the other remaining problems with little time to spare.

My chessboard epiphany made me realize that solutions could come from anywhere. I just have to look in the right places for innovative ideas to approach different problems.

Posted in Math | Leave a comment

2013 CIF XC State Finals

At the outset of the season, I didn’t think I was going to make it this far. Making states was a pleasant surprise for me.

However, qualifying for the race was only half of the story. Since CCS is normally the first section to hold their races, we had two weeks to train before the big race. Our workouts were a mix between speed and distance to help us get geared for states. It was tough for me to get through practice the first few days since I had just run the Big Sur Half.

We drove to Fresno Friday afternoon. The weather was quite pleasant, increasing my confidence about the race. We met Justin, Grace, and Jake at a nearby parking lot before our course jog. After a prolonged season lasting more than five months, it was just the three of us. We had made it this far, and it felt much different for me. I felt… alone. There wasn’t the jovial atmosphere of practice anymore, having reduced to one that of solitude and sincerity. At this point it was all business for us. After our warmup, we hung around the finishing gauntlet while we waited in line for our free t-shirts. I guess making states had its perks.

My mind was uneasy however, similar to the situation the night preceeding CCS. It was the same feeling – I had to go out and perform. On the other hand, I was excited to finally have the opportunity to run in a such a big and prestigious meet.

Our race was early in the day, like Clovis Invite a month ago. This time, we were running three hours later. Justin and I did a few rounds around the perimeter of the park for a warmup, and after a bit, we were ready.

Since the start line boxes were arranged by seeding, Justin and I would be starting in different places. By virtue of his top individual performance at CCS, Justin would start in the center, while I would be starting on the far right, since I was the last individual to qualify from CCS.

I thought that if I went out a bit more aggressively at the start, I would be able to compensate for my slightly subpar starting position. However, this was easier said than done. The start was very aggressive, with everyone in the race pushing the pace hard. I found myself in the middle logjam within the first 800m of the race.

I kept my pace through the first mile, and because of the hard start, I found myself tired somewhat. Although I came through at 4:53 for the first mile, the same split as my Clovis race, I was much more exhausted at this point.

I tried to hang on as much as I could. The race became a struggle to simply maintain a steady pace.

My legs started to ache harder and harder. I pushed the last 1200m, knowing that this would probably be the last race of my high school cross country career. I was gaining ground and position, and sure enough, I was able to reel in a few more runners by kicking through the last 150m. I finished in the top 50% of the field with a 16:28, or a 5:19 pace per mile over 5K.

I was hoping that I could have ended my season on a much higher note. I initially felt that I had let my supporters down, after all that they had invested in me. However, I was more than happy that I had the chance to run in such a race and make it to states. My final cross country season was a success – I had improved my 5K time by more than a whole minute, and I had also definitively broken the elusive 10 minute barrier in the 2 mile, something I was unable to achieve last year in track.

Though my season ended on a somewhat bitter feeling, I am excited for what track holds in store. There will be many opportunities for big PRs in both the mile and two mile, and I am eager to see what I am capable of achieving on the red rubber this year. With big meets like Arcadia, Stanford, and CCS Top 8, who knows what will happen? Only time (and some careful, disciplined training) will tell.

Posted in Cross Country | Leave a comment