What is This?

This list is a review of the classes I’ve taken for my degree in computer science. Many self taught programmers don’t have degrees in computer science and might wonder what they’re missing. This list should give you insight into what you can expect if you pursue a degree, and hopefully give you the tools you need to pursue the same material for free on your own.

Summary

When I complete the degree I will have taken 16 classes. I believe four were the core of what I knew I was missing when I went into the degree, they are bolded below.

The three math classes were necessary prerequisites, I’m not upset I had to take them but don’t think an aspiring computer scientist necessarily needsĀ calculus, statistics might be a more relevant topic at this point.

I’m disappointed I had to waste time and money on two Java classes, I wish a more relevant language like Python or Javascript was chosen instead.

The discrete structures/logic class was interesting but UMUC did a terrible job with the material.

If you are working as a programmer the intro to problem solving and database class is a very simple introduction, just practice your SQL query skills and you’ve basically achieved what this course does.

The Class List

I will update some of these classes with relevant course materials and free online courses that give you as good or better information than what I received for my tuition. UMUC uses 100% free open source textbooks so I will include links to those as well, though in most cases MIT, Coursera, and edX have better material available overall.

 

  1. MATH 115 – Precalculus
  2. MATH 140 – Calculus I
    1. Book
    2. Videos
  3. MATH 141 – Calculus II
    1. Book
    2. Videos
  4. CMIS 102 – Intro to Problem Solving And Algorithm Design
    1. Book
    2. Projects
  5. CMIS 141 – Introductory Programming (Java)
    1. Book
    2. Projects
      • Hello World, 99 Bottles of Beer Command Line, Student Grade Calculator Command Line
      • Free Comparable Classes
  6. CMIS 242 – Intermediate Programming (Java)
    1. Book
    2. Projects
      • Java Salary GUI, Java ATM GUI, Java Recursion Calculator GUI, Java Student GPA Calculator GUI
    3. Free Comparable Classes
  7. CMSC 150 – Intro to Discrete Structures (Basic Logic)
    1. Book
    2. Projects
      • All Homework, Translate Text to Logic Statements, Translate Logic Statements to Text
    3. Free Comparable Classes
  8. CMIS 310 – Computer Systems and Architectures
    1. Book
    2. Projects
    3. Free Comparable Classes
  9. CMIS 320 – Relational Database Concepts And Applications
    1. Book
    2. Projects
      • Basically write UML Diagrams of Tables, Write SQL Queries, Seed Databases, Query Databases
      • Very elementary stuff, just practice SQL
    3. Free Comparable Classes
  10. CMSC 350 – Data Structures and Analysis
    1. Book
    2. Projects
      • Java GUI Infix Expression Evaluator (use Stacks), Java GUI Create Postfix from Infix Expression (build a tree), Java GUI Sort List (use Binary Search Tree), Java GUI Compiler from File (Build Directed Graph, Hash Table, Depth First Search)
    3. Free Comparable Classes
  11. CMSC 330 – Advanced Programming Languages
    1. Book
    2. Projects
      • Program Parses GUI Using Recursive Descent, C++ Add Functionality Based on BNF Grammar Provided
    3. Free Comparable Classes
  12. CMSC 335 – Object Oriented Concurrent Programming
    1. Book
    2. Projects
      • Gradually Building 4 Part Project, Program To Manage Sea Ports and Ships – Java GUI (Progress Bar, Visualizations, Map), Multi Threaded, Pools, Blocking Threads, Search
    3. Free Comparable Classes
  13. CMSC 405 – Computer Graphics
    1. Book
    2. Project
      • Simple Java GUI with Java2DGraphics, Simple SVG, Java OpenGL, three.js, WebGL 3D
    3. Free Comparable Classes
  14. CMSC 412 – Operating Systems
    1. Book
    2. Projects
      • Spawn and Manage Threads, Implement Banker’s Algo, Implement File System, Implement FIFO, LRU, OPT, LFU paging algos
    3. Free Comparable Classes
  15. CMSC 451 – Design and Analysis of Computer Algorithms
    1. Book
    2. Projects
      • Evaluate And Use Various Algorithms
    3. Free Comparable Classes
  16. CMSC 495 – Current Trends and Projects in Computer Science
    1. Book
    2. Projects
    3. Free Comparable Classes