IEEE Computer Society provide curriculum guidelines for
undergraduate degree programs in Computer Science (2013), Software Engineering (2014) and Computer Engineering (2016).
The curriculum is specified in "lecture hours", but the Computer Engineering curriculum (p. 23, 2016) points out other forms of instruction are feasible:
"This report does not seek to endorse the lecture format. Even though we have used a metric with its roots in a classical, lecture-oriented form, we believe that other styles can be at least as effective, particularly given recent improvements in educational technology. These include forms such as flipped classrooms, massive open online courses (MOOCs), blended learning, pre-recorded lectures, and seminars. For some of these styles, the notion of hours may be difficult to apply. Even so, the time specifications serve as a comparative metric, in the sense that five core hours will presumably take approximately five times as much time or effort to address as one core-hour, independent of the teaching style. "
The "Computer Science Curricula" (p. 52, 2013) discusses the use of specialist teachers, however, no mention is made of what qualifications they should have to teach:
"Permanent faculty, whose primary criteria for evaluation is based on teaching and educational contributions (broadly defined), can be instrumental in helping to build accessible courses, engage in curricular experimentation and revision, and provide outreach efforts to bring more students into the discipline."
Interestingly the "Computer Science Curricula" (p. 53, 2013) goes on to recommend the use of undergraduate teaching assistants, but again there is no mention of what teaching skills they require, or the concept of teaching as a specialization for a computer professional:
"While research universities have traditionally drawn on postgraduate students to serve as teaching assistants in the undergraduate curriculum, over the past 20 years growing numbers of departments have found it valuable to engage advanced undergraduates as teaching assistants in introductory computing courses. The reported benefits to the undergraduate teaching assistants include learning the material themselves when they are put in the role of helping teach it to someone else, better time management, improved ability dealing with organizational responsibilities, and presentation skills [4, 6]. Students in the introductory courses also benefit by having a larger course staff available, more accessible staff, and getting assistance from a “near-peer,” someone with a recent familiarity in the kind of questions and struggles the student is likely facing."