I'm trying to improve my competitive programming skills here on Codeforces, but I often lack the basic knowledge of algorithms and data structures required to solve problems on competitions, even the easier ones.
I need an online course that will teach me the basic algorithms, data structures, and competitive programming techniques necessary for competitions.
What is the best such course available online?
there is a course on edX by ITMO university , search it unfortunately, no such other courses exists as of now, not a formal I mean, However , you can still try these materials provided in stanford's Competitive programming course , these are just materials and not a proper course like you asked , but its the closest one... materials
Also , you can try camps that happen in your country for better results!
Thanks. The edX ITMO course seems to have an Online Judge and many problems to solve together with the material to solve them — exactly what I'm looking for. The last session just ended last week, but I can still access the materials and online judge in archive mode.
Not exactly an online course but tehqin has a video series in which he goes over competitive programming topics. The stuff he covers is useful for both beginners and people with a bit more knowledge. http://algorithms-live.blogspot.com.co/
This is the best book I know. Also, atcoder beginner and regular contest editorials can be a gold mine for beginners ^^
Is atcoder.jp a good website for a Western beginner who doesn't know Japanese?
It seems to be a Japanese website, and the editorials seem to be written in Japanese and only partially translated to English?
I haven't encountered any editorials from atcoder with no English translation yet :) So at least recent contests all have editorials in English :)