Speech for Microsoft Training Conference
Zongjian He May 21, 2005
Distinguished guests, leaders, and teachers:
Hello everyone!
Let me first introduce myself. My name is Zongjian He, and I’m the instructor for the “Windows CE Embedded Systems” course at Tongji University’s School of Software Engineering. I’m very glad to be teaching this course at the Software Institute, and even more pleased to have this opportunity to share our experiences with you today. I hope we can have more exchanges in the future.
Today I’d like to cover the following topics: first, a brief overview of the course; second, my teaching methodology; third, the course content; and finally, some positive and negative experiences and lessons learned from teaching this course.
The emergence of the microprocessor in the last century brought revolutionary development to the computer industry. PCs built around microprocessors have rapidly popularized due to their small size and low cost. Computers have gradually become part of our lives. In recent years, with the普及 (popularization) of computer applications, the practical application of Internet technology, and the development of information technology, terminal devices are increasingly moving toward intelligence, digitization, compactness, and ease of control. Embedded technology, with its flexibility, efficiency, and cost-effectiveness, has been widely adopted in various terminal devices.
Microsoft released its first embedded operating system, Windows CE 1.0, in 1996. After nearly a decade of development, with its broad adaptability, rich functionality, powerful multimedia capabilities, and friendly development environment, Windows CE can now be found in PDAs, smartphones, automotive electronics, information terminals, and more.
Meanwhile, society’s demand for embedded software talent is growing rapidly. Academician Ni Guangnan stated in 2004 that China ranks third in the world in embedded application scale. In 2002, China’s embedded software market was 11.856 billion yuan; today it accounts for 40% of the software industry. Traditional IT devices are gradually transforming into embedded devices — this is a major trend. In this trend, software’s role is increasingly important. Embedded software plays a crucial role in enhancing the competitiveness of IT manufacturing and optimizing industrial structure. Developing embedded software is imperative.
The main teaching objectives of this course are: first, to help students understand the characteristics of embedded systems and embedded software; second, to understand the features and architecture of Windows CE; and third, for students to master kernel customization, application development, and driver development based on Windows CE.
The Windows CE Embedded Systems course is structured as follows: 48 class hours, 3 credits. We first offered it as a specialized elective for third-year undergraduates (class of 02) in September 2004, then for professional master’s students in March 2005. A total of 106 undergraduates and over 20 master’s students enrolled — the highest enrollment among electives. Most importantly, students showed great interest during the course. After the course ended, many students expressed strong desire to continue learning about Windows CE and embedded systems, so we established the Windows CE Club. The club now has over 100 members, organizing technical exchanges, lectures, and other activities.
We use a progressive teaching approach, hoping to help students get started quickly. The prerequisite knowledge for learning Windows CE includes: hardware fundamentals, operating system principles, assembly language, C/C++, Windows programming, etc. Based on our students’ background — already familiar with C/C++ and Windows application development — we chose a top-down teaching approach: Application Development → OS Development → Windows CE Architecture → BSP and Driver Development.
Importantly, we emphasize hands-on practice, consistent with Tongji University’s Software Engineering Institute’s一贯 (consistent) teaching philosophy.
The Software Institute invested hundreds of thousands of yuan to establish a Windows CE embedded lab, equipped with 30 sets of Huanheng ARM9 teaching development boards (supporting both embedded Linux and Windows CE), plus multiple Windows CE-based PDAs and smartphones for student practice.
We also made bold reforms to the assessment criteria. Instead of written exams, we use a project with substantial code as the evaluation standard. The project is divided into four phases: topic proposal, design and planning, development tracking, and project delivery. We encourage team collaboration, and grading is entirely based on project quality.
We also set up a “Course Q&A and Learning Exchange” BBS to facilitate communication between teachers and students and among classmates.
At the end of last year, we organized the first university-wide “Huanheng Cup” Windows Embedded Software Development Competition. Over 30 teams participated, sparking students’ interest in Windows CE and embedded software development.
Now let me introduce the course content. The schedule: 48 class hours total, 3 hours per session, 16 sessions. These 16 sessions are divided into 13 lectures and 3 lab sessions. We currently teach based on Windows CE .NET 4.2, planning to upgrade to Windows CE 5.0 next semester.
The 13 lectures are arranged as follows:
- Introduction to Windows CE (1 session): overview of embedded systems and Windows CE, key features.
- Application Development (2 sessions): developing applications on Windows CE.
- Platform Development: using Platform Builder to build Windows CE platforms.
- Windows CE System Architecture: examining Windows CE from an OS perspective.
- Driver Development (2 sessions) and BSP Development (2 sessions): the most complex parts of Windows CE, saved for last.
- Summary and Case Study: the “Vehicle Real-time Information Terminal and Intelligent Dashboard System” — a Shanghai Science Commission project jointly undertaken by Tongji’s Software Institute and Automotive Institute. This complete Windows CE project gives students a holistic understanding.
The three lab sessions cover: application development (including Pocket PC and Smartphone), Platform Builder usage with kernel creation, download and debugging, and driver development with component creation and distribution.
In summary, the main successes over this year of teaching are: sparking student interest in embedded systems and Windows CE, and improving students’ hands-on abilities.
Of course, as a new course, there are still shortcomings: no suitable textbook available, students at varying levels making teaching difficult, and too much focus on application development versus kernel and driver content — which needs better balancing.
We are actively exploring teaching innovations. In collaboration with Microsoft Research Asia, we’re piloting the “Learning by Doing” teaching model for the first time in Chinese universities. Our goal: fully project-oriented, strictly following software engineering processes, with students gaining knowledge through self-study and project practice.
Finally, thank you all for your participation. I’m very happy to exchange ideas and discuss with everyone.