software-strategy-book/Ch2-10-Education.tex

225 lines
32 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

学科教育基于学科的独立知识体系,宣传和普及学科知识,培养学科专业人才。学科教育是构成学科的要素之一,并受学科的发展、教育理念和方法的进步等因素的影响。软件学科虽然是一门新兴学科,但是随着软件学科的边界不断拓展,内涵持续变化,地位不断提升,以及对人类社会的影响面日益扩大,软件学科教育的重要性日益凸显。如何加强软件学科教育,让更多的社会大众从中受惠和受益,成为全社会关心的话题。
软件学科的研究主体是人类及其思维活动,客体是软件及其内在规律。在人-机-物高度融合的时代,“软件定义一切”、“软件无所不在”使得软件成为人类社会的基础设施,软件的环境、边界、构成、形态、交互等发生了深刻的变化,这些变化不仅推动了软件学科的发展和进步,而且使得软件学科教育的对象、内容和关注点等也随之发生变化。
首先,随着软件日益普及,软件对人类生活和现实世界的渗透力越来越强、影响面越来越广,受其辐射和影响的人群越来越多,并随之产生了一系列新的问题和价值取向,如可信、隐私保护、安全等。越来越多的普通人融入软件定义的世界,甚至通过编程等方式参与软件的构造。总体而言,\textbf{软件学科与人类社会间的关系变得更为密切,软件学科教育日趋普及化和全民化}
其次,随着计算平台不断向物理世界和人类社会快速延伸,软件作为“集成器”在连接物理系统和社会系统中发挥着日趋重要的作用,软件泛在化和人机物融合的趋势日益明显,软件成为诸多行业和领域(如机器人、航空、航天、生物医学等)解决其特定问题的核心手段和必不可少的工具。\textbf{这些行业、领域的专业人士需要接受软件学科教育,掌握软件学科的基础知识和核心能力,软件学科教育不断向其它的专业领域延伸}
再次,软件系统变得日益复杂,并体现多元价值,需要借鉴系统论方法(而非还原论方法)来驾驭软件的复杂性,并从生态系统的角度认识软件系统及其开发和演化。随着软件学科外延的拓展和内涵的发展,软件学科不断地与其他的相关学科进行交叉,其知识体系也在不断的丰富和完善,对软件专业人才的知识、能力、素质和技能等要求也随着发生变化,\textbf{软件学科教育需要与时俱进,从系统观和系统能力、软件生态观、多元价值观等方面加强专业人才的培养}
最后,软件学科教育需要充分发挥软件作为一项可辅助解决特定领域问题(如教育问题)的计算工具的优势,培养社会大众基于软件来解决问题的创新意识,借助软件学科的已有资源,借鉴先进的教育理念和方法,\textbf{推动软件学科人才培养理念和教育方法的改革}
概括起来,软件学科作为基础学科,其教育涉及多个方面,需要推动普及教育,加强非专业教育,深化专业教育,重视人才培养理念和教育方法的改革;软件学科教育需要解决上述方面的诸多重大挑战问题,并开展针对性的研究工作。
\section{重大挑战问题}
为了适应人机物融合时代软件学科的发展以及人才培养的需求,软件学科教育需要在普及教育(§10.1.1)、专业教育(§10.1.2)、其他学科专业教育(§10.1.3)、教育理念与方法(§10.1.4)等方面解决以下一系列重大挑战问题。
\subsection{面向不同受众对象和认知水平的普及教育}
软件定义一切,软件无处不在,软件的地位越来越重要。在人机物融合时代,软件不仅是人类社会的基础设施,而且正成为承载人类文明的新载体。如何做好现代软件文明的继承者、传播者和创作者,软件学科教育必须顺应这一时代要求,从单一性的专业教育向大众化的通识教育转变,即惠及普通大众,从儿童、少年、青年、中年到老年,人人能用软件,人人能评软件,人人能读软件,人人能写软件。
\begin{itemize}
\item[$\bullet$] \textbf{如何培养以计算思维为核心,融合创新思维的系统性认知能力}
\end{itemize}
软件是人类智力活动的创作结果。软件学科普及教育首先需要解决社会大众(尤其是青少年)针对软件及其开发的系统化认知问题。从系统观的视角上看,软件学科的核心认知能力是计算思维,它是信息社会中现代人的基本素养,也是人类诸多认知能力的核心要素之一。从内涵上看,计算思维能力绝不仅仅是编程技能,也不纯粹是掌握某些程序设计语言,而且还包括应用软件定义的人机物资源来创新解决问题以及由此所需的创新思维能力。现阶段软件已渗透到自然科学、工程技术、社会人文等方方面面,计算思维与其他认知能力(如批判思维、创新思维等)相互作用,相互影响,不可分离。软件学科教育要突出软件作为“集成器”在连接物理系统和社会系统中的关键作用,强化通过软件来解决各种实际问题的思维训练。为此,软件学科的普及教育需要充分揭示计算思维能力与其他认知能力之间的关系,深化以计算思维、创新思维为核心的普及教育,推动系统化认知能力的提高。
\begin{itemize}
\item[$\bullet$] \textbf{不同教育受众认知能力的成长有何规律,如何构建适应不同受众的普及教育知识体系}
\end{itemize}
软件学科普及教育受众对象的涉及面广、差异性大,其中青少年教育是核心和关键。他们是一类认知能力正逐步成长的特殊人群,其基本认知能力,如抽象思维能力、表达交流能力、逻辑分析与推理能力、计算抽象能力等正处于逐步形成的阶段。针对不同的受众对象,他们在计算思维等认知能力的成长方面有何规律性?不同认知能力的形成存在怎样的依赖性?计算思维的训练与哪些认知能力密切相关?等等基础性的问题值得去探究。与此同时,计算思维等认知能力的培养需要依托软件学科和非软件学科的诸多相关知识,这些知识需要与实际问题域相结合,以加强计算思维能力的训练和实践。因此,如何以软件学科知识为核心,建立起科学的、层次性的、可满足不同受众和认知能力培养需求的知识体系,是软件学科普及教育亟需解决的关键问题。
\begin{itemize}
\item[$\bullet$] \textbf{如何构建与认知能力和水平相适应且贯穿终身的软件学科普及教育理念与方法}
\end{itemize}
软件学科普及教育对象处在各行各业,知识背景不一样,认知能力千差万别,且需面对从儿童期、少年期、青年期、中年甚至到老年等一生各种不同时期,认知水平各不相同,因此普及教育模式不能单一化,教育方法不能统一化。对于儿童和少年,游戏编程、可视化和实物编程有利于推动以计算思维为核心的认知能力逐步形成和深化;对于青少年,创新思维与软件核心认知能力的紧密融合更有效推动其认知能力发展;对于成年人,通过软件创意创作把个人智慧进行沉淀和累积更能发挥其特长。对于老年人,编程将会成为他们除了琴棋书画广场舞之外的另一个重要兴趣方向。与此同时,随着信息技术的发展,教育的方式和方法也在不断的改变。为此,软件学科普及教育需要寻求适应不同普及对象、不同行业领域、不同认知水平的教育理念和方法。
\subsection{反映人机物融合时代特点的专业教育}
在人机物融合时代,软件的环境、边界、构成、形态、交互、复杂性等发生了深刻的变化,软件学科的内涵和外延也在不断的发展,其知识体系不断的丰富,对软件学科专业人才的能力、素质和技能等要求也随之发生变化,进而对软件学科专业教育提出了新的挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何认识人机物融合时代对软件学科专业能力提出的新要求?}
\end{itemize}
在人机物融合时代,软件学科教育需要从提升可持续核心竞争力的角度着重加强专业人才的能力和素质培养。从系统观的视角,人机物融合时代的软件系统已不再是纯粹的技术系统,而是需要与物理世界、社会系统等进行高度融合。这类系统的开发需要采用系统论方法(而非还原论方法)来驾驭复杂性,要从“人机物”相互融合的角度和层次来认识软件系统,要将软件视为融合人机物的“万能集成器”。此外需要从横向(系统的层次)和纵向(系统的联盟)、高层、宏观、全局、多视角地分析系统的构成和考虑系统的设计,需要站在系统的高度来综合考虑人、机、物之间的关系,通过人、机、物三者间的协同来给出软件系统的解决方案,也即软件学科专业人才需要具备“系统能力”。人机物融合时代的软件系统也呈现出新的特点,软件规模的超大(如几亿甚至十几亿行代码)、软件需求不清晰且持续变化,软件系统表现为一类系统子系统而非单一系统、动态演化系统而非静态确定系统、社会技术系统而非纯粹技术系统等等。因此,软件形态和复杂性的变化以及软件学科范畴的拓展对软件学科专业人才的能力和素质提出了更高的要求,软件学科专业人才需要具备解决人机物融合新时代背景下的复杂工程问题的能力,这种能力需要建立多学科知识的基础之上,以应对人、机、物融合带来的各种问题。同时,需要加强以软件作为解决方案、融合人机物来解决问题的创新能力等等。
\begin{itemize}
\item[$\bullet$] \textbf{如何构建与人机物融合时代软件学科特点相适应的专业知识体系?}
\end{itemize}
在人机物融合时代,不仅软件系统的构成、形态和复杂性在变,人们对软件系统的价值观认识也在变(如更加关注软件的可信性、隐私性、安全性、平等性、持续性等价值取向),支撑软件系统开发和运维的方法和技术也在不断的变化。软件开发和运维不仅是个体和团队行为,而且延伸到社会层次,表现为一种社会化行为。开源软件的成功实践表明,大规模群体化软件创作成为一种重要的软件开发方式,软件生态变得极为重要。此外,软件学科不断地与其他相关的学科进行交叉,如大数据、人工智能、社会学、系统科学等等。这些意味着人机物融合时代的软件学科专业教育知识体系发生了深刻的变化,其知识域在不断拓展,知识点在不断增加。为了满足人机物融合时代对软件学科专业能力提出的新要求,需要建立支撑系统能力、解决复杂工程问题能力以及创新能力等能力培养所需的知识体系。因此,软件学科专业教育需要建立起与人机物融合时代软件学科发展相适应、满足软件学科专业人才培养需要的知识体系。
\subsection{融合软件学科知识的其他学科专业教育}
从形态观的视角,软件对人类生活和现实世界的渗透力越来越强,呈现出泛在化的趋势,与众多的专业和学科联系紧密;从系统观的视角,软件作为“集成器”在连接物理系统和社会系统中发挥关键作用,与诸多的应用领域密切相关。无疑,非软件学科的专业人才越来越多的需要具备软件学科的相关知识和能力,以帮助他们解决特定专业和学科领域的相关问题。如何在非软件学科教育中融合软件学科教育的内容成为一项重大的挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何在其他学科专业教育中融入软件学科的知识体系}
\end{itemize}
现有的许多学科与软件学科紧密相关,但在学科教育层面,它们很少交叉和融合软件学科的知识体系。随着软件学科的日趋泛在化以及对各个领域、行业和专业的不断渗透,以及社会对复合型、创新型人才的迫切需求,如何把软件学科的相关知识体系融入到非软件学科(如航空、航天、机器人、新材料等)的知识体系中,构建跨专业、多学科交叉的新型融合性知识体系,将成为未来非软件学科教育改革面临的一项重大挑战。非软件学科教育需要借鉴和引入“软件定义+计算思维”的理念,使得相关专业人才具备利用软件学科的思维方法解决专业特定问题的能力,这种新的融合性教学模式能够充分发挥软件学科的优势和专业特长,有利于激励学生探索交叉学科的新领域,促进学生能力和素质的全面发展。实现“非软件学科 + 软件学科”相融合的教育改革,既是当前诸多专业教育面临的机遇,也是它们必须应对的挑战。针对相关学科专业(如农业、气象、生物医学、现代服务业等)的人才培养,在保障以本学科专业为主导的前提下,如何加强软件学科相关知识的学习和能力的培养,如何调整培养方案和知识体系,完成从“专业型”到“融合型”学科培养方式的转型,是当前非软件学科教育亟待解决的问题。
\begin{itemize}
\item[$\bullet$] \textbf{如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才}
\end{itemize}
随着行业软件化转型需求的不断增长,诸多学科和专业与软件学科的融合日趋紧密,迫切需要具有软件学科知识的复合型、创新型跨界专业人才。然而,现有的许多专业人才培养尚无法满足这一需求,极大制约了相关行业的转型、专业和学科的发展,导致这种状况的原因是多方面的:一些非软件学科的专业人才培养直接将软件学科中的某些先进软件技术套用到相关专业领域之中,并没有系统地考虑这些技术在跨界专业领域中的实用性以及其软件应用需求的特殊性;它们更多地关注于自身专业领域的相关知识和能力,忽视和错失了软件学科的知识和技术给专业领域问题的解决带来的新机遇。因此,如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才,将是诸多专业和学科教育面临的重大机遇和挑战。在现有的人才培养体系下,我们应该深入思考如何在掌握专业基础知识的同时,将软件学科的知识与相关专业学科的知识相交叉和融合,实现从单一专业人才到跨界复合型、创新型人才的转变,满足人机物融合时代对复合型、创新型人才的巨大需求。
\subsection{适应软件学科发展的人才培养理念及教育方法}
在人机物高度融合的时代,软件学科教育既要根据软件学科的特点、顺应学科的发展趋势,也要充分利用好学科发展的成果,促进学科人才的培养。软件学科教育在教育理念、方法和模式等方面面临一系列的挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何借助软件学科的成果来加强软件学科人才的教育?}
\end{itemize}
在几十年的发展过程中,软件学科领域积累了大量多样的资源,包括代码、模型、文档、数据、开发知识等等。尤其是近年来,随着以开源软件为代表的群智软件工程的快速发展,在互联网的开源软件社区汇聚了各种软件资源和开发数据。这既给软件学科教育创造了条件、提供了“物质”基础,同时给软件学科教育提出了新的问题和挑战:如何借助这些软件资源来探究软件学科人才的成长轨迹和培养路径?如何利用这些软件资源来来支持软件学科教育、促进软件人才培养?
\begin{itemize}
\item[$\bullet$] \textbf{如何顺应当前教育理念和手段的发展,改革软件学科人才的教育方式和方法?}
\end{itemize}
以互联网为基础的信息技术正改变甚至颠覆传统的教学理念和方法以MOOC、SPOC等为代表的大规模在线教育意味着互联网大众不仅是教育的受益者也是教育的参与者。随着软件的普及化以及软件学科逐步成为一门基础性学科软件学科教育朝着普及化和全民化的方向发展越来越多的大众涉足软件的使用、评价甚至开发因而成为软件学科教育的对象。这就需要为软件学科的大众化和普及化教育投入足够的教育资源、提供有效的方式和手段。以群体化软件开发方法为代表的软件开发隐喻给软件学科教育提供了新的启示借助于互联网大众、利用群智的力量来推进软件学科教育将是未来的一个重要趋势它不仅有促进软件学科教育的普及化而且还可通过大众的协同共同分享学习的经验和资源。
\begin{itemize}
\item[$\bullet$] \textbf{如何为软件学科教育提供软件支撑?}
\end{itemize}
软件为特定领域的问题提供基于计算平台的解决方案。软件学科教育是一个特殊的应用领域,它涉及诸多问题的解决,如教育资源的组织和分享、学习者的交互和协同、教育成效的考核和评估等等。因此,如何为软件学科教育提供软件支撑成为一个开放性的问题。
\section{主要研究内容}
针对上述重大挑战问题,软件学科教育需要开展以下几个方面的研究工作,包括:以“计算思维 + 创新思维”为核心的普及教育§10.2.1以“多学科交叉融合知识体系系统能力和解决复杂工程问题能力培养”为核心的专业教育§10.2.2);以“专业学科知识 + 软件学科知识”为基础实现复合型、创新型和跨界人才培养的其他学科专业教育§10.2.3);以及以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革§10.2.4)。
\subsection{以“计算思维 + 创新思维”为核心的普及教育}
\begin{itemize}
\item[$\bullet$] \textbf{软件学科核心认知能力的成长模型和规律及其知识体系}
\end{itemize}
软件学科的认知能力以计算思维为核心,包含抽象思维、表达交流、逻辑分析和推理、计算抽象等,这些能力有其各自的特殊性,相互间存在依赖性。为此,需要深入研究以计算思维能力为核心的认知能力成长模型,探究不同受众认知能力的成长规律。与此同时,这些能力培养所需的知识潜藏在数学、语文、物理、化学、自然科学等课程的知识体系之中。软件学科认知能力的培养和上述知识之间存在横切特征,且不以软件的形态直接表征出来,而且代表这些知识体系的课程很少与实际的软件及其开发相关联。因此,需要从横切和纵切二个方面,探究并建立起支撑软件学科核心认知能力成长的知识体系。
\begin{itemize}
\item[$\bullet$] \textbf{以计算思维为核心,融合创新思维的系统化认知能力培养方法}
\end{itemize}
人机物融合时代,软件使能的创新是软件学科辐射影响的主要目标,软件学科教育要在培养计算思维能力的同时,强化基于软件来解决问题的创新思维能力的培养。现阶段,软件学科的普及教育还是以编程技能培养为主,我们对计算思维与创新思维二者相互作用的认识还不够,无法满足软件学科普及性教育的需要。因此,我们需要研究如何将“计算思维”与“创新思维”二者相结合来深化软件学科的普及教育,探究“计算思维+创新思维”融合培养的学习路径,建立起支撑“计算思维 + 创新思维”培养的方法和手段。
\begin{itemize}
\item[$\bullet$] \textbf{适应不同认知水平且贯穿终生的软件学科普及教育方法}
\end{itemize}
软件学科普及教育受众的专业和知识背景具有多样化的特点,年龄层次和认知水平有较大的差异性。为此,需要借鉴生态化发展的思路,研究与教育对象的生理、心理和认知相适应的教育方法;研究同质生态教育方法和异质生态关联的迁移教育方法;研究如何借助于信息系统(尤其是软件系统)来支持和推广软件学科的普及教育。
\subsection{以“多学科交叉融合知识体系+系统能力和解决复杂工程问题能力培养”为核心的专业教育}
\begin{itemize}
\item[$\bullet$] \textbf{面向多学科交叉融合的软件学科专业教育的知识体系}
\end{itemize}
针对人机物融合时代的软件学科特点和人才培养要求,深入研究软件学科与哪些相关学科发生了交叉、交叉的边界和范围是什么;人们对软件的价值取向发生了什么样的变化,这些变化对学科的知识体系提出了什么样的要求;软件学科自身发展带来那些方面的变化,这些变化处于知识体系的那些层次和方面。另外,还需要从软件学科专业人才能力培养的视点,探讨系统能力、解决复杂工程问题能力的培养对知识体系提出什么要的要求。在此基础上,研究并建立起人机物融合时代面向多学科交叉融合的软件学科专业教育的知识体系,包括知识领域、知识单元、知识点等。
\begin{itemize}
\item[$\bullet$] \textbf{软件学科专业教育核心能力的培养方法}
\end{itemize}
系统能力、解决复杂工程问题能力等是人机物融合时代软件学科专业教育的核心能力和关键要素。这二类能力的关注点和侧重点有所不同,培养方式和手段也不仅相同。实践无疑是专业教育环节中支撑能力培养的主要手段。为此需要深入研究系统能力、解决复杂工程问题能力的内涵、构成和模型,分析不同能力之间的内在关联性,探究能力持续性培养和形成的特点和规律性,并针对人机物融合系统,探究如何通过设计渐进式、综合性的实践来促进系统能力和解决复杂工程问题能力的培养,并探究针对能力培养的考评方法。
\subsection{以“专业学科知识 + 软件学科知识”为基础,实现复合型、创新型和跨界人才培养的其他学科专业教育}
\begin{itemize}
\item[$\bullet$] \textbf{基于“专业学科知识 + 软件学科知识”的其他学科专业教育知识体系}
\end{itemize}
作为基础学科,软件学科教育需要面向其他的专业实现外延式的发展。针对不同专业自身的特点,结合软件学科知识在该专业人才培养中所起到的作用,采取“专业学科知识 + 软件学科知识”的方式来拓展专业知识体系,开展专业教学改革,使得相关专业人才具备软件学科的知识并能运用它们来解决特定专业问题。为此需要研究如何将软件学科的知识融入到相关专业的知识体系之中,并实现与专业知识的有机融合,实现跨学科间知识体系的交叉融合和互补,为跨界人才培养奠定基础。
\begin{itemize}
\item[$\bullet$] \textbf{具有软件学科知识和能力的复合型、创新型和跨界专业人才培养方法}
\end{itemize}
随着软件学科在专业领域的不断渗透,在人才培养方案设计中,必须解决学生在学习过程中软件学科相关知识储备不足的问题。跨界软件学科人才培养需要多元化的课程体系。因为专业背景和专业思维的不同,非专业软件化教学过程中对软件学科的知识结构需求和相关课程衔接也是不同的。跨界软件学科人才培养方案需要探究如何实施“因材施教”的新型教学模式,分析不同专业对软件学科的“个性化”需求,构建专业软件化的新型课程体系结构,设计差异化的跨界软件学科人才培养方案。这种差异化的人才培养方案使得软件学科和本专业学科能够更好地交叉融合在一起,让非软件专业的学生也能形成通过软件科学思维来解决本学科专业问题的能力,有利于促进交叉学科领域研究成果的产生,满足社会对复合型、创新型的跨界软件学科人才的需求。
\subsection{以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革}
\begin{itemize}
\item[$\bullet$] \textbf{软件学科人才培养模型及规律}
\end{itemize}
软件学科教育对象的涉及面广,年龄层次和知识背景差异性大,培养的目的和要求多样化。软件学科教育牵涉多方面的专业知识和非专业知识,需要强化不同层次的能力和素质培养。这些知识、能力和素质之间存在内在的关联性。为此,软件学科教育需要针对不同的培养对象和目的,深入探究人才培养模型,包括知识体系、能力体系、工程素质等,分析他们在培养过程中所发挥的作用以及相互之间的继承性和和依赖性。此外,软件学科人才的成长受多方面因素的影响,包括自身的素质和能力,外在的教育者及合作群体,学习的环境和激励机制,甚至学习过程中所依赖的软件平台(如开源社区)等。为此,需要研究探究软件学科人才的成长规模,依此来指导教育政策和机制的设计以及平台的建设。
\begin{itemize}
\item[$\bullet$] \textbf{软件学科资源在人才培养中的应用}
\end{itemize}
经过几十年的积累,尤其是近年来群智软件工程的发展,软件学科积累了大量、多样、极有价值的软件资源,如以开源社区为载体的各类开源代码、知识问答、软件开发历史数据等。软件学科专业教育需要深入挖掘和利用软件学科资源在学科专业教育中的价值,系统研究如何在课程教学、实践教学和人才培养过程中有效地应用这些软件学科资源,如何将抽象的理论知识与具体的软件学科资源相结合来促进知识的理解和掌握、推动实践教学、培养软件工程能力和素养。
\begin{itemize}
\item[$\bullet$] \textbf{群体化学习}
\end{itemize}
借助互联网平台,通过吸引、汇聚和管理大规模的学习者,使得他们以竞争和合作等多种自主协同方式来开展学习将是未来的一种重要学习方式,我们称之为群体化学习。软件学科教育需要充分借助于互联网大众的智慧和理念,施行群体化学习的思想和理念,以促进软件学科人才的大规模、高质量、普及化的培养。为此,基于群智智理论和方法的指导,借助于互联网上的大数据分析,需要研究支持群体化学习的组织结构和协同模型,分析和设计群体化学习的激励机制,探究不同组织结构、协同模型和激励机制对群体化学习成效、质量和受益面等产生的影响及涌现结果。
\begin{itemize}
\item[$\bullet$] \textbf{大规模在线开放实践MOOP}
\end{itemize}
能力和素质培养是软件学科教育的一项主要任务。针对软件学科的发展特点需要研究软件学科人才的能力和素质模型建立不同能力和素质之间的关系分析普及教育、专业教育、非专业教育等分别需要达到什么样的水平和层次探究软件学科内涵的拓展如何影响能力和素质。实践是支撑能力和素质培养的主要教学途径。依托大规模人群的在线开放实践称为MOOP将成为能力和素质培养的重要趋势也是对MOOC在该方面存在欠缺的有效弥补。为此需要研究支撑能力和素质培养的实践体系建设探究如何将诸如游戏化机制等引入到MOOP之中以支持大规模在线开放实践分析针对MOOP的量化表示与评测方法建立起针对能力和素质培养的评价体系与评价指标。
\begin{itemize}
\item[$\bullet$] \textbf{软件学科教育的支撑软件}
\end{itemize}
需要针对软件学科教育的需求开发相应的支撑软件,研究软件学科教育软件如何同步分享和利用互联网上诸如开源社区中的学习资源(如开源软件和软件开发知识),构建软件学科教育软件与开源社区之间的互操作和交互机制,探究如何基于教育大数据的分析来构建学习者的个性化学习路径,并依次为基础为其提供最佳学习规划。
\section{本章小结}
在人机物融合时代,随着软件辐射面和影响面的扩大,软件学科的不断发展和进步,软件学科教育的内涵和外延也在发生改变,它涉及普及教育、专业教育、其他学科专业教育、教育理念与方法改革等多个方面,面临着一系列重大问题的挑战,包括:如何针对具有不同认知水平的受众对象开展普及教育?如何针对人机物融合时代特点深化专业教育?如何在其他学科专业中融合软件学科的知识以加强非软件学科专业教育?以及如何开展软件学科人才培养理念和教育方法的改革等等。
软件学科教育涉及诸多方面的研究内容,包括:以“计算思维 + 创新思维”为核心的普及教育;以“多学科交叉融合知识体系+系统能力和解决复杂工程问题能力培养”为核心的专业教育;以“专业学科知识 + 软件学科知识”为基础、实现复合型、创新型和跨界人才培养的非软件学科专业教育;以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革等等。
\section{参考文献}
[1] 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59.
[2] 吴爱华, 侯永峰, 杨秋波, 等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017(1): 1-9.
[3] Bandyopadhyay S, Thakur S S. ICT in education: Open source software and its impact on teachers and students[J]. International Journal of Computer Applications, 2016, 151(6): 19-24.
[4] 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组高等教育出版社2019.
[5] 李晓明, “老年编程”的畅想, 计算机学会通讯, 15(15), 2019.
[6] 梅宏, 周明辉. 开源对软件人才培养带来的挑战[J]. 计算机教育, 2017, (1): 2-5.
[7] 毛新军, 尹刚等, 新工科背景下的软件工程课程实践教学建设: 思考与探索, 计算机教育, 2018, 7: 5-8.
[8] Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7), 71-77.
[9] Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006.
[10] 中国ICT人才生态白皮书华为、计世资讯编制2018年7月
[11] Wing, Jeannette . Computational Thinking Benefits Society. 40th Anniversary Blog of Social Issues in Computing, 2014.
[12] EdSurge, "The 5th 'C' of 21st Century Skills? Try Computational Thinking (Not Coding) - EdSurge News", 2018.
[13] "Future-forward: How to incorporate the 5th 'C' of 21st Century learning". eSchool News. 2017.
[14] ACM中国教育委员会教育部高等学校大学计算机课程教学委员会(译). 信息技术课程体系指南2017. 北京:高等教育出版社, 2019.
[15] ACM and AIS. Curriculum Guidelines for Undergraduate Degree Programs in Information Systems (IS 2010).
[16] ACM and IEEE Computer Society, Computer Science Curricula 2013 (CS 2013).
[17] ACM and IEEE Computer Society, Computer Engineering Curricula 2016 (CE 2016).
[18] IEEE Computer Society, SWEBOK V3.0 (Guide to the Software Engineering Body of Knowledge).
[19] ACM and IEEE Computer Society, Software Engineering 2014 (SE 2014)
[20] ACM and IEEE Computer Society, Graduate Software Engineering 2009(GSwE2009)
[21] 刘海涛. 高等学校跨学科专业设置:逻辑、困境与对策[J]. 江苏高教, 2018(2):6-11.
[22] 焦磊.国外知名大学跨学科建制趋势探析[J].高等工程教育研究2018(3): 124-129.
[23] 李韬.“技术+管理”复合型人才培养目标下实践教学创新研究[J]. 企业科技与发展, 2019, 448(2):161-162.
[24] 王涛, 白羽, 余跃, 等. Trustie:面向软件工程群体化实践教学的支撑平台[J]. 计算机教育, 2018, (7):18-22.
[25] 高珍, 林冰轩, 袁时金, 等. 以学科交叉推动软件工程复合型硕士培养的探索及实践[J]. 计算机教育, 2018, (11):21-24.