Saturday, February 23, 2019

Course Order Recommendations

I just posted this on reddit and thought anyone who finds these posts would want to know it as well. So here are my course order recommendations for WGU's BSCS program. They're more for students without a prior background in Computer Science topics.

  • Network and Security Foundations - I don't recommend taking this early but it will often fall into the first term without your input. There aren't any other courses that will help you pass this one. The only upside to this course is, Security will be cake by the time you're done.
  • Fundamentals of Information Security - if you managed to transfer in Networking, congratulations! This one should be easy and can be saved for when you need an easy course. If you had to take networking, you might as well get this one done while the info is fresh.

... This group is pretty much your introduction to programming. I would take these three in this order if I had to do it over again. They don't need to be taken back-to-back. Feel free to shove any general ed between them as needed.
  • Data Structures and Algorithms I - this used to require Software I first but most mentors have relaxed this rule due to a lot of feedback from people like me ... if they're giving you trouble, mention me, rofl
  • Scripting and Programming Applications - DSA1 is a better introduction to programming than this course, I highly recommend taking that one first
  • Software I

  • Discrete Mathematics I - This can be taken as early as after Calculus I, though some prefer to take both DM's back-to-back. It's a stand-alone course for the most part though I don't see the point in learning the trees segment without knowing the contents of what you learn in DSA1 first.

  • Discrete Mathematics II - working out the pseudocode in this course is really rough if you haven't worked with real code before which is why I recommend taking all the courses in the intro to programming group beforehand. The algorithms part is more difficult than the questions you get in DSA1 so review those notes if you were able to pass while skimping those topics.

  • Data Management Foundations
  • Data Management Applications
  • Structured Query Language
  • Software II - this project requires a lot of SQL. I had a lot of SQL experience so I took these early to get them out of my way. For those of you who don't, it makes sense to learn it right before putting it to use in this course without giving yourself time to forget it. I don't think it's necessary to take Software I close to it. Those with programming experience is more likely to take them back-to-back to avoid switching between languages but as beginners, we're already doing that.

  • Data Structures and Algorithms II - this can be taken either before or after the Software II group of courses. It's a matter of preference. I moved this later because I wanted more pieces in place before taking it on --being the most heavily tested topic in technical interviews. Also, if statistics is in your degree plan, be sure to take that before this one!

  • Introduction to Artificial Intelligence - this can be moved to anywhere after DSA2 because it is a prerequisite.

  • Computer Architecture - Don't take this before Discrete Math I. Take it any time after the intro to programming group. It may have been helpful if I waited until after Software II ... I recommend attempting to read Chapter 3 before deciding whether or not you want to take it after the Software II group. It references a lot of coding topics and issues that was difficult for me to integrate at the time.
  • Operating Systems - I recommend taking this one right after Computer Architecture because a lot of those topics are revisited. The main challenge of this group is getting through the technical jargon. This specific course is easy if you can get passed the reading and translate it into proper English. Attempt a random paragraph in any chapter to see what I mean. It will be helpful to review those networking notes. If WGU didn't insist on having Networking so early in the degree plan, I'd recommend the three back-to-back.

  • Technical Communication - not everyone will have to take this course and it's not necessary to take it later, though it is more useful if you take it close to capstone

  • Software Quality Assurance - kind of an odd course that isn't hard but it has very little room for error. You can take this earlier but it's easy to miss cut if you don't quite have all the pieces in place. I recommend taking it any time after Software II.

Today I am thankful for Amazon and my Amazon friends. May you become more than that to me again some day. 

Monday, February 18, 2019

Heading Back

My term break is nearly over and I was able to complete the reading for my remaining courses; there's one book left but I'll have that done before March 1st. 

I originally planned to work on programming more but I found myself having to look for more work and it took a few weeks to land the position I wanted. Luckily, working on programming seemed to become less necessary as I worked through my reading to fill in the blanks. At least I noticed that I was able to complete SoloLearn for Java with much greater ease than C++ and I expect Python to give me even less issues. 

