The UMD CS department is currently ranked #15 nationally so there are bound to be some very interesting and useful courses here. Here are 10 of the very interesting ones. They unfortunately may not be offered every semester.

### 1. CMSC131A – Object-Oriented Programming I

This is a pretty unique course because it is not like the regular CMSC131/132 chain. You cannot take the regular CMC132 after this class. You have to take CMSC132A. But taking CMSC131A and CMSC132A teaches you basically the same concepts as CMSC131/132. Another thing is that the course is not taught in Java.

### 2. CMSC132A – Object-Oriented Programming II

A continuation of CMSC131A. Both courses are offered as a test program suitable for non-majors as well.

### 3. CMSC250 – Discrete Structures

A required course but an interesting one at that. This course will allow you to prove by contradiction the primes are infinite among other things. You will learn mathematical induction, one of the most important ways to prove something is true for all values that something can take on.

### 4. CMSC289I – Rise of the Machines

A very fun course on the rise of machines and the challenges they may bring. The course asks the simple question, “Can machines behave like humans, and if so, is that dangerous?” You will solve fun logic puzzles and discover ways machines can solve them too.

### 5. CMSC122 – Introduction to Computer Programming via the Web

What’s a useful skill everyone should learn how to do? Build your own website of course! And this course will show you how! No programming experience is required and also open to all majors.

### 6. CMSC216 – Introduction to Computer Systems

Your first glimpse of a programming language other than Java! You’ll learn C, a language that is used in place of assembly in many applications. Also you’ll see more of how a computer does calculations (as number streams!).

### 7. CMSC320 – Introduction to Data Science

Ever wonder how data is transformed into something meaningful? Then this course is for you! You’ll discover the processes of machine learning and data mining.

### 8. CMSC398C

What is Bitcoin? Why is it so valuable? You’ll find out in this course on cyptocurrency and why governments around the world are trying to shut it down.

### 9. CMSC398E

Who knew Minecraft could be used to teach logic? Well Redstone does just that. You’ll be using Redstone to design logic gates. How cool is that?!

### 10. CMSC425 – Game Programming

Ahh yes. The one class everyone wants to get into. Game Design. The whole course revolves around making a computer game. You’ll learn how to program AI and basic game physics as well as the basics of game design.

Hope you will have the chance to check out some of these courses. Even if you’re not in the program, there are still some that you can take!