3
$\begingroup$

I've been searching for a detailed definition about what computer science is about for years, when one day I came across these two documents: Computing curricula 2005 report and Computer Science Curricula 2013. The latter, more importantly, lists the knowledge areas and their relative content that an undergraduate student in computer science should know. The content of each knowledge area is divided in core-topics and elective-topics.

What I want to ask is:

1) What exactly are the knowledge areas? Are they the fields of computer science where Ph.D. students can focus their research? If yes, then how about architecture and organization (AR)? Isn't it the knowledge area where only computer/electrical engineers can focus their research?

2) Is this curricula applicable worldwide or does each country have its own?

3) Some topics are elective. How can I study the elective topics I'm interested in since my university didn't have enough time and resources to teach them?

Any answer will be appreciated.

$\endgroup$
1
$\begingroup$

The professional societies publish Curriculum Guidelines simply to guide universities in setting undergraduate curricula. They may be used by anyone, anywhere, but are not, normally, required. Note that the societies are private membership organizations, not official bodies. You can join them if you wish, but there are membership fees, normally less for students.

The guidelines are created periodically (say every decade) by volunteer committees and try to represent a consensus of professionals. Each version goes through several published preliminary versions that anyone can comment on. The comments are considered by the committee.

The goal of the committee is to design a "model curriculum" that is appropriate for either advancement to graduate school or to industry employment if a student has, at least, most of the knowledge implied.

It is not, in general, a guide to PhD study, but those starting a doctorate should already have solid background in all of the areas of a model curriculum.

Some university CS programs are accredited by ABET, which has its own expectations for curriculum as well as faculty standards, etc. This is a bit more official, but still not required. ABET is another private organization.

If your university doesn't have courses in some area, you can ask them what can be done to "fix" that. You can also seek instruction in the missing areas through private instruction, another university, or online courses.

$\endgroup$
0
$\begingroup$

1) What exactly are the knowledge areas? Are they the fields of computer science where Ph.D. students can focus their research?

These are outlines of undergraduate courses. The document is descriptive, not proscriptive. A Ph.D. should be about expanding the field in some form, so while it could be within one of the areas outlined in the document, it certainly does not have to be.

If yes, then how about architecture and organization (AR)? Isn't it the knowledge area where only computer/electrical engineers can focus their research?

Absolutely. This would be something to consider with your own PhD advisor.

2) Is this curricula applicable worldwide or does each country have its own?

The documents listed were based in the USA, and as I mentioned, they are merely descriptive. If more programs were studied, there would undoubtedly be more (and more varied!) curricula.

It seemed to me that there was quite a lot of heterogeneity already in those documents.

3) Some topics are elective. How can I study the elective topics I'm interested in since my university didn't have enough time and resources to teach them?

Textbooks are wonderful resources. There may also be coursework in places like Udemy or Coursera. And, of course, finding resources or looking over curricula are always on-topic here at CSEd, so that is one more resource available to you.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.