I'm working full time and I don't expect that to change at all in the next few years. So finishing BSCS in another term might be a bit of a stretch. I figure if anything, I should be able to complete all but capstone and then complete capstone a few months into the new term. I still want to apply to Georgia Tech in September since completing a BSCS is not actually necessary to get in. 

I still want to earn my CPA so if Georgia Tech doesn't happen, that's where I'm headed next. And if GT does happen, I'll work on the CPA afterward. 


Saturday, November 24, 2018

C949 Data Structures and Algorithms I and C960 Discrete Mathematics II

I had to complete C949 Data Structures and Algorithms I in my quest to find the other side of C960 Discrete Math II. On the way, I ran into Jay Wengrow's Common-Sense Guide to Data Structures and Algorithms and Harvard's CS50 course. I highly recommend both for anyone dipping their toes into Computer Science. Things would be different had I been able to go through those first. But once I managed to collect all the pieces missing from the C960 book, I was able to crush it with a final score of 82%.

I'm taking a three-month term break now. I have to learn to program so I can stop having to play catch-up all the time. At least this way I can do it without having to pay WGU tuition.

I am thankful for my term break. I really needed it!


Thursday, November 1, 2018

Math Dreams

My math dreams are over. WGU requires a teaching degree to enter their program so I will not be spending next semester fleshing out my math background.

I did make it to Phase 1 of the Pytorch Scholarship Challenge so I am considering taking a term break to focus on that for a few months.

In the mean time, I am still working on Discrete Math II. I passed the preassessment to Data Structures and Algorithms I with a 90% so I'm feeling confident about algorithms and am also more proficient in reading pseudocode than before. I just need to finish going through the rest of the Discrete Mathematics II book again.

Lately, I am grateful for cold brewed coffee. It's keeping me awake through my early study sessions.

Monday, October 1, 2018

Prerequisites

Being a beta tester for WGU's BSCS program is taking its toll. I'm finding that Data Structures and Algorithms I should have been a prerequisite for Discrete Math 2. I went through the materials just fine and learned the content of the book. But a lot of the questions included things that were in the Data Structures book rather than the Discrete Math 2 book. Many other colleges have it as a prerequisite and whomever wrote the Objective Assessment likely assumed as much.

So I'm taking a break to go through the Data Structures materials. I wanted to take it before Discrete Math I but wasn't allowed because Software I is listed as a prerequisite. I think I'm grumpy, learning how much not being able to take that course set me back.

I figure I'll need Software II and Data Structures II before I qualify to apply to CS internships again and I'm aiming to get through those and apply to Georgia Tech by September 1st. That will require me to work on CS topics while I get through math next term. I figure once I complete two math courses in the month I'll devote the rest of the month to working on CS courses , developing projects, and writing my GT application essays.

This is my wish list for next term:


Probability and Statistics I
Calculus I
Calculus II
Linear Algebra
Probability and Statistics II
Mathematical Modeling and Applications
Abstract Algebra
Calculus III
Advanced Calculus

I may get credit for the first two but I'll want to review those before digging into the other courses.

I am grateful that the secondary math program has been around long enough to have an established course structure with proper materials.

Thursday, September 6, 2018

C952 Computer Architecture


I found the other side to Computer Architecture. I had to take a crash course in C to understand the examples and find my way through assembly language. I got it done with Bucky's help again -

This crash course in Assembly Language was also a good overview. 

Rabbit hole syndrome was real with this course, especially until I decided that I had to get comfy with C. Why wouldn't they say something like that? Seriously! Hopefully the course will come out with a study guide along with some C and ARMv8 cohorts at some point.

I am grateful for another year. It was a good year. 

Friday, August 24, 2018

Over My Head

I swear discrete math is easier than computer architecture. It's one of those things where you need to know a bunch of things to fully appreciate what you're learning but the only way to learn those things is to have already finished the course or similar subject matter.

Things haven't quite come together yet. I joined BSCS to learn how to program but most of the courses seem to assume I already know that somehow. Even books in assembly programming expect me to already know C ... Maybe I should just learn C before coming back to this course.

I am thankful that I live in a time when the sources required to fill in knowledge gaps are readily available and affordable (if not free). Thanks, YouTube!