Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestion(s) for a general and comprehensive Syllabus for a computer science curriculum for a new programming language? #1098

Closed
ylluminate opened this issue Nov 12, 2022 · 3 comments

Comments

@ylluminate
Copy link

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.

@ylluminate ylluminate changed the title Suggestion(s) for a general Syllabus for a computer science curriculum for a new programming language? Suggestion(s) for a general and comprehensive Syllabus for a computer science curriculum for a new programming language? Nov 12, 2022
@waciumawanjohi
Copy link
Member

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?

  1. It seems clear that you want them to be able to program fluently in the programming language that you've chosen.
  2. You also mention "comprehensive... computer science" which is a lot. That covers some topics that don't involve writing code (e.g. ethics). It also involves domains that are addressed by very different programming languages (e.g. machine language dealing with memory addresses vs high level languages dealing with functions).

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.

@ylluminate
Copy link
Author

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.

@waciumawanjohi
Copy link
Member

Closing this after 1 month of no activity. Good luck with the curriculum development. Please let us know when it's complete!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants