• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 15:34
CEST 21:34
KST 04:34
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S RO4 & Finals Preview: herO, Rogue, Classic, GuMiho0TL Team Map Contest #5: Presented by Monster Energy4Code S RO8 Preview: herO, Zoun, Bunny, Classic7Code S RO8 Preview: Rogue, GuMiho, Solar, Maru3BGE Stara Zagora 2025: Info & Preview27
Community News
Weekly Cups (June 9-15): herO doubles on GSL week0Firefly suspended by EWC, replaced by Lancer6Classic & herO RO8 Interviews: "I think it’s time to teach [Rogue] a lesson."2Rogue & GuMiho RO8 interviews: "Lifting that trophy would be a testament to all I’ve had to overcome over the years and how far I’ve come on this journey.8Code S RO8 Results + RO4 Bracket (2025 Season 2)14
StarCraft 2
General
Rain's Behind the Scenes Storytime Firefly suspended by EWC, replaced by Lancer Weekly Cups (June 9-15): herO doubles on GSL week Jim claims he and Firefly were involved in match-fixing How herO can make history in the Code S S2 finals
Tourneys
RSL: Revival, a new crowdfunded tournament series [GSL 2025] Code S: Season 2 - Semi Finals & Finals WardiTV Mondays Sparkling Tuna Cup - Weekly Open Tournament $3,500 WardiTV European League 2025
Strategy
Simple Questions Simple Answers [G] Darkgrid Layout
Custom Maps
[UMS] Zillion Zerglings
External Content
Mutation # 478 Instant Karma Mutation # 477 Slow and Steady Mutation # 476 Charnel House Mutation # 475 Hard Target
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ ASL20 Preliminary Maps BW General Discussion Recent recommended BW games FlaSh Witnesses SCV Pull Off the Impossible vs Shu
Tourneys
[Megathread] Daily Proleagues [BSL 2v2] ProLeague Season 3 - Friday 21:00 CET Small VOD Thread 2.0 [BSL20] ProLeague Bracket Stage - Day 4
Strategy
I am doing this better than progamers do. [G] How to get started on ladder as a new Z player
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Path of Exile Beyond All Reason What do you want from future RTS games?
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Which UAE App Developers Are Leading the Innovatio
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine UK Politics Mega-thread Russo-Ukrainian War Thread Vape Nation Thread
Fan Clubs
SKT1 Classic Fan Club! Maru Fan Club
Media & Entertainment
Korean Music Discussion [Manga] One Piece
Sports
2024 - 2025 Football Thread Formula 1 Discussion NHL Playoffs 2024 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
A Better Routine For Progame…
TrAiDoS
StarCraft improvement
iopq
Heero Yuy & the Tax…
KrillinFromwales
I was completely wrong ab…
jameswatts
Need Your Help/Advice
Glider
Trip to the Zoo
micronesia
Customize Sidebar...

Website Feedback

Closed Threads



Active: 32966 users

Chemistry Olympiad and Computer Programming

Blogs > XXGeneration
Post a Reply
1 2 Next All
XXGeneration
Profile Blog Joined November 2010
United States625 Posts
Last Edited: 2011-06-25 01:22:23
June 25 2011 01:10 GMT
#1
Hey Teamliquid,

This is my first blog post, so forgive me if I'm not conforming to any rules in the blog section.

My first question is about the US Chemistry Olympiad tests. Has anyone on Teamliquid ever studied for the tests in an attempt to qualify for the team? If so, I'm wondering how I should be going about preparing for this and if there's anything I should know. My school district is highly competitive (one of the two high schools in my district alone had 13 people accepted into Princeton this year), and only two people per school are invited to take the national exam every year, which sorta makes me nervous heh .

I'm just going into 9th grade and I've studied chemistry from textbooks that my brother had when he was in high school. I've also taken the year 2000 and 2001 local exams for this test, scoring a 39 and a 45 respectively. Now I'm going through this large book from Schaum's, consisting of "3000 solved problems in Chemistry" in an attempt to "mass-problems".

Any advice is much appreciated.


Because I have so much time this summer aside from studying chemistry and doing the various schoolwork, I would like to learn computer programming. Browsing through old threads in TL I found out about the IOI, the International Olympiad in Informatics. Because I always had an interest in computer programming but never thought it would have much use, I sort of put it off. Now, however, it seems like the time is right to learn something, and programming seems to fit the bill.

My question is, how should I go about learning programming?

My brother took computer science courses for two years in college, and he has always tried to get me to learn some programming. When I asked him about it yesterday about which language I should start off in, he recommended I partition my hard drive and dual-boot Linux and learn C, so that I can eventually convert to C++. Another option is to learn programming with Java. Which would be a better choice? Keep in mind I have 2-5 hours a day I could put into learning programming.

After I choose a language, I honestly have no clue how I'm going to go about learning it. Should I look for books, or should I just use online tutorials?


Thank you for your time and answers!

Edit: Bolded some parts that are the most important if you're just skimming lol
Edit2: In retrospect it probably would've been smarter to make the title "Computer Programming and Chemistry Olympiad" considering the demographic of people on Teamliquid

*
"I was so surprised when I first played StarCraft 2. I couldn't believe that such an easy game exists... I guess the best way to attract people these days is to make things easy and simple." -Midas
EtherealDeath
Profile Blog Joined July 2007
United States8366 Posts
June 25 2011 01:27 GMT
#2
Learn programming by making random projects for yourself and learning along the way.

Books for background/basis until you are familiarish with things, then books for side reading and google to guide the way.

Screw C. Learn Java or C#. Learn Python, PHP, or Ruby for scripting as well, Python if you give no shits about making websites (people tend to use PHP/Ruby for that). Or, if you are a WoW whore and want to make addons too, use Lua.
Oracle
Profile Blog Joined May 2007
Canada411 Posts
June 25 2011 01:29 GMT
#3
If you want to be an implementation jockey and just create cool programs and stuff learn Java or C#, the easier languages.

If you care about theory (algorithms, turing machines, automatas, math, problem solving) go to school for it or watch MIT open courseware.
Eti307
Profile Blog Joined March 2004
Canada3442 Posts
June 25 2011 01:57 GMT
#4
My brother took computer science courses for two years in college, and he has always tried to get me to learn some programming. When I asked him about it yesterday about which language I should start off in, he recommended I partition my hard drive and dual-boot Linux and learn C, so that I can eventually convert to C++.


that's really bad advice... you don't need linux to learn programming and learning C is not a good idea. If it's only recreational C# or Java is your best bet, if you want to do more complex stuff,learn memory management etc. learn C++
Yukidasu
Profile Blog Joined September 2009
Australia125 Posts
Last Edited: 2011-06-25 01:59:46
June 25 2011 01:58 GMT
#5
I've been to the ACM world finals and done heaps of other IOI type competitions.

If you're going into competitive programming you want to learn C. C++ has some useful additions that eventually make things easier, but you don't need them right away. Java is also ok but it's a slight disadvantage due to speed, it's not as easy to do simple things like input, and it's fairly similar to C anyway. Other languages are generally not allowed in competitions.

Learning Linux is good, you could also install cygwin and get the linux shell + compilers from windows without having to reboot or stuff around with partitions. It's good to learn with the whole thing though. Alternatively, Dev-c++ is decent and easy to set up.

Good luck!
Lost in a groundless dream. You can't fly if there's nowhere to fall.
huameng
Profile Blog Joined April 2007
United States1133 Posts
June 25 2011 02:00 GMT
#6
If you want to do IOI I think C++ is your only (reasonable) option. Only c++, c, and pascal are allowed as far as I know, although I've only read about it.
skating
XXGeneration
Profile Blog Joined November 2010
United States625 Posts
June 25 2011 02:07 GMT
#7
On June 25 2011 10:58 Yukidasu wrote:
I've been to the ACM world finals and done heaps of other IOI type competitions.

If you're going into competitive programming you want to learn C. C++ has some useful additions that eventually make things easier, but you don't need them right away. Java is also ok but it's a slight disadvantage due to speed, it's not as easy to do simple things like input, and it's fairly similar to C anyway. Other languages are generally not allowed in competitions.

Learning Linux is good, you could also install cygwin and get the linux shell + compilers from windows without having to reboot or stuff around with partitions. It's good to learn with the whole thing though. Alternatively, Dev-c++ is decent and easy to set up.

Good luck!


How do you propose I learn C? Should I find books?
"I was so surprised when I first played StarCraft 2. I couldn't believe that such an easy game exists... I guess the best way to attract people these days is to make things easy and simple." -Midas
oxidized
Profile Blog Joined January 2009
United States324 Posts
June 25 2011 02:17 GMT
#8
I took the chem olympiad one time like seven years ago. I don't remember specifics, but I remember nothing being out of reach for an AP chem student. Basically if you know your chemistry, you should be fine. The best way to practice for this type of test is to take a bunch of practice tests and study up on your weaknesses.

Because it's the chem olympiad, there's going to be some random knowledge questions which you cannot rely on always knowing the answer to. The best way to go about those is to make an educated guess based on periodic trends, etc. (Don't remember if they penalize for wrong answers).

Good luck

On June 25 2011 10:27 EtherealDeath wrote:
Learn programming by making random projects for yourself and learning along the way.

This is pretty much what you should do. I learned programming by making programs to do my math homework for me. Obviously go through a couple tutorials for basics, but then you should have a goal for each project (like automate a solution to a math problem) - and then solve it. You can't learn without doing random programming projects.
Chimpalimp
Profile Joined May 2010
United States1135 Posts
Last Edited: 2011-06-25 02:29:46
June 25 2011 02:28 GMT
#9
I have learned C++ (By learned, I mean I've programmed with C++ for about a year. But you never really fully learn a language) and I would definitely recommend it, its a great language to start with as it lets you touch on a little of everything, and is fairly useful to know overall. C is also a good language to know, but its a bit of a pain. As for learning C or C++, a textbook wouldn't be a bad idea, but I don't think its totally necessary. A textbook is great to have for reference, but the internet is a much more useful tool. I would recommend trying out the MIT open coursework, and finding a decent professor's online notes. Those would be good staples to learn whats going on, and then use online references such as cplusplus.com.

Programming is a cool subject because everything you learn, you can actually do, and put it to good use. Thus the best way to learn programming, is to program. Just find a bunch of projects a professor posted online, and try it out.

As for using linux just to learn programming, while it is useful, I don't think its totally necessary. You won't really tap into the advantages of linux until you are an experienced programmer, windows or mac os will do fine until then.
I like money. You like money too? We should hang out.
blankspace
Profile Blog Joined June 2010
United States292 Posts
June 25 2011 02:33 GMT
#10
Wow if you're starting on chemistry this early, surely you'll be able to make the top four team in two years or even next year (not that many people compete in chem). From what I've heard, just work through some good textbooks carefully.

For IOI, I never did it but I think you need to learn graph theory and algorithms.
Hello friends
Yukidasu
Profile Blog Joined September 2009
Australia125 Posts
Last Edited: 2011-06-25 02:36:45
June 25 2011 02:35 GMT
#11
On June 25 2011 11:07 XXGeneration wrote:How do you propose I learn C? Should I find books?


It depends. If you haven't programmed much before, a lot of what you'll learn is how to think about things formally, which applies to any language. You'll learn that with any good book, but I'd recommend learning with specific goals (I want to solve this problem!). I'd say get on to train.usaco.org as soon as you know the basics and just work on things. You can probably find basic tutorials online.

Feel free to pm me if there's anything specific you want to ask

edit: Chimpalimp makes some great suggestions.
Lost in a groundless dream. You can't fly if there's nowhere to fall.
SleepTech
Profile Blog Joined December 2010
United States222 Posts
June 25 2011 03:23 GMT
#12
I learned C and C++ by messing around with text games, or Multi-User Dungeons (MUDs). I pretty much just taught myself, although I don't know if I would suggest this in that most of the text games out today probably aren't the best written forms and you'll probably learn bad habits. I've been programming on a game since 2004, but it's definitely fun and interesting.

But for me, it's all recreational, I never meant for it to be a job, just a hobby.

I'm not sure what your wants are for it.
Incanus
Profile Joined October 2009
Canada695 Posts
Last Edited: 2011-06-25 03:49:25
June 25 2011 03:44 GMT
#13
If you're going to learn from in an unstructured setting, C and C++ would be horrible choices. It's ridiculously common to come across bad practices in these languages, and unless you have a guide attempting to learn them will only hinder your programming knowledge. Besides, they are both uninspiring languages to beginners (apart from the fact that so many popular programs are written using them).

Java would be a significantly better language to learn. Speed is not an issue because:
1) Java is nearly as fast (and faster in certain cases) as C++.
2) Java is safer than C and C++, which makes speedy debugging (ie. within time limited contests) more doable.
3) In programming contests, it's often only the asymptotic behaviour (or at least some large constant based on your algorithm's implementation) that matters.

Better than Java, would be to learn Python, which is more likely to be benefitial to your programming skills. It is also great for writing contests with more flexible math functions and rapid prototyping. There exists a great knowledge base for it as well.
Flash: "Why am I so good?" *sob sob*
affinity
Profile Blog Joined October 2007
United States266 Posts
June 25 2011 03:53 GMT
#14
Google has great courses on Python and C++
http://code.google.com/edu/languages/index.html

2-5 hours is more than enough to learn programming, but IMO learning a language because of a project you have in mind > learning the language just for kicks.
Vinnesta
Profile Blog Joined April 2010
Singapore285 Posts
Last Edited: 2011-06-25 04:14:40
June 25 2011 04:11 GMT
#15
Not to intentionally be a wet blanket, but casually learning computer programming with the hopes of entering IOI is a far-fetched dream. IIRC, only high school students are allowed to enter the IOI, which gives you 3 or 4(?) years to fully master programming AND learn advanced mathematics (relative to high school standards). Among my friends, the only ones who got into IOI were those who had intensively studied programming and mathematics for about 4 to 5 years before getting a chance to enter the Olympiad. Thus, unless you are a genius with IQ of over 180 or something, choose either the chemistry or informatics Olympiad, and dedicate yourself to it fully.

As others have already said, C++ is the most universally accepted algorithmic language at this level. It may help to have some experience with C, but learning C++ from the get-go shouldn't be a problem. However, remember that the programming language is only a tool to process your ideas. What distinguishes mediocre programmers from the best is their problem-solving ability. Ultimately, IOI is a test of your mathematical and logical skills in solving questions. Fluency with programming language can improve your efficiency and allow you to write a more elegant solution, but without the ability to solve questions, programming skills are useless. For example, look at these past paper questions:

Flood (IOI 07)
Sails (IOI 07)

There is almost no aspect of programming being tested in the problem, and an intelligent person without any experience in programming could probably solve it. If you still want to participate in an informatics competition after all that I've blabbered on about, good luck and remember to hone your problem solving skills (try doing those two examples!)
Same difference is not an oxymoron!
roflpie
Profile Blog Joined April 2010
Estonia93 Posts
June 25 2011 04:51 GMT
#16
Don't you be a pussy and start with Python or Java, that hide the more complex stuff from you. Starting with C and moving on to C++ will help you understand computers better and once you know C++, you can pick up most of the other languages easily. You could start straight with C++ aswell, there's a great free book with sample code: "Thinking in C++" by Bruce Eckel. http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
igotmyown
Profile Blog Joined April 2009
United States4291 Posts
June 25 2011 05:04 GMT
#17
If you're completely on top of everything you can learn in AP chemistry, most of the Chemistry Olympiad shouldn't be a problem. If you know everything, you'll get every problem right (right?) Then again, if you you don't get some of the stuff, you shouldn't be taking it.

They do have some content that is not in AP chemistry (maybe 5%). That includes some Organic Chemistry and something else, which I thought was kind of unfair... But you can still do well enough.

In my opinion, the hard part of making the team is the lab portions in the later rounds.
v3ctor
Profile Joined May 2011
Canada53 Posts
June 25 2011 05:13 GMT
#18
On June 25 2011 13:11 Vinnesta wrote:
There is almost no aspect of programming being tested in the problem, and an intelligent person without any experience in programming could probably solve it. If you still want to participate in an informatics competition after all that I've blabbered on about, good luck and remember to hone your problem solving skills (try doing those two examples!)


That's not completely true, the sails problem requires use of some fairly complex data structures if you want to solve it completely (with their time/memory limits) In general, for these competitions there's a repertoire of algorithms that you'll need to learn and remember - and more importantly, remember how to code within the contest time. So although the code required isn't complex from a language feature point of view, it's still pretty intricate and requires a fair amount of practice.

Most IOI problems can be solved with less than 100 lines of code, so yes, programming skill is definitely not the limiting factor. If you're serious about practicing for these competitions, it's essential to practice all the various types of problems that can show up - a poster above mentioned train.usaco.org, and that's probably the best place to go first. You should try some of those problems and see if you're still interested before pursuing it any further (as it really takes a lot of dedication and practice if you want to qualify, especially for the US team)
Servius_Fulvius
Profile Joined August 2009
United States947 Posts
June 25 2011 05:43 GMT
#19
On June 25 2011 10:10 XXGeneration wrote:
I'm just going into 9th grade and I've studied chemistry from textbooks that my brother had when he was in high school. I've also taken the year 2000 and 2001 local exams for this test, scoring a 39 and a 45 respectively. Now I'm going through this large book from Schaum's, consisting of "3000 solved problems in Chemistry" in an attempt to "mass-problems".

Any advice is much appreciated.


That's a LOT of solved problems. I'm not sure if "solved" problems should be the ones you're looking for. Yeah, you can check your work and see if it's right, but you gain no confidence in solving a problem when you can't check and see if it's right. It's much more valuable to learn how to think, so if you MUST used the solved problems make sure you do a bunch of them and talk over the theory and problem-solving before you check your work.
Incanus
Profile Joined October 2009
Canada695 Posts
June 25 2011 06:56 GMT
#20
On June 25 2011 13:51 roflpie wrote:
Don't you be a pussy and start with Python or Java, that hide the more complex stuff from you. Starting with C and moving on to C++ will help you understand computers better and once you know C++, you can pick up most of the other languages easily. You could start straight with C++ aswell, there's a great free book with sample code: "Thinking in C++" by Bruce Eckel. http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

Typical of beginner C++ programmers to think that complexity is a measure of the depth of a language. You don't gain nearly as much understanding (of computers, algorithms, or programming) by learning the 50000 quirks of your language as you would by learning 2 or 3 vastly different (and simpler, more elegant) languages or by studying a good algorithms book.
Flash: "Why am I so good?" *sob sob*
1 2 Next All
Please log in or register to reply.
Live Events Refresh
Monday Night Weeklies
16:00
#18
RotterdaM1307
SteadfastSC592
FunKaTv 481
IndyStarCraft 335
kabyraGe 194
BRAT_OK 162
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 1307
SteadfastSC 592
FunKaTv 481
IndyStarCraft 335
BRAT_OK 162
EmSc Tv 18
StarCraft: Brood War
firebathero 150
yabsab 15
Backho 11
Shine 10
Dota 2
Gorgc8925
Counter-Strike
fl0m1995
flusha528
Heroes of the Storm
Liquid`Hasu394
Other Games
tarik_tv69239
gofns37096
FrodaN2150
ceh91028
C9.Mang0657
mouzStarbuck236
Fuzer 135
Mew2King125
KnowMe101
RushiSC68
ProTech48
UpATreeSC28
trigger2
Organizations
Dota 2
PGL Dota 2 - Main Stream17229
StarCraft 2
EmSc Tv 18
EmSc2Tv 18
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 22 non-featured ]
StarCraft 2
• StrangeGG 20
• LUISG 19
• Reevou 4
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• Kozan
• LaughNgamezSOOP
StarCraft: Brood War
• Michael_bg 9
• Eskiya23 4
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota2898
• WagamamaTV403
• Ler112
League of Legends
• Jankos2856
• TFBlade1389
Other Games
• imaqtpie1561
• Shiphtur353
Upcoming Events
Replay Cast
4h 27m
RSL Revival
14h 27m
Cure vs Percival
ByuN vs Spirit
PiGosaur Monday
1d 4h
RSL Revival
1d 14h
herO vs sOs
Zoun vs Clem
Replay Cast
2 days
The PondCast
2 days
RSL Revival
2 days
Serral vs SHIN
Solar vs Cham
Replay Cast
3 days
RSL Revival
3 days
Reynor vs Scarlett
ShoWTimE vs Classic
uThermal 2v2 Circuit
3 days
[ Show More ]
SC Evo League
4 days
Circuito Brasileiro de…
4 days
Sparkling Tuna Cup
5 days
Liquipedia Results

Completed

Proleague 2025-06-11
2025 GSL S2
Heroes 10 EU

Ongoing

JPL Season 2
BSL 2v2 Season 3
BSL Season 20
KCM Race Survival 2025 Season 2
NPSL S3
Rose Open S1
CSL 17: 2025 SUMMER
Copa Latinoamericana 4
Murky Cup #2
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25
BLAST Rivals Spring 2025
MESA Nomadic Masters
CCT Season 2 Global Finals
IEM Melbourne 2025
YaLLa Compass Qatar 2025
PGL Bucharest 2025

Upcoming

CSLPRO Last Chance 2025
CSLPRO Chat StarLAN 3
K-Championship
SEL Season 2 Championship
Esports World Cup 2025
HSC XXVII
Championship of Russia 2025
RSL Revival: Season 1
BLAST Open Fall 2025
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.