How can a Poli Sci undergrad with a CS minor improve their chances for a CS masters program? I'm a PS undergrad with a minor in CS that's 22 credit hours and covers most, if not all, masters pre-reqs that I've seen. The only issue I forsee is that I will only be taking one semester of calculus.

I'm only a sophomore, but I have a 3.78 GPA and I believe I will maintain it at minimum above a 3.5.

I go to a school with an incredibly strong engineering program (where CS is housed), and although I've realized I want to pursue research in CS and/or work as a programmer, it's incredibly difficult to switch into engineering at my school if you did not start in it. 

So, with a major in PS and a 22 hour minor in CS covering most essential topics, what can I do to stand out from other non-CS applicants?
In my experience, those who come from non-CS undegraduates to CS grad studies are often missing some key things, and having those things will definitely help you succeed:


Know graphs back and forth. Make sure you're comfortable with the main terminology (edge, path, degree, connected-component, bfs, dfs, cycle, etc.) and the main operations on them. They are literally everywhere in CS. Other discrete math will help (especially sets and relations), but graphs really are key.
Make sure you're comfortable with induction. A discrete math class might help with this, but even if you don't know number theory or combinatorics or relations, induction pops up everywhere in CS, and knowing it will help.
Make sure you've taken a Systems class. Concurrency, threading, interrupts, caching, memory management, etc. These are hard concepts to wrap your head around, and they can pop up in many places. Knowing these could save you weeks of debugging slow or incorrect parallel code, and in this day and age you're probably going to have to do something in parallel.
Make sure you know basic software engineering. I've seen plenty of people who can write correct code, but it is terrible to read. Learn about functions, classes, modules, etc. Learn to document your code. Learn to separate your code into functions and modules, so that you can share it and maintain it.
Knowing a bunch of languages isn't the most important thing, but I'd make sure you know the basics of at least two languages from different programming paradigms. For me, the main paradigms are Typed Imperative (C, C++, Java, Go, C#), Untyped Imperative (Python, Ruby, JavaScript, PHP), Typed Functional (Haskell, ML, Elm, F#), Untyped Functional (LISP, Scheme, Racket, Clojure, Elixr), and Logic (Prolog, Datalog, Mercury, miniKanren). Basically, you want to avoid going into grad studies thinking there's only one way to program. Once you've got two significantly different languages, picking up more shouldn't be that hard.


More "practically oriented" classes are tempting, because they seem, well, practical. They have fun hands-on projects with flashy results. But knowing the fundamentals will make it possible for you to teach yourself things in graduate studies, and once you're into grad studies, you will be teaching yourself new things every single day.