Closed ylluminate closed 1 year ago
From a pedagogical perspective, my first piece of advice would be to clarify your goal. What is it that you want students to know/be able to do?
Will the one programming language be the best (or even an adequate) language for learning every one of these topics? (I'll suggest the answer is no; if one language sufficed there wouldn't be multiple languages!)
If you accept that premise, that you can teach the full CS curriculum in multiple languages or you can teach a subset of the curriculum in one language, which goal will you pursue?
As for more general advice, we take our curricular guidance from one of the same sources that universities do; the ACM and IEEE. You can read more about that here. And if you're interested in other efforts similar to OSSU, you can read about some here.
Thanks very much - appreciate the input. The language in question is very C-like in scope (as a matter of fact it generates and interoperates with C presently while native generation is in progress), but is syntactically of a "higher order" similar to Go and Python and incorporates ideals found in Rust such as memory safety and Go-style green thread concurrency (WiP). It's able to be used for systems level dev / OS dev (currently has an OS in progress), embedded dev all the way to web, game, UI, and ML+scientific computing dev (each of these has been developed and there are libs at various stages for each of these so far).
So yes, I'm going to be covering basic introductory level coursework that is traditional for a first year programming course or course series, but then will move into data structures and advanced topics... however I'm not really feeling the need to cover non-language centric topics such as ethics.
So yes, it is in fact a dreaded "silver bullet language" that covers all domain spaces - and does so well... 😸 But I don't see a reason to elaborate on this further since we could go down quite the rabbit hole.
So yes, I want to pursue the full scope of comp sci. I do want to break off at a certain point and offer other paths. For example, ML will be its own curriculum vs rolling it into the general CS topic so as to treat it clearly and such that someone who has some level of CS background can just jump into it.
Closing this after 1 month of no activity. Good luck with the curriculum development. Please let us know when it's complete!
First, THANK YOU for your wonderful project and work here! It's wonderful to see such an effort dedicated to helping folks obtain a full computer science experience as you have done!
I'm working on pulling together a curriculum / comprehensive course outline for computer science in a relatively new programming language. I started to review and collate ideas/concepts from the list of courses found here on this site, but upon digging in found that many of the suggested courses themselves are missing concise curriculum syllabi.
My goal is to develop a comprehensive outline that naturally flows from introduction to programming on up through data structures and additional advanced topics that may be of interest. There will be other courses in ML, game dev and so forth as time progresses, but I feel like a solid start and offering in CS would be the best thing to flesh out over the next year or so.
Does anyone have a suggestion for such a full spread of topics to cover with sufficient detail so as to create a sane and approachable / friendly (eg, not overly long sections that make sense and feel right) coursework?
I'm fine with looking at and reviewing multiple / many syllabi so as to create a fused comprehensive treatment, but I'm hoping that with your fantastic experience and expertise that I might be able to get some meaningful input that will prevent me from misstepping along the way.