Hi Everyone,
So I'm about to graduate from a program in Canada that is essentially a triple major between electrical engineering, physics, and math (math counted as a minor degree). I have only made the decision to want to pursue a research environment (particularly a PhD) late in my second last year after working in a research lab and finding the aspect of research in computer engineering/applied math (particularly machine learning, AI, and digital logic) absolutely exhilarating. Unfortunately, my performance in the first 3/5 years in my undergrad have been less than stellar (~75% cumulative GPA).
I've been trying to develop a strong background in research by obtaining research experience (I have currently one 3rd author journal publication and am working on another) and in by performing much better in my last two years (my 4th year GPA is around 85% and my final year GPA is around 92%, GREs were Q170, V160, 4 in writing). I have been able to perform better in advanced versions of previous courses I have performed poorly on (e.g. 80% in control systems and 100% in advanced signals and Shannon theory). As it stands, when I graduate, my cumulative GPA will be around 80%.
I would very much like to pursue a research-based graduate degree (especially with several groups in computer engineering/computer science at top universities such as Stanford, Berkeley, Washington...), however, I am not sure what my best form of approach is. I understand that I will be shadowed by my previous poor performance and as much as I am confident that my final year is the most representative of my ability, hiring committees are likely to choose the student with a 90% average consistently than one who has climbed up to 90+. So, I was hoping to gauge a few questions for any opinions:
Should I aim for top tier schools immediately? Or should I try to gather more research experience to "prove myself"? Or should I aim to pursue groups in other schools?
Will admissions consider that my program is particularly strenuous? (consistently 8 full courses a semester, compared to the 6 or 7 that regular engineering programs or the 4-5 that computer science programs require)
Should I retake my GRE? Particularly to get a higher score in verbal and writing?
How should I approach potential supervisors explaining my passion, target research area, and justification of my potential without sounding like I'm giving excuses for my past performance?
What are my chances in general? I know it is getting more and more competitive and wanted to know how bad of shape and if it's a good idea to do post-bac work to improve my profile.
I've had internships at a research engineering company (did a bunch of data analysis) and one in software, would this help me at all?
Any advice or opinion is greatly appreciated! Thanks for reading!