Columbia and MIT
Your Strengths -- SAT MATH & SAT2s
Your Weaknesses -- GPA may be a bit low, SAT CR is a bit low.
ECs look fine, publishing may help.
Bringing up the SAT-CR would help. However, at this stage, there's little you can do about the grades. I'm assuming that your GPA puts you in the top group at your HS, but not very top (i.e., valedictorian or close).
Shot at MIT/Columbia
First -- it's interesting that you list these two schools. Though they are the top choices for many, in a lot of ways it's curious. I think that the schools may offer very different educational experiences -- MIT more science focuses student body, Columbia more general student body. I would advise looking into this and deciding whether you prefer a "Technical Institution Approach" or a "University Approach". There is no right/wrong here, but you are likely to find a difference and a preference (My D applied to engineering schools last year and this was major factor for her).
Now, as to your chances look at some facts -- Last year Columbia's overall acceptance percentage was about 6.4% (though engineering was a bit higher -- 9.9%. MIT's admit percentage was about 9.7% Columbia College admit rate drops to 6.4 percent MIT Facts 2012: Admission
Putting this into context -- the vast majority of students who 'have a shot' will not get admitted to either school.
With this in mind -- yes, I think you have a 'shot'. However, each would be considered 'reach' schools.
You might want to add Cornell. (IMHO (as a Cornell Alum) better engineering school than Columbia), Carnegie Mellon, Lehigh, Michigan, Northwestern, Rochester and maybe Wash U. -- to your list. All have higher admit percentages, but are excellent schools. I'm sure there are many others too, these just come to mind quickly. Also you'll definately need some safety schools (none of these are pure safeties).