RFC: Uphold Curricular Categories
An interesting proposal. Some notes:
-
The CS2013 states, "CS2013 should provide the greatest flexibility in organizing topics into courses and curricula. Knowledge areas are not intended to describe specific courses. There are many novel, interesting, and effective ways to combine topics from the Body of Knowledge into courses." While we use the CS2013 as guidance for course selection and evaluation, the guidelines do not expect that students must complete all of a knowledge area at once.
-
We do structure OSSU:CS to facilitate students working through the courses in order. "For simplicity, we recommend working through courses (especially Core CS) in order from top to bottom." Students often reach out for advice on course ordering, there is evidence that this prescriptive approach benefits students.
-
The RFC states "The following curriculum structure its proposed to address the problem:" but what follows includes many changes to the curriculum that go beyond the curriculum's structure, courses have been added and courses have been removed. Opening an RFC on a single issue allows contributors to have focused conversations. If you would like to propose different courses for a topic, please break those out into separate RFCs.
Responses to your notes:
-
Exactly, Knowledge Areas are not intended to describe specific courses, but that doesn't mean that a KA cannot be used as guided categories for courses. The courses in the KA row cover mostly Knowledge Units from that KA, but they also have KU from other KA, institutions do not publish courses from 100% one single KA, they incorporate topics from multiple Knowledge Areas since every KA is linked to each other. Thus when a student completes courses in a KA row he has completed most of the KA but not all of the KA at once like you inaccurately assumed.
-
OSSU courses keep changing, its needed in order to respond to a rapidly changing field. Having stablished categories and knowledge areas will provide clear, implementable goals and flexibility. There are diverse successful approaches to introductory courses in computer science, many introductory courses in universities programs, OSSU and this proposed categorical organization focus on the topics in Software Development Fundamentals together with a subset of the topics in Programming Languages.
-
Thanks for the suggestion, I added a note at the bottom of the RFC to avoid confusion, and focus on the single issue of the curriculum's categorical organization.
-
"Knowledge Areas are not intended to describe specific courses, but that doesn't mean that a KA cannot be used as guided categories for courses." With this in mind, can you elaborate on the problem that this RFC is targeting? The change you propose would rearrange all courses for students; what benefit will OSSU students gain from this disruption?
-
"like you inaccurately assumed" This sentence fragment is unwelcoming. When I write a request for comments, I remember that I am asking others to take time and energy to give me feedback and to collaborate with me. I work hard to phrase my responses in a way that reflects that.
-
"I added a note at the bottom of the RFC to avoid confusion" "Courses included are my personal preference and are meant as an example to fill the column, if the proposed organization by Category and Knowledge Area is accepted, the courses will be changed to match the specific ones that OSSU has made available at that time." Can you remove the information that is not relevant to the RFC from the RFC? When presenting something complicated, it is better to simplify it, rather than to tell reviewers to ignore the complication.
-
A category and KA organization enjoys many benefits for students:
- The overview layer of the 3 dimensions tables present a representative summary of computing KA, providing a clearly articulated vision and sample high-level well understood consistent vocabulary for computing knowledge, rooted in the collective wisdom of the different computing communities, to enable work towards a plausible competency goal. (The amplified current curriculum with its irregular vocabulary in its outline is harder to digest, restraining work towards a feasible learning outcome. [Concepts that have 3 different levels of abstraction are presented in the same level e.g. the theory dimension is presented at the same layer as the math category and the security knowledge area.])
- Having 7 categories on a second layer is expansive and important for the curriculum constituents (e.g., students and prospective students) to contrast different types of computing programs to aid in their awareness of how one computing discipline (e.g., computer science) differs from another computing discipline (e.g., computer engineering). (Most of the computing categories are not present at all on the current curriculum, preventing learners from comparing disciplines.)
- Having an 18 granular KA layer makes the composite curriculum more adaptable, flexible and agile, to adjust in response to change and capture future trends and developments in courses from the industry. (It is easier to capture change with 18 KA than with the 8 multilevel subjects in 1 layer that OSSU currently has.)
- Disciplines interrelationships demonstrate that clear differences exist between the KA and that they all have distinguishing characteristics that are essential for their individual identities. (All the interrelationships between the KA are not present in the current OSSU layout.)
- Focusing on a category and a KA helps students see how they are progressing, and helps them highlight gaps in their knowledge. (Students can see they are progressing on the current OSSU curriculum but they cant spot the gaps of knowledge in each KA they are leaving behind.)
- With clear, specific, unadorned, and concise learning objectives that are measurable, students can identify where they require more emphasis lifting their confidence by showing them the existing knowledge they have to finish a task. (Learners cant put emphasis on a more granular KA since the curriculum is organized mostly in a higher level of abstraction.)
- The encyclopedia of computing knowledge that has accumulated with the efforts of the knowledge area, knowledge unit, learning outcome model over the last half-century provides a rich foundation upon which to develop computing competency catalogs for the various subdisciplines of computing education. (The absence of a KA organization provides a poor foundation for the current course catalog to be developed.)
- Adopting a coherent competency model to define the CS curricula will more clearly promote describing a computing competence in a practical context shifting the focus of curricula away from describing a body of knowledge in relation to a disciplinary area toward pragmatic student accomplishment. (This proposal has 3 levels of coherent organizational abstraction [Dimension, Category, and KA], currently OSSU has different levels of abstraction laid out in one single level, inhibiting the student to shift to a more pragmatic context.)
-
My bad, I wasn't trying to be unwelcoming, like I said in the third bullet of my previous comment I'm thankful for your suggestions and I appreciate your feedback, but I have to point out that the statement you made "students must complete all of a knowledge area at once." is false. Even though courses in the KA row will mostly focus on that KA, completing courses on a KA row doesn't mean students have completed ALL of the KA at once. In fact, courses made by institutions are not one-to-one correspondence with a particular KA, published courses incorporate topics from multiple Knowledge Areas. Therefore after finishing a course in a KA row learners will still work on that KA on the following courses, inversely to how they worked on multiple KA when doing a course focused on a particular KA.
-
Interesting opinion, but I don't believe showing examples of courses complicate things, on the contrary, I think it helps people visualize a solution, the same way examples in a math problem are relevant and benefit learners rather than make a complication. Besides the title is clear, the problem is short and concise, and the Proposal's statement is redundant and straightforward for ease of understanding of the single issue of the curriculum's categorical organization.
Interesting discussion, 2 thoughts and consequent alternative to consider
- Based on questions/discussions I see in discord my hypothesis is that topological order benefits students more than KAs.
- I do believe there is merit to showing how the OSSU curriculum maps to CS2013 KAs because it helps learners to understand the big âchunksâ in CS, and allows them to determine where the curriculum is rich on content and where potential gaps are.
- As an alternative to consider: add a mapping of the current OSSU courses to KAs on the OSSU page where curricular guidelines based on CS2013 are presented (https://github.com/ossu/computer-science/blob/master/CURRICULAR_GUIDELINES.md)
Great idea @wybrenl , adding the categorical organization table as a mapping section on the CURRICULAR_GUIDELINES.md will provide the benefits previously mentioned to learners, without being disruptive, which @waciumawanjohi was concerned about.
I made a prototype posted in the following comment, if it's approved ill change the courses to the current ones available in OSSU.
Curricular Guidelines
Our curricular guidelines are from the reports of the Association for Computing Machinery and the Institute of Electrical and Electronics Engineers: Curriculum Guidelines for Undergraduate Programs in Computer Science (CS2013) and Computing Curricula 2020: Paradigms for Global Computing Education (CC2020). These reports are the most recent in a series of such reports outlining the expectations of undergraduate degrees in Computer Science. The reports outline critical Knowledge Areas and topics within them. They drill down further to outline specific learning goals, going so far as to outline what concepts a student must be able to explain vs concepts a student must be able to demonstrate using in practice.
Organizations publishing
Association for Computing Machinery
The Association for Computing Machinery (ACM) is an international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional membership group, with more than 100,000 members as of 2011.
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers (IEEE) is a professional association formed in 1963 from the amalgamation of the American Institute of Electrical Engineers and the Institute of Radio Engineers. As of 2018, it is the world's largest association of technical professionals with more than 423,000 members in over 160 countries around the world. Its objectives are the educational and technical advancement of electrical and electronic engineering, telecommunications, computer engineering, and allied disciplines.
Categorization
This summary of computer science Dimension/Category/Knowledge Area/Knowledge Unit/⢠Topic represents a well-understood and consistent vocabulary with composition at an exceedingly high level of abstraction as illustrations of plausible competency specifications.
Theory Develop effective ways to solve computing problems.
| Math |
|
|
Soft. Fundam.Empirics
|
|
Py4e, Intro to CS & CS50Prerequisites:none |
|
||
|
||
|
||
|
||
|
Systems Devise ways to use computers.
Sys. ModelingPragmatics
|
|
Databases & Data AnalyticsPrerequisites:none |
HardwarePhyisical
|
|
|
Sys. Infrast.SemanticsMeanings, propositions, validity, truth, signification, denotations |
|
|
|
Bits and Bytes NetworkingPrerequisites:none |
|
|
||
|
||
|
Applications Design and implement software.
Users & Org.Social World
|
|
Project ManagementPrerequisites:none |
Software Dev.Syntactics
|
|
|
|
(UX) User Experience DesignPrerequisites:none |
|
|
It appears to me that the whole entire approach to the redesign is to arrange it in such a way that it makes it plain to see we've checked all the boxes in CS2013. That's a good quality control check but it does not improve the curriculum.
OSSU isn't a mere course listing. It's a curriculum. Curricula have opinions not only on what is presented but also when it is presented.
So the problem with this approach is there's no direction on how to take the courses or in what order. It's not reasonable to assume that one will deep-dive all of the Systems courses before taking any of the Applications courses. Just like there's no reason one needs to do all the Math courses before doing any of the Science courses in a Physics degree, for example.
I think the best use of a deep-dive such as the one you've presented is as an internal auditing and course selection tool. Not as a front-facing curriculum update or curriculum supplement.
The good news is there has been need for an internal auditing and course selection tool. A course competencies matrix has been envisioned for some time, but hasn't been executed as of yet. Would you be willing to consider assisting with the development of such a tool?
- @bradleygrant I agree, it should not be a front-facing curriculum, the current amplified topological arrangement can stay, I'm not proposing to remove it. But why not add another point of view? It's like having a To-do List with the option of viewing it as a Kanban Board too. A powerful perspective that would only benefit learners rather than hinder them.
- Besides exactly as you mentioned, having it directly on CURRICULAR_GUIDELINES.md is the perfect tool to make it plain to see if all the boxes in CS2013 and CC2020 are checked, also good for quality control.
I should note that CS2013.org has a ready made spreadsheet for evaluating curriculum coverage. As Bradley Grant states, OSSU should carry out an evaluation of the curriculum against this spreadsheet. I've had some ideas knocking about regarding how to approach the effort. It's not a trivial undertaking.
Having such an effort live on the curricular guidelines page makes sense.
I'm don't think the structure above will give us the granularity that will be necessary for that review. I'll give as an example Introduction to Computer Science and Programming Using Python. It's an early course in the curriculum, and so we expect it to cover a fair bit of Software Development Fundamentals. But it also does a good amount of work covering data structures. A thorough review will get into this level of granularity.
With a thorough review complete, OSSU would then be in a great position to communicate that coverage to students!
I haven't looked too deeply into the proposal (yet), but is there a reason why we need to choose one option over the other? Could we not keep the curriculum organization as-is for students to know in what order to go through them, but also add this as an extra view of what is covered by OSSU?
- Exactly @waciumawanjohi, I agree that congruency between levels of granularity is important. Thats why ⢠Topic below each Knowledge Unit dropdown was added.
- In the example you mention with Intro to CS you can see the corresponding knowledge units you cited Fund. Prog. Concepts and Fund. Data Structures bellow the
SDF - Softw. Development Fundam.dropdown. And now you can see the specific topics like ⢠Arrays when you dropdown each knowledge unit. - @Exkywor correct, the proposal is the TO BE for CURRICULAR_GUIDELINES.md, the README.md can stay AS IS.
Absolutely YESS, This's pretty neat to the current and good for new fellow, i even struggled when i picked Software Engineering Path and searched a lot to know what courses from the circular I should take.