I’ve been dabbling in systems management and programming since I received my first computer – a Commodore VIC20. Recently (2014), I’ve found myself with a little bit of free time so am going through some books I got cheap at a sale a couple of years ago. They are to freshen me up/get my brain in the mood for the “Poor Human’s Bachelor of Computer Science” that follows.
The books I’ll concentrate on will be the Idiot’s Guide (a very simple programming primer) and, Learn Java Now, From C to C++ and The Undocumented PC. Depending of the chosen electives, some of the above texts might not be utilised.
AguppieWare & A University Level Free Online Computer Science Education
According to AGuppieWare, one can get a college (that’s university in Australia) level computer science education by utilising free online resources.
I’ve always been a bit of a computer nerd, but besides studying Pascal at university. I’ve not received any formal education. I’ve done it all myself and taught myself Basic 7.0 as a teen, dabbled with computer graphics overlaid on analogue (using the C64) and digital video (using modern software and a PC), made some music with eJay, learned html and css in my 20s-30’s and currently I am having a go at C++.
My Bachelor of Science gives me the following learning credits:
- Intro Calc Methods
- Math Methods II
- Introduction to Computers
- Computer Programming 1A
Let’s say the AGuppieWare detailed course requires 16 credits to graduate with each subject contributing 1 credit upon passing. Thus I have 5 credits of the 16 needed.
The link above lists the following as a “course” suitable to get a semi formal education (this is a direct cut and past for literally educational purposes).
Where’s there’s an option, the one(s) chosen by me are in green bold. I will be doing each subject separately.
Intro to Computer Science,:
- CS106A Introduction to Computer Science and Programming Methodology: Stanford. 28 lectures and 23 weeks worth of study/assignments. Focused on Java using ACM libraries. Started 30/03/2017 – Finished 06/07/2017. 14ish weeks
- CS106B Programming Abstractions (Second Course in Unit): Stanford. 27 lectures and 10? weeks worth of study/assignments. Teaches/discusses C++. Started 07/07/2017 – Finished dd/mm/yyyy.
Basic mathematics, pick one of two:
- Mathematics for Computer Science: MIT . Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Discrete Mathematics: ArsDigita
Prior learning takes case of this, but I’ll do the MIT course as it’s a good refresher and specific to Computer Science.
Data Structures and Algorithms, pick one of two:
- Introduction to Data Structures and Algorithms: UNSW. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Introduction to Algorithms: MIT
- The UNSW seems to be better based on subject name. When I get to this I’ll compare both as by this stage I’ll already have done at least one MIT subject.
- Operating Systems and Systems Programming: Berkeley. Started dd/mm/yyyy – Finished dd/mm/yyyy.
Programming Languages and Methodologies:
- CS107 Programming Paradigms: Stanford. Started dd/mm/yyyy – Finished dd/mm/yyyy. CS106B is a prerequisite.
- Computer Architecture: Carnegie Mellon. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Fundamentals of Computer Networking: Manhattan College. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Introduction to Data Communications: Thammasat University. Started dd/mm/yyyy – Finished dd/mm/yyyy.
Cryptography and Security:
- Introduction to Cryptography: Ruhr University. Started dd/mm/yyyy – Finished dd/mm/yyyy.
Electives (pick 5 of these) I might pick more.
- Building Dynamic Websites: Harvard
- Advanced Data Structures: MIT. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Computer System Engineering: MIT (possibly)
- CS223A Introduction to Robotics: Stanford. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Principles of Programming Languages: IIT (possibly)
- Introduction to IT Security: Thammasat University
- Security and Cryptography: Thammasat University (possibly)
- Bilinear Pairings in Cryptography: BIU (possibly)
- iPhone Application Development: ITU (possibly)
- Android Application Development: ITU (possibly)
- CS193P iPhone Application Development (Stanford)
- Artificial Intelligence: HRW
- Artificial Intelligence: Berkeley. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- Computer Graphics: Berkeley (possibly)
- Statistics and Probability: Harvard
- Probabilistic Systems Analysis and Applied Probability: MIT. Started dd/mm/yyyy – Finished dd/mm/yyyy.
- CS229 Machine Learning: Stanford. Started dd/mm/yyyy – Finished dd/mm/yyyy.
Of the electives, I’ve picked five and am thinking of doing an additional seven. Why? For more knowledge and I’m interested.
The plan is to undertake this course of study and document my process.
When I ceased being an unemployed drain on society, I archived this and did a great job of safely storing all but the Idiots Guide… and Java Server Pages book. I need to reorganise my storage to find the rest and get stuck into this again.
In the meantime, in 2016 and 2017, I did some courses as they were supposedly 95% off full price of around $1500** related to this sort of thing which has enthused me again:
- Certified Ethical Hacker (CEH)
- Certified Information Systems Security Pro (2016) (CISSP)
- Certified Information Systems Auditor (CISA)
- Certified Information Security Manager (CISM)
- Computer Hacking Forensic Investigator (CHFI)
** I likely fell for the marketing ploy of make something appear to be great value so people will be more inclined to buy it. That being observed, the courses were quite interesting and worth the $49US I paid for them. What “they” did not tell you was these were preparatory courses and did not lead to any real certification. Just like the rest of the poor human’s computer science diploma/degree.
“Poor Human’s Bachelor or Computer Science” begins.
Something like this might be useful to ratify skills: http://www.sciencealert.com/sciencealert-offer-five-online-course-bundles-to-diversify-your-computer-skillset