In no particular order:<p>- Find out which courses at your university require lots of coding, and make sure you take those. Often these will be known as some of the hardest courses in the department (although some hard courses are more theory-focused). Those classes will be your most direct preparation for the work you'd be doing if you took a job as a software engineer.<p>- Identify the smartest/most talented students who are in your classes, and look for opportunities to work with them. You don't necessarily have to be social friends, but you should aim to work on problem sets and group projects with them if possible. When you're working with them <i>do not</i> skimp and let them do all the work - put in the best effort that you can, so that they enjoy working with you. You'll learn a lot from them, and they will be a core part of your professional network after you graduate. Later in your career when you're looking to switch jobs, your former classmates will be happy to endorse you when you apply for a role at their company (and vice versa).<p>- Office hours are underutilized, and tend to be frequented by students who are asking for extra credit, deadline extensions, etc. For each of your professors, read their web page and skim some of their publications to get an idea of their research area. If the topic interests you, then come up with some questions to ask, go to office hours, and ask them. You will broaden your knowledge of CS, and you never know when something you learned this way might be useful in the future. Learning firsthand from experts in the field is a rare opportunity, and you don't even have to be graded on it. If you're particularly interested in the topic, it's normally pretty easy to get involved in research as an undergrad, since you you cost basically nothing.<p>- Make sure you take Linear Algebra, because it's really useful for stats, ML, etc. and it's a pain to learn by yourself.<p>- Don't forget to have fun! Get involved in 1 or 2 on-campus clubs or organizations with people that you enjoy spending time with. This doesn't have to be CS-related - any shared interest works well, whether that's outdoor activities, literature, sports, theater, photography, etc.