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.

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/

Thanks, it does seems like recently they've been translating more of the editorials into English. There are still small differences — for example, even the most recent contest editorial had some short explanation before the code solution for questions A and B in the Japanese version, whereas the English translation only included the code.

There is a tutorial series by HackerEarth called "Code Monk". I believe it has the best possible ordering of topics required for competitive programming. If you are a beginner, it is the best place to start, and if you are an expert, you can use code monk for revision of concepts and further improvement.