Introduction to the course
“Windows CE Embedded System” is an elective course of Embedded Computing in School of Software Engineering in Tongji University. It is a 3-credit course and it has 3 hours per week. In September 2004, we started to teach this course between students who enrolled in 2002. In March 2005, the course is available to master of software engineer.
There a four goals of the course. First, make the student understand the characteristics of embedded system and embedded software. Second, understand the features and architecture of Windows CE, especially the differences from other embedded operating systems. Third, know how to customize the OS and how to develop applications and device drivers. Fourth, give the students more practice via one or two projects.
The course is divided into 13 classroom courses and 3 lab courses. The list is as follows, with the credit hours in braces:
Introduction to Windows CE (1)
Application Development (2)
Windows CE OS Development (3)
Windows CE System Architecture (1)
Device Driver Development (2)
BSP Development and Advanced Topics (2)
Summary and Case Study (2)
3 lab courses are:
Application Development（Including Pocket PC and Smartphone）
The usage of Platform Builder and how to create download and debug OS
Device driver development and component creation
Since the begging of the course, students show great interests in this course. 106 undergraduate students and over 20 graduate students have selected this course. It has the largest attendance among all the elective courses. After the course, a lot of students want to continue to learn Windows CE related knowledge and want to have more chances to practice. So we set up a club named Windows CE club. Now, more than 150 members have joined the club.
There are about 200 students in grade 03. They will learn Windows CE Embedded System course in September 2005. Approximately, more than 100 students will take part in this course and we plan to practice “learning and doing” in this course from September 2005.
The necessity of “Learning by doing” and expected result
The research of Dr. Nancy Dixon shows that: We can remember 10% of what we hear, 15% of what we see, 20% of what we hear and see, 60% of what we have done, 80% of what we have done and have been responded. 90% of what we have taught. Improving students’ practice skill and engineering skill is always the most important aim of SSE, Tongji. Because Windows CE Embedded System is a course that requires a lot of engineer skill, we pay great attention on how to improve the students practice experience when teaching, we added a lot of lab courses and we give the course rank according to a project instead of paper exam.
This teaching mode can obviously give the students more practice, but little engineering experience can be improved. There are several problems in students’ projects: Coding is over-emphasized. Analysis, designed, testing is probably ignored; projects documentation is not formal; no project planning; always rush for projects at the end of each term; teamwork is not good. So, the students seem to be good at technology and professional skill, but are still lack of engineering experience.
This is the main cause of the gap between the requirement of embedded elitists and school embedded teaching. For one thing, enterprises need students who know both skills and engineering, for anther most of the students is good at skills but fewer can follow the process of software engineering.
We know “learning by doing” in CMU via the con-call with Dr. Ling Xiaoning. We think that “learning by doing” can solve the above problems. So, we’d like to introduce “Learning by doing” teaching mode as well as software project management (such as MSF) into our courses. We believe that students can get more engineering experiences and learn how to learn via “doing”. The gap between enterprise need and school teaching can be diminished.
The planned new teaching mode can be summarized as follows:
CMU Learning by Doing + the situation of China + the involvement of software industry
Use large-scale applied or virtual software projects
Organize students like software company members
Organize teaching courses like real software developing process
20% teaching, 80% projects
Teachers give the key points
;to students; students learn&n
bsp;knowledge by self-study and doing projects. Teacher works as consultants.
The grading criterion is whether students can finish software projects on schedule and on demand.
We hope to enhance communication with Microsoft Corp when performing “Learning by doing”. We also hope that MSRA can provide some resources. For example: Invie some experts in software engineering or experienced developers in Microsoft to give some speeches or teach some lessons. Provide some chances to let teachers and students join Microsoft’s program development and training. Share some CASE tools and document templates used in Microsoft. When performing “Learning by doing”, we would like to deepen the communication between Microsoft and School of Software Engineering, Tongji University.
Sources of projects
1. Consider whether Microsoft can provide some detailed project requirements, the projects can be virtual or real. Students can be grouped and “bid” for the projects.
2. Students can be organized to join “Microsoft Windows Embedded Student ChallengE” competition.
3. Some internal embedded projects in school.
Training of engineering experience
During the whole projects, we want to focus on training the engineering attainment of students. Not only lies in the usage of CASE tools, but also in the management of software process. From the initial business plan to analysis and design, coding and testing, product release and so on. All of these should be strictly according to the process of software companies.
The responsibility of the teacher
The teacher can simplify the classroom teaching. Besides necessary technical explanations, teacher can be the role of consultant, tell students how to obtain necessary knowledge and provide just in time help to students. Make the students learn knowledge on their own.
Teacher’s responsibilities maybe:
Provide fundamental course introduction and introduction to tools and technologies.
Help students to build the develop environment and tools (code management, bug management)
assort with project process (coding, testing and communication)
Provide technical support (solving problems in projects) and so on…
How students get knowledge
Students can get knowledge in the following ways:
1. The teacher’s necessary explanation.
2. Self-learning. This is the main approach of getting knowledge.
3. Communications between students.
Organization of the students
Students can be divided into several groups. Each students can act as a specific role, such as：Architect，Program Manager，Developer，Test and so on. Each student takes his own responsibility and finishes the program together. In order to let students experience different roles, we can perhaps put one student in different groups and let him / her act as different roles.
Process of the projects
After the projects are defined and students are grouped, the projects start.
We can divide the project into several phases. For example, writing business planning, project designing, software developing, testing and software release.
At the beginning of each phase, teachers or experts from enterprise can tell the students the tasks of this phase and important things. At the end of each phase, teachers or experts should review the results to see whether they can pass. If the result passes, they can go to next phase, or else, they should redo or modify it.
How to grade
Students are divided into several groups. For each group, we give the members the same result. We treat each group as a unit so that team working can be trained.
We would like to make this course and this teaching mode as a brand and this brand can have certain effect in software industry. We may give the students a “Learning by doing” certification, so that students who take part in this course can have more advantages in job hunting.
Fields that may need Microsoft’s help
As Dr. Ling Xiaoning said, to perform “Learning by doing” we need to find a partner in software industry. Since Microsoft and Tongji University have wide communication and collaboration in many aspects, we hope that Microsoft can be our partner in this course can provide some help for us, maybe as follows:
Help us to improve the teaching resources. Allow the teacher or core TA of Tongji University to intern in ATC for 3-6 months and attend some projects, so that we can learn some project management experience to improve this course. Currently, it is a truth that there are few teachers who are good at both professional skill and software engineering experience in&n
bsp;embedded system teaching, especially Windows&n
bsp;CE teaching. To solve this problem, School of Software Engineering would like to ask some teachers to ATC to attend some large-scale projects. After this, teachers can gain experiences and can put their experience into “Learning by Doing”. This is obviously good to “Learning by doing” course.
In the middle of the projects, we would like Microsoft to send some engineers and experts to tell their experiences in software development, project management and software engineering. If allowed, provide some document templates or share some MS internal used software management tools.
Student Encouragement: Let some students who do well in this course have the chances to be interns in Microsoft.
Give some funds from “Microsoft-Tongji Windows Mobile and Embedded Technology Center” to support the expense of students projects or be the scholarship for good students.
“Learning by Doing” teaching mode is very suitable for engineering courses and Windows CE Embedded System is this kind of course. There may be problems in perform this mode, but we believe that we can make the best of “Learning by doing” via our efforts together.