I greatly appreciate the effort you've put into helping me out. If I knew you in real life I would give you a gift.
I think your first two points make the most sense for me. Dropping out and picking an entirely new course carries too much uncertainty. What if I end up disliking it more than my current course? Then I'm screwed.
I've decided I'm not going to change course. I'm going to try and make this work. I've been reflecting about this all day. All of this is my fault, not the course. I've been sleeping until 12pm at times, missing some tutorial classes and early morning lectures. Apart from freshers week I haven't made a continued effort to socialise with people, maybe I should become more easy going about things. My bad habits are what thats set me back and I've been looking for a scapegoat. I need to be real with myself, I'm not a kid anymore I'm 20 years old
Even if I find out I still hate programming. Doing CS doesn't mean I have to be a programmer there are many more career opportunities out there for CS graduates. I'm almost half way through my degree there's no point stopping now. If I got a first last year I can do it again and again.