theory concerning design and analysis of algorithms
and to master a programming language.
Consequently, there are several necessary previous
curricular foundations for multi-core programming
curriculum, including Computer Composition
Principle, Operating System, Compiler Principle,
Design and Analysis of Algorithms, C language, and
so on. Multi-core programming curriculum is
usually offered to senior undergraduate or
postgraduate.
2.2 Non-figurative Theory
The theories of multi-core programming are more.
Multi-core program is mainly realized by a multi-
thread way on CMP. When realizing multi-core
programs, there are four questions or challenges
faced by parallel programming designers, and they
are multi-thread synchronization, multi-thread
communication, load balance and programming
scalability, which are also the kernel of multi-core
programming. (Shameem and Jason, 2006)
Nevertheless, students often mention that it is bald
and abstract to understand its theories and that it is
especially difficult to apply them during factual
programming. By this phenomenon, we must arouse
their enthusiasm and positivity in an example style,
which will be explained in the next section.
2.3 Needing Programming Practices
The theory must be applied finally in the practice,
and the theory is improved only by the practice.
According to this principle, for understanding the
nonfigurative theory of multi-core programming
concretely, it is necessary to adopt a practice way.
During the actual teaching, explanation in an
instance way can promote students’ intellect, and
programming practice by students themselves can
enhance students’ operating ability. Ultimately,
students can master the kernel of multi-core
programming in a high effective style.
2.4 Support of Hardware and Software
Multi-core programming must be developed based
on multi-core hardware and corresponding software
environment. Therefore, the support of experimental
environments is necessary to multi-core
programming curriculum. But multi-core computer
is not popularized to each senior undergraduate
student. So, many universities have built multi-core
labs for further promoting the laboratorial conditions
of multi-core teaching at present.
3 A TEACHING SCHEMA
In this section, we present a teaching schema of
multi-core programming curriculum on its specific
characteristics and our teaching practice, aiming at
the senior undergraduate students having learned
previous curricula. Our expectant teaching purpose
is that students can be interested in multi-core
programming, master its kernel, and establish multi-
core programming foundation for their future work
or study. Our schema detailed in the following pays
attention to arousing students’ enthusiasm and
positivity, showing instance demos and improving
students’ consciousnesses of optimizing multi-core
programs.
3.1 Arousing Students’ Enthusiasm
and Positivity
To whatever curriculum, including multi-core
programming, students’ study enthusiasm and
positivity is closely relative to the final study
efficiency. For multi-core programming curriculum,
we must firstly make students know its necessity and
importance before they study the concrete content.
In our schema, it is reached by answering two
following questions.
Is it to study multi-core programming?
Can the efficiency of application be improved
by multi-core programming?
3.1.1 Studying Multi-core Programming is
Necessary
Many questions can certainly be preferably solved
by single-thread programs. But some questions do
exist and must be solved by multi-thread parallel
programs. Students can cognize that multi-thread
parallel programming is necessary under some
circumstances by correlative examples. The
following is an example playing two pictures in a
mosaic style synchronously in a dialog window.
When realizing it with a single-thread program,
there are two visible disadvantages. One is that user
messages can not be responded in good time, and the
other is that two pictures can not be played
synchronously (see Figure 1). That is to say, the
requirement can not be reached by single-thread
program. If realizing it with a multi-thread program,
two foregoing disadvantages can be avoided and the
application requirement can be achieved perfectly.
Two picture can be played in a mosaic style in left
and right synchronously (see Figure 2).
CSEDU 2010 - 2nd International Conference on Computer Supported Education
196