How to Supplement the St. John’s CS Program

At the time of this writing, there are some things missing from the St. John's University computer science curriculum. I don't want to be at a disadvantage to other CS grads, should I have to join the workforce. You probably wouldn't either. Luckily computer science is a field where demonstrable skill (largely) trumps formal schooling. We can fill in the gaps.
(Image credit - BabyNerds)
(Image credit - BabyNerds)

What's missing?

Take a look at the requirements for CS majors at St. John's, then compare those to Syracuse or most other programs. You'll notice a lack of:
  • Discrete math
  • Parallel computing
  • Computer architecture (present but optional)
  • Algorithms (present but optional)

How to supplement

Most anything from my studies can be found online - and the same is true for absences. Here are some suggestions. You can otherwise use an MOOC aggregator for these topics.

Discrete math

Discrete Math A, Discrete Math B - these are from an Italian university but available in English se non puoi parlare italiano. Self-paced, start anytime. Bonus: Mathematics for Computer Science - SJU doesn't have its most competent faculty teaching CS math topics, let's put it that way.

Parallel computing

Heterogeneous Parallel Programming - from University of Illinois at Urbana-Champaign. Parallel Programming - possibly a more advanced offering, from MIT.

Computer architecture

Computer Architecture - a Princeton course. I recommend against taking this at SJU.

Algorithms

Algorithms: Design & Analysis Part 1, Part 2 - both from Stanford via Coursera.
(Image credit - BlenderGuru)
(Image credit - BlenderGuru)

Closing

There are holes in the St. John's CS program that could leave graduates at a disadvantage. Hopefully in the future 9 mandatory credits of theology might be swapped for algorithms or parallel computing coursework. Until then - happy learning. Will make an edit if I post notes from these.