I second Istvan's approach, but I would make changes to the courses.
First you will probably need to learn basic programming. "Programming I" has a fantastic syllabus (in line with Imperial's great reputation in the field): that is exactly what you want from an introductory programming course: not something "practical"/"obvious", but something that structures your thought in a correct way. 120_1 has a really fantastic reading list. Learning a new programming language is SIMPLE as long as you structure your reasoning correctly. Haskell and Prolog are the best for that! After you suffer them you will get any of the others easily. Also, it seems to be (very correctly) a pre-requisite to all others.
Programming II might be a good complement to that. Clearly a more standard approach (OO/Java).
After these two courses above you will pick Python/C++/Perl/whatever in no time. It does not work the other way around. Haskell and Prolog really bend your mind.
Software Engineering - Algorithms would be the next one.
In parallel you might want to consider Databases I.
These would be my four suggestions.
Remember: more important then learning the fashionable skill of the day is structuring your thought correctly. It is a steeper learning curve, but it will payoff.
In any case, kudos to Imperial for such a great MEng structure.