by ModernMech | 2025-05-25 19:13:20+00:00
Awesome collection of resources! Although:

After completing the requirements of the curriculum above, you will have completed the equivalent of a full bachelor's degree in Computer Science. Congratulations!

Is not strictly true. I've been part of CS program accreditation, for example:

https://www.abet.org/accreditation/accreditation-criteria/cr...

The program outcomes for a CS degree accredited by ABET is:

Graduates of the program will have an ability to: 1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions. 2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. 3. Communicate effectively in a variety of professional contexts. 4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. 5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

Really, this list of resources only speak to #1 and #2. A little bit of #4, but it seems to be an afterthought in the list of resources. However, self-study is not going to get you #3 and #5 at all. Typically in order to fulfill these requirements, the curriculum would include much more than just the technical topics listed.

Indeed, OSSU says that included courses must "Match the curricular standards of the CS 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science"

I'm familiar with this document. It includes this:

The education that undergraduates in computer science receive must adequately prepare them for the workforce in a more holistic way than simply conveying technical facts. Indeed, soft skills (such as teamwork, verbal and written communication, time management, problem solving, and flexibility) and personal attributes (such as risk tolerance, collegiality, patience, work ethic, identification of opportunity, sense of social responsibility, and appreciation for diversity) play a critical role in the workplace. Successfully applying technical knowledge in practice often requires an ability to tolerate ambiguity and to negotiate and work well with others from different backgrounds and disciplines. These overarching considerations are important for promoting successful professional practice in a variety of career paths.

The reason I'm saying this is because often times, an undergraduate I'm advising will come into my office with a schedule of 12-15 credits of tech/math/science. They will explain to me "I only want to take technical courses, I don't see the purpose of taking courses in English or History, they are a waste of time." And I get that, I felt that way in school too. I thought those courses were preventing me from learning CS, but it was only after I left school when I realized all those "soft" courses I had taken actually prepared me to face the challenges I would in CS.

So I will continue to watch this resource, because I love a good compendium. But I would say they should not say what they provide is "equivalent of a full bachelor's degree in Computer Science" because even the standards they say they are trying to meet indicate they fall short.