What Path Should LUMS CS UnderGrads Follow
After writing down what I did to get to this point, I felt I should give a rough guideline for what I feel is the ideal path for a LUMS CS undergrad (with some obvious assumptions, I cannot be naive enough to believe this will work perfectly as it is for anyone).
I think I should repeat the disclaimer, this is by no means a end-all-be-all guide nor a strict ruleset. It is based solely on my experiences; what I did and what I wish I did. Every person has their unique circumstances, abilities, strengths, passions, and interests. I assume the subject likes CS and is aiming for a career in this feild.
Feel free to reach out to me if you value my opinion and want to talk about your unique situation.
Freshman Year
I am usually a strong supporter of taking courses early, especially core CS courses so you have a stronger understanding and have more time to perfect the fundamentals. There are lots of great oppurtunities in LUMS for a proactive student. However, thread carefully in freshman year, lots of CS majors who are later very comfortable in CS found themselves questioning their major choice in freshman year. For me, taking AI in soph year was when I found myself in way above my head in a CS course. It’s pretty easy to get scared of and demotivated from CS if you take the wrong course too early.
That said, there are some people who take CS200 in the Spring semester of their freshman year and have no issues. Confirm if that is possible or not anymore because CS200’s prereqs show Sophomore standing in the latest student handbook. Another drawback of not following the freshman set pattern is the annoying courses like Physics lab are ones you’re inevitably going to skip on if you take some other course. Take it from someone who has gone through this, these freshman courses are much worse when you’re the only senior in a lab full of over-enthusiastic freshman.
So relax a bit in freshman year, get your bearings in LUMS, and just focus on your current courses.
Sophomore Year
This is where things get interesting and you can play around with your courses. The handbook suggests you take the SSE elective (non-CS 200+ level course from SSE) this semester. That is one you can drop in favor of a more interesting/useful course. A major elective would be a good idea, but take care that with CS200 and CS225 (both are programming assigmnents heavy courses), you don’t overburden yourself with too much CS. Maybe take the free elective from spring of soph in fall of soph so that you can take a proper major elective in spring of soph and have just 15 credit hours to worry about.
Focus on stengthening your CS fundamentals in this year. You wont learn any more ‘basics’ after this.
Shifting CS225 and CS300 to sophomore year was a good decision in my opinion. It moved some substance to sophomore year and opened up junior year for more major electives. Major electives are courses designed (theoretically) in a way with projects etc. that students can carry on and maybe convert into their Sproj. It is essential then that you take atleast one major elective in each semester of junior year to be able to carry one on into your sproj.
However, if you want to get ahead of the pack, and this really matters in my opinion, you need to focus on what you do in the summer between your soph and junior years. I suggest working with a professor during the summer but for that you need to prove you have the required skills/knowledge. The major elective you take in your soph year spring is really important for this.
Try to take Netcentric computing in soph year as well. That is usually the basis by which Sir Ihsaan keeps soph interns at NSG. Sir Fareed also prefers if you have taken Netcentric early.
Summer between Soph and Junior
I consider local industry internships not worthwhile at this time for a number of reasons. Firstly, you probably don’t have the required experience to be useful to them, so what you’ll get is usually less-impactful and critical work. Secondly, interning in the local industry will give you a leg up when you want to apply for a job here, but it wont help you if you want to work in the international industry. Lastly, working with LUMS professors at this point will move you ahead of the pack and enable you to use the professors considerable network to get a better internship next summer.
So if you are a day-scholar, the best thing is to find a professor who’s work you find interesting (even remotely) and keep bugging them for work during the summer. They will probably give you small tasks to test you and slowly move you onto real projects. Do not slack off at this point. At the end of the summer you should have made significant contributions in research projects and should hopefully have an idea of how research works.
If you are a hostelite, I would still suggest you stay back in LUMS for the summer and follow the above. But I realize it might not be possible for some, so you should prepare (properly, not use this as a excuse for slacking off during the summer) for GRE and technical interviews at international companies. You should get the GRE out of the way at the end of the summer so you can focus your junior year and later on other more important things.
Preparing for the companies is good because then you can start applying as soon as junior year starts. The hiring process starts around October depending on the country. Show instructors like Sir Fareed and Sir Junaid that you have properly prepared and they can get you a referral in companies. Hopefully, if you’ve prepared well enough (get mock interviews to judge how well your prep is) and get referrals in multiple places, you can bag a summer internship at one of the big tech companies.
I want to stress again on what I think is the best thing LUMS has to offer for a CS major. It is the direct interaction and work you can do with professors. They are probably the best resource you’ll have in terms of networking and oppurtunities. There are very few places around the world that allow you to conduct undergrad research on such high profile projects.
Junior Year
If a PhD is what you want (you should have an idea of how research work is and if you want to do it at this point), try to get a publication as soon as possible. That is the only metric by which impact and usefulness of research work can be gauged. Aiming for a publication doesnt mean you are running after only publications with no regard for actual academic values and work, but do keep in mind that a publication at a good venue is one of the sure shot ways to get yourself noticed for post grad applications.
On the other hand, if you are aiming for the industry, use all your resources and do all efforts to get interviews at the tech companies. Talk to every single instructor to see if they can get you referred. And above all, make sure you are prepared for when you get the opportunity.
Take good major electives and try to get in-depth expertise in atleast one area. Hopefully if you took major electives in soph year as well, you can take each good major elective that LUMS has to offer, making sure that you get the most CS knowledge from your undergrad.
Summer between Junior and Senior Year
Now if you have an internship lined up at a good company, just do your best at it and apply for conversion to a full time position when the time comes. Professors will be delighted if you land an internship and a job at the big companies so you don’t have to worry about other work.
Otherwise, you can either get an internship in the local industry or you can work with a LUMS professor again. If you want to go for post grad studies, I would suggest just doing research, regardless of whether you want to do a PhD or MSc. Having good research work and hopefully a publication under your belt will allow you to get RAships and TAships for your MSc, helping you fund it too. Research obviously helps for a PhD application.
Another benefit you get by working in the last summer before senior year is that you can relax during senior year and focus on your applications GRE etc without worrying about SProj and recommendations.
Remember, one excellent recommendation and two decent recommendations are better than two good and one decent recommendation. So I would advise working with the same professor over both your summers as well as during the year. This means the professor will have two years worth of things to talk bout in your recommendation. The other recommendations could come from professors you have taken major electives with projects in them, and that should be enough. Otherwise, TA a course you did well in and get a recommendation from that professor.
Senior Year
Focus on your SOP, GRE, and general application stuff. But keep applying for jobs if you intend to join the industry. If you get a job, excellent, otherwise aim for a Masters at a great place and you’ll have the option to choose wherever you want to go from there.
If you have worked with your Sproj supervisor for the past summer or so, they shouldn’t have much expectations from you and you can focus on the other things.