update chapter 2-10 and figure

This commit is contained in:
xjmao 2019-10-13 12:28:47 +08:00
parent dcba179a75
commit 1251b164ba
2 changed files with 157 additions and 87 deletions

View File

@ -1,29 +1,34 @@
\centerline{毛新军,魏峻,孙艳春,邓水光}
学科教育基于学科的独立知识体系,宣传和普及学科知识,培养学科专业人才。学科教育是构成学科的要素之一,并受学科的发展、教育理念和方法的进步等因素的影响。软件学科虽然是一门新兴学科,但是随着软件学科的边界不断拓展,内涵持续变化,地位不断提升,以及对人类社会的影响面日益扩大,软件学科教育的重要性日益凸显。如何加强软件学科教育,让更多的社会大众从中受惠和受益,成为全社会关心的话题。
~\\
软件学科的研究主体是人类及其思维活动,客体是软件及其内在规律。在人-机-物高度融合的时代,“软件定义一切”、“软件无所不在”使得软件成为人类社会的基础设施,软件的环境、边界、构成、形态、交互等发生了深刻的变化,这些变化不仅推动了软件学科的发展和进步,而且使得软件学科教育的对象、内容和关注点等也随之发生变化
学科教育基于学科的独立知识体系,宣传和普及学科知识,培养学科专业人才。学科教育是构成学科的要素之一,并受学科的发展、教育理念和方法的进步等因素的影响。近年来,随着软件学科的边界不断拓展,内涵持续变化,地位不断提升,以及对人类社会的影响面日益扩大,软件学科教育的重要性日益凸显。与此同时,随着我国经济结构的调整和升级以及以信息技术为代表的新经济的快速发展[1],软件学科教育需要为国家的经济转型培养高素质的专业人才。如何加强软件学科教育,提高人才培养的质量和水平,让更多的社会大众从中受惠和受益,成为全社会关注的话题
首先,随着软件日益普及,软件对人类生活和现实世界的渗透力越来越强、影响面越来越广,受其辐射和影响的人群越来越多,并随之产生了一系列新的问题和价值取向,如可信、隐私保护、安全等。越来越多的普通人融入软件定义的世界,甚至通过编程等方式参与软件的构造。总体而言,\textbf{软件学科与人类社会间的关系变得更为密切,软件学科教育日趋普及化和全民化}
软件学科的研究主体是人类及其思维活动,客体是软件及其内在规律。在人机物融合时代,“软件无所不在”、“软件定义一切”使得软件成为人类社会的重要基础设施[2],软件系统的环境、边界、构成、形态、交互等发生了深刻的变化。这些变化不仅推动了软件学科的发展和进步,而且使得软件学科教育的对象、面临的挑战等也随之发生变化
其次,随着计算平台不断向物理世界和人类社会快速延伸,软件作为“集成器”在连接物理系统和社会系统中发挥着日趋重要的作用,软件泛在化和人机物融合的趋势日益明显,软件成为诸多行业和领域(如机器人、航空、航天、生物医学等)解决其特定问题的核心手段和必不可少的工具。\textbf{这些行业、领域的专业人士需要接受软件学科教育,掌握软件学科的基础知识和核心能力,软件学科教育不断向其它的专业领域延伸}
首先,随着软件的日益普及,软件对人类社会和现实世界的渗透力越来越强、影响面越来越广,受其辐射和影响的人群也越来越多,并随之产生了一系列新的问题、出现了新的价值取向,如伦理、道德、可信、隐私保护、安全等。越来越多的大众融入到了软件定义的世界(如使用微信来开展社交),甚至通过编程等方式参与软件的构造。总体而言,\textbf{软件学科与人类社会间的关系变得更为紧密,软件学科教育日趋普及化和全民化。}
再次,软件系统变得日益复杂,并体现多元价值,需要借鉴系统论方法(而非还原论方法)来驾驭软件的复杂性,并从生态系统的角度认识软件系统及其开发和演化。随着软件学科外延的拓展和内涵的发展,软件学科不断地与其他的相关学科进行交叉,其知识体系也在不断的丰富和完善,对软件专业人才的知识、能力、素质和技能等要求也随着发生变化,\textbf{软件学科教育需要与时俱进,从系统观和系统能力、软件生态观、多元价值观等方面加强专业人才的培养}
其次,随着计算平台不断向物理世界和人类社会的快速延伸,软件作为“集成器”在连接物理系统和社会系统中发挥着日趋重要的作用,软件泛在化和人机物融合的趋势日益明显,软件成为诸多行业和领域(如机器人、航空、航天、生物医学等)解决其特定问题的核心手段和必不可少的工具。\textbf{这些行业、领域的专业人士需要掌握软件学科的基础知识和核心能力,学会运用软件工具来解决特定领域的问题;与此同时,软件学科的专业人才也需要向特定领域扩展和渗透,软件学科教育呈现出与其他学科教育日益交融的趋势。}
最后,软件学科教育需要充分发挥软件作为一项可辅助解决特定领域问题(如教育问题)的计算工具的优势,培养社会大众基于软件来解决问题的创新意识,借助软件学科的已有资源,借鉴先进的教育理念和方法,\textbf{推动软件学科人才培养理念和教育方法的改革}
第三,软件系统变得日益复杂,并体现多元价值,传统的还原论开发方法在应对软件日益增长的复杂性方面面临着诸多挑战[3],需要从生态系统的角度认识软件系统及其开发和演化。随着软件学科外延的拓展和内涵的发展,软件学科需与更多的学科进行交叉。开源软件的成功以及开源文化的流行对人才培养提出了新的要求[4][5],使得软件学科教育的知识体系[6]不断的丰富和发展,对软件专业人才的知识、能力、素质和技能等要求也随之发生变化。\textbf{软件学科教育需在知识体系层面与时俱进,需从系统观和系统能力、生态观、多元价值观等方面加强专业人才的培养。}
最后当前教育理念和技术的发展日新月异教育教学改革非常活跃如MOOC、SPOC、个性化学习、学习路径推荐等计算机软件在教育改革和人才培养中发挥着日益重要的作用。\textbf{软件学科教育需要借鉴当前先进的教育理念和方法[7],结合自身的特点和人才培养的特殊要求,利用软件学科已经积累的资源,交叉大数据分析、机器学习、数据挖掘等技术手段,研制教育软件工具,以推动软件学科教育和人才培养的改革。}
概括起来,软件学科作为基础学科,其教育的影响面大,面临挑战多,需要推动普及教育,加强跨学科教育,深化专业教育,重视人才培养理念和教育方法的改革,促进软件伦理制度的建设及宣传教育。
概括起来,软件学科作为基础学科,其教育涉及多个方面,需要推动普及教育,加强非专业教育,深化专业教育,重视人才培养理念和教育方法的改革;软件学科教育需要解决上述方面的诸多重大挑战问题,并开展针对性的研究工作。
\section{重大挑战问题}
为了适应人机物融合时代软件学科的发展以及人才培养的需求,软件学科教育需要在普及教育(§10.1.1)、专业教育(§10.1.2)、其他学科专业教育(§10.1.3)、教育理念与方法(§10.1.4)等方面解决以下一系列重大挑战问题。
为了适应人机物融合时代软件学科的发展以及人才培养的需求,软件学科教育在普及教育(§\ref{subsection:10_1_1})、跨学科教育(§\ref{subsection:10_1_2})、专业教育(§\ref{subsection:10_1_3})、教育理念和方法改革(§\ref{subsection:10_1_4})、软件伦理制度建设和宣传教育(§\ref{subsection:10_1_5})等面临一系列的重大挑战问题。
\subsection{面向不同受众对象和认知水平的普及教育}
软件定义一切,软件无处不在,软件的地位越来越重要。在人机物融合时代,软件不仅是人类社会的基础设施,而且正成为承载人类文明的新载体。如何做好现代软件文明的继承者、传播者和创作者,软件学科教育必须顺应这一时代要求,从单一性的专业教育向大众化的通识教育转变,即惠及普通大众,从儿童、少年、青年、中年到老年,人人能用软件,人人能评软件,人人能读软件,人人能写软件。
\subsection{普及教育问题}
\label{subsection:10_1_1}
在人机物融合时代,软件不仅是人类社会的基础设施,而且正成为承载人类文明的新载体。如何做好现代软件文明的继承者、传播者和创作者,软件学科教育必须顺应这一时代要求,从单一性的专业教育向大众化的通识教育转变,即惠及普通大众,从儿童、少年、青年、中年到老年[8],人人能用软件,人人能评软件,人人能读软件,人人能写软件。
\begin{itemize}
\item[$\bullet$] \textbf{如何培养以计算思维为核心,融合创新思维的系统性认知能力}
\end{itemize}
软件是人类智力活动的创作结果。软件学科普及教育首先需要解决社会大众(尤其是青少年)针对软件及其开发的系统化认知问题。从系统观的视角上看,软件学科的核心认知能力是计算思维,它是信息社会中现代人的基本素养,也是人类诸多认知能力的核心要素之一。从内涵上看,计算思维能力绝不仅仅是编程技能,也不纯粹是掌握某些程序设计语言,而且还包括应用软件定义的人机物资源来创新解决问题以及由此所需的创新思维能力。现阶段软件已渗透到自然科学、工程技术、社会人文等方方面面,计算思维与其他认知能力(如批判思维、创新思维等)相互作用,相互影响,不可分离。软件学科教育要突出软件作为“集成器”在连接物理系统和社会系统中的关键作用,强化通过软件来解决各种实际问题的思维训练。为此,软件学科的普及教育需要充分揭示计算思维能力与其他认知能力之间的关系,深化以计算思维、创新思维为核心的普及教育,推动系统化认知能力的提高
软件是人类智力活动的创作结果。软件学科普及教育首先需要解决社会大众(尤其是青少年)针对软件及其开发的系统化认知问题。从系统观的视角上看,软件学科的核心认知能力是计算思维,它是信息社会中现代人的基本素养,也是人类诸多认知能力的核心要素之一[9][10]。从内涵上看,计算思维能力绝不仅仅是编程技能,也不纯粹是掌握某些程序设计语言,它还包括应用软件来创新解决问题以及由此所需的创新思维能力。现阶段软件已渗透到自然科学、工程技术、社会人文等方方面面,计算思维与其他认知能力(如批判思维、创新思维等)相互作用,相互影响,不可分离。软件学科教育要突出软件作为“集成器”在连接物理系统和社会系统中的关键作用,强化通过软件来解决各种实际问题的思维训练。为此,软件学科的普及教育需要充分揭示计算思维能力与其他认知能力之间的关系,深化以计算思维、创新思维为核心的普及教育,提高大众的系统化认知能力。现阶段,软件学科的普及教育还是以编程技能培养为主,我们对计算思维与创新思维二者相互作用的认识还不够深入,无法满足软件学科普及性教育的需要
\begin{itemize}
\item[$\bullet$] \textbf{不同教育受众认知能力的成长有何规律,如何构建适应不同受众的普及教育知识体系}
@ -35,190 +40,255 @@
\item[$\bullet$] \textbf{如何构建与认知能力和水平相适应且贯穿终身的软件学科普及教育理念与方法}
\end{itemize}
软件学科普及教育对象处在各行各业,知识背景不一样,认知能力千差万别,且需面对从儿童期、少年期、青年期、中年甚至到老年等一生各种不同时期,认知水平各不相同,因此普及教育模式不能单一化,教育方法不能统一化。对于儿童和少年,游戏编程、可视化和实物编程有利于推动以计算思维为核心的认知能力逐步形成和深化;对于青少年,创新思维与软件核心认知能力的紧密融合更有效推动其认知能力发展;对于成年人,通过软件创意创作把个人智慧进行沉淀和累积更能发挥其特长。对于老年人,编程将会成为他们除了琴棋书画广场舞之外的另一个重要兴趣方向。与此同时,随着信息技术的发展,教育的方式和方法也在不断的改变。为此,软件学科普及教育需要寻求适应不同普及对象、不同行业领域、不同认知水平的教育理念和方法。
软件学科普及教育对象来自各行各业,知识背景不一样,认知能力千差万别,且需面对从儿童期、少年期、青年期、中年期甚至到老年期等不同时期的人群,因此普及教育模式不能单一化,教育方法不能统一化。对于儿童和少年,游戏编程、可视化和实物编程有利于推动以计算思维为核心的认知能力逐步形成和深化;对于青少年,创新思维与软件核心认知能力的紧密融合可有效推动其认知能力的提升;对于成年人,通过软件创意创作把个人智慧进行沉淀和累积更能发挥其特长;对于老年人,编程成为他们除了琴棋书画广场舞之外的另一个重要兴趣方向。与此同时,随着信息技术的发展,教育的方式和方法也在不断的改变。为此,软件学科普及教育需要寻求适应不同普及对象、不同行业领域、不同认知水平的教育理念和方法。
\subsection{反映人机物融合时代特点的专业教育}
\subsection{跨学科教育问题}
\label{subsection:10_1_2}
从形态观的视角,软件对人类社会和现实世界的渗透力越来越强,呈现出泛在化的趋势,与众多的专业和学科联系紧密;从系统观的视角,软件作为“集成器”在连接物理系统和社会系统中发挥关键作用,与诸多的应用领域密切相关。无疑,非软件学科的专业人才越来越多的需要具备软件学科的相关知识和能力,软件学科专业的人才也需要向其他学科渗透,以帮助其他学科解决特定专业和学科领域的相关问题。如何实现软件学科教育与其他学科教育的双向融合成为当前软件学科教育面临的一项重大挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何实现软件学科知识体系与其它学科专业知识体系的融合}
\end{itemize}
现有的许多学科与软件学科关系紧密,但在教育层面,它们很少融合软件学科的知识体系。随着软件学科的日趋泛在化以及对各个领域、行业和专业的不断渗透,以及社会对复合型、创新型人才的迫切需求,如何把软件学科的相关知识体系融入到非软件学科(如航空、航天、机器人、新材料等)的知识体系中,或者让软件学科的人才融入到其他学科领域之中,构建跨专业、多学科交叉的融合性知识体系,将成为软件学科教育和其它非软件学科教育面临的一项重大挑战。
其他学科教育需要借鉴和引入“软件定义+计算思维”的理念,使得相关专业人才具备利用软件学科的思维方法解决专业特定问题的能力,这种新的融合性教学模式能够充分发挥软件学科的优势和专业特长,有利于激励学生探索交叉学科的新领域,促进学生能力和素质的全面发展。实现“非软件学科 + 软件学科”相融合的教育改革,既是当前诸多专业教育面临的机遇,也是它们必须应对的挑战。针对相关学科专业(如农业、气象、生物医学、现代服务业等)的人才培养,在保障以本学科专业为主导的前提下,如何加强软件学科相关知识的学习和能力的培养,如何调整培养方案和知识体系,完成从“专业型”到“融合型”学科培养方式的转型,是当前非软件学科教育亟待解决的问题。
当前各大高校设置了包含软件学科知识的公共基础课程(如大学计算机基础、计算机导论、计算机程序设计等),以帮助相关学科和专业的学生建立起初步的计算思维和编程能力,但是统一的授课内容导致软件学科知识与其他学科专业学科知识脱节,没有考虑不同学科和专业培养目标和应用需求的差异性,未能实现针对不同学科专业人才培养特点和要求的个性化和差异化教学,尤其是缺乏软件学科与其他学科相结合的优秀教学案例。
\begin{itemize}
\item[$\bullet$] \textbf{如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才}
\end{itemize}
随着行业软件化转型需求的不断增长,诸多学科和专业与软件学科的融合日趋紧密,迫切需要具有软件学科知识的复合型、创新型跨界专业人才。然而,现有的许多专业人才培养尚无法满足这一需求,极大制约了相关行业的转型、专业和学科的发展,导致这种状况的原因是多方面的:一些非软件学科的专业人才培养直接将软件学科中的某些先进软件技术套用到相关专业领域之中,并没有系统地考虑这些技术在跨界专业领域中的实用性以及其软件应用需求的特殊性;它们更多地关注于自身专业领域的相关知识和能力,忽视和错失了软件学科的知识和技术给专业领域问题的解决带来的新机遇。因此,如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才,将是诸多专业和学科教育面临的重大机遇和挑战。在现有的人才培养体系下,我们应该深入思考如何在掌握专业基础知识的同时,将软件学科的知识与相关专业学科的知识相交叉和融合,实现从单一专业人才到跨界复合型、创新型人才的转变,满足人机物融合时代对复合型、创新型人才的巨大需求。
\subsection{专业教育问题}
\label{subsection:10_1_3}
在人机物融合时代,软件的环境、边界、构成、形态、交互、复杂性等发生了深刻的变化,软件学科的内涵和外延也在不断的发展,其知识体系不断的丰富,对软件学科专业人才的能力、素质和技能等要求也随之发生变化,进而对软件学科专业教育提出了新的挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何认识人机物融合时代对软件学科专业能力提出的新要求?}
\end{itemize}
在人机物融合时代,软件学科教育需要从提升可持续核心竞争力的角度着重加强专业人才的能力和素质培养。从系统观的视角,人机物融合时代的软件系统已不再是纯粹的技术系统,而是需要与物理世界、社会系统等进行高度融合。这类系统的开发需要采用系统论方法(而非还原论方法)来驾驭复杂性,要从“人机物”相互融合的角度和层次来认识软件系统,要将软件视为融合人机物的“万能集成器”。此外需要从横向(系统的层次)和纵向(系统的联盟)、高层、宏观、全局、多视角地分析系统的构成和考虑系统的设计,需要站在系统的高度来综合考虑人、机、物之间的关系,通过人、机、物三者间的协同来给出软件系统的解决方案,也即软件学科专业人才需要具备“系统能力”。人机物融合时代的软件系统也呈现出新的特点,软件规模的超大(如几亿甚至十几亿行代码)、软件需求不清晰且持续变化,软件系统表现为一类系统子系统而非单一系统、动态演化系统而非静态确定系统、社会技术系统而非纯粹技术系统等等。因此,软件形态和复杂性的变化以及软件学科范畴的拓展对软件学科专业人才的能力和素质提出了更高的要求,软件学科专业人才需要具备解决人机物融合新时代背景下的复杂工程问题的能力,这种能力需要建立多学科知识的基础之上,以应对人、机、物融合带来的各种问题。同时,需要加强以软件作为解决方案、融合人机物来解决问题的创新能力等等。
在人机物融合时代,由于软件系统自身形态、复杂性、价值观等发生了深刻的变化。软件学科教育需要从提升可持续核心竞争力的角度加强专业人才的能力和素质培养[7]。
复杂庞大的软件系统在人类社会的诸多领域发挥着日益重要的作用和影响,如银行金融、城市服务、国防军事、电力通讯等等。这类系统不仅在基本形态、运维方式、质量要求等方面有其特殊性,而且在支持这类系统建设的软件开发隐喻、软件生态环境、元级方法论等也呈现出新的特点。软件学科教育迫切地需要培养能够掌握和驾驭这类软件系统开发和运维的人才。
从系统观的视角,人机物融合时代的软件系统已不再是纯粹的技术系统,而是需要与物理世界、社会系统等进行高度融合。这类系统的开发需要采用系统论方法(而非还原论方法)来驾驭复杂性,要从“人机物”相互融合的角度和层次来认识软件系统的构成,要将软件视为融合人机物的“万能集成器”;需要从横向(系统的联盟)和纵向(系统的层次)、高层、宏观、全局等视角来分析系统的构成及考虑系统的设计,需要站在系统的高度来综合考虑人、机、物之间的关系,通过人、机、物三者间的协同来给出软件系统的解决方案,即软件学科专业人才需要具备“系统能力”。
人机物融合时代的软件系统呈现出新的特点,软件规模超大(如几亿甚至十几亿行代码)、软件需求不清晰且持续变化,软件系统表现为一类系统之系统而非单一系统、动态演化系统而非静态确定系统、社会技术系统而非纯粹技术系统[11][12]等等。因此,软件形态和复杂性的变化以及软件学科范畴的拓展对软件学科专业人才的能力和素质提出了更高的要求,他们需要具备解决人机物融合时代背景下的复杂工程问题的能力,这种能力需建立多学科知识的基础之上,以应对人机物融合带来的各种问题和挑战。
人机物融合时代软件开发的方式和手段也在发生深刻的变化。例如,建设开源生态、借助开源软件、利用群智开发等成为重要的趋势,开源软件已成为世界信息技术及产业发展的重要方向。然而,当前开源软件人才的培养及供应无论在质或量上均存在较大不足[4]。此外,软件学科教育需要深入地探究如何有效地利用海量、多样、高质量的开源软件和群智资源来培养软件学科人才[13]。
\begin{itemize}
\item[$\bullet$] \textbf{如何构建与人机物融合时代软件学科特点相适应的专业知识体系?}
\end{itemize}
在人机物融合时代,不仅软件系统的构成、形态和复杂性在变,人们对软件系统的价值观认识也在变(如更加关注软件的可信性、隐私性、安全性、平等性、持续性等价值取向),支撑软件系统开发和运维的方法和技术也在不断的变化。软件开发和运维不仅是个体和团队行为,而且延伸到社会层次,表现为一种社会化行为。开源软件的成功实践表明,大规模群体化软件创作成为一种重要的软件开发方式,软件生态变得极为重要。此外,软件学科不断地与其他相关的学科进行交叉,如大数据、人工智能、社会学、系统科学等等。这些意味着人机物融合时代的软件学科专业教育知识体系发生了深刻的变化,其知识域在不断拓展,知识点在不断增加。为了满足人机物融合时代对软件学科专业能力提出的新要求,需要建立支撑系统能力、解决复杂工程问题能力以及创新能力等能力培养所需的知识体系。因此,软件学科专业教育需要建立起与人机物融合时代软件学科发展相适应、满足软件学科专业人才培养需要的知识体系。
在人机物融合时代,不仅软件系统的构成、形态和复杂性在变,人们对软件系统的价值观认识也在变(如更加关注软件的可信性、隐私性、安全性、平等性、持续性等),支撑软件系统开发和运维的方法和技术也在不断的变化。软件开发和运维不仅是个体和团队行为,而且延伸到社会层次,表现为一种社会化行为。开源软件的成功实践表明,大规模群体化软件创作成为一种重要的软件开发方式,软件生态变得极为重要。此外,软件学科不断地与其他相关的学科进行交叉,如大数据、人工智能、社会学、系统科学等等。这意味着人机物融合时代的软件学科专业教育知识体系发生了深刻的变化,其知识域在不断拓展,知识点在不断增加。为了满足软件学科教育的新要求,需要建立起支撑系统能力、解决复杂工程问题能力以及创新能力等能力培养所需的知识体系。因此,软件学科专业教育需构建与人机物融合时代软件学科发展相适应、满足软件学科专业人才培养需求的知识体系。
\subsection{融合软件学科知识的其他学科专业教育}
从形态观的视角,软件对人类生活和现实世界的渗透力越来越强,呈现出泛在化的趋势,与众多的专业和学科联系紧密;从系统观的视角,软件作为“集成器”在连接物理系统和社会系统中发挥关键作用,与诸多的应用领域密切相关。无疑,非软件学科的专业人才越来越多的需要具备软件学科的相关知识和能力,以帮助他们解决特定专业和学科领域的相关问题。如何在非软件学科教育中融合软件学科教育的内容成为一项重大的挑战。
\subsection{教育理念和方法改革问题}
\label{subsection:10_1_4}
在人机物高度融合的时代,软件学科教育既要根据软件学科的特点、顺应学科的发展趋势,也要充分利用好学科发展的成果,促进学科人才的培养。软件学科教育在教育理念、方法和模式等方面面临着一系列的挑战。
\begin{itemize}
\item[$\bullet$] \textbf{如何在其他学科专业教育中融入软件学科的知识体系}
\item[$\bullet$] \textbf{如何借助软件学科成果来加强软件学科教育?}
\end{itemize}
现有的许多学科与软件学科紧密相关,但在学科教育层面,它们很少交叉和融合软件学科的知识体系。随着软件学科的日趋泛在化以及对各个领域、行业和专业的不断渗透,以及社会对复合型、创新型人才的迫切需求,如何把软件学科的相关知识体系融入到非软件学科(如航空、航天、机器人、新材料等)的知识体系中,构建跨专业、多学科交叉的新型融合性知识体系,将成为未来非软件学科教育改革面临的一项重大挑战。非软件学科教育需要借鉴和引入“软件定义+计算思维”的理念,使得相关专业人才具备利用软件学科的思维方法解决专业特定问题的能力,这种新的融合性教学模式能够充分发挥软件学科的优势和专业特长,有利于激励学生探索交叉学科的新领域,促进学生能力和素质的全面发展。实现“非软件学科 + 软件学科”相融合的教育改革,既是当前诸多专业教育面临的机遇,也是它们必须应对的挑战。针对相关学科专业(如农业、气象、生物医学、现代服务业等)的人才培养,在保障以本学科专业为主导的前提下,如何加强软件学科相关知识的学习和能力的培养,如何调整培养方案和知识体系,完成从“专业型”到“融合型”学科培养方式的转型,是当前非软件学科教育亟待解决的问题。
在几十年的发展过程中,软件学科领域积累了丰富、多样和海量的资源,包括代码、模型、文档、数据、开发知识、工具等等。尤其是近年来,随着开源软件、群智开发、软件开发知识分享等的快速发展,互联网上的开源社区汇聚了大量的软件资源和开发数据。这既给软件学科教育创造了条件、提供了机会和奠定了“物质”基础,同时也给软件学科教育提出了新的问题和挑战[13]:如何借助这些软件资源来深入探究软件学科人才(如软件工程师)的成长轨迹和培养路径?如何有效利用这些软件资源来支持软件学科的教育、促进软件人才的培养?
\begin{itemize}
\item[$\bullet$] \textbf{如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才}
\item[$\bullet$] \textbf{如何顺应教育理念和方法的发展来改革软件学科教育的方式和手段?}
\end{itemize}
随着行业软件化转型需求的不断增长,诸多学科和专业与软件学科的融合日趋紧密,迫切需要具有软件学科知识的复合型、创新型跨界专业人才。然而,现有的许多专业人才培养尚无法满足这一需求,极大制约了相关行业的转型、专业和学科的发展,导致这种状况的原因是多方面的:一些非软件学科的专业人才培养直接将软件学科中的某些先进软件技术套用到相关专业领域之中,并没有系统地考虑这些技术在跨界专业领域中的实用性以及其软件应用需求的特殊性;它们更多地关注于自身专业领域的相关知识和能力,忽视和错失了软件学科的知识和技术给专业领域问题的解决带来的新机遇。因此,如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才,将是诸多专业和学科教育面临的重大机遇和挑战。在现有的人才培养体系下,我们应该深入思考如何在掌握专业基础知识的同时,将软件学科的知识与相关专业学科的知识相交叉和融合,实现从单一专业人才到跨界复合型、创新型人才的转变,满足人机物融合时代对复合型、创新型人才的巨大需求。
\subsection{适应软件学科发展的人才培养理念及教育方法}
在人机物高度融合的时代,软件学科教育既要根据软件学科的特点、顺应学科的发展趋势,也要充分利用好学科发展的成果,促进学科人才的培养。软件学科教育在教育理念、方法和模式等方面面临一系列的挑战。
以互联网为基础的信息技术正改变甚至颠覆传统的教学理念和方法以MOOC、SPOC等为代表的大规模在线教育意味着互联网大众不仅是教育的受益者也是教育的参与者。软件学科教育朝着普及化和全民化的方向发展越来越多的大众涉足软件的使用、评价甚至开发因而成为软件学科教育的对象。这就需要为软件学科的大众化和普及化教育投入足够的教育资源、提供有效的方式和手段。以群智软件开发方法为代表的软件开发隐喻给软件学科教育提供了新的启示借助于互联网大众、利用群智力量来推进软件学科教育将是未来的一个重要趋势它不仅可促进软件学科教育的普及化而且还可通过大众的参与和协同共同分享学习的经验和资源。
\begin{itemize}
\item[$\bullet$] \textbf{如何借助软件学科的成果来加强软件学科人才的教育}
\item[$\bullet$] \textbf{如何为软件学科教育提供软件工具?}
\end{itemize}
在几十年的发展过程中,软件学科领域积累了大量多样的资源,包括代码、模型、文档、数据、开发知识等等。尤其是近年来,随着以开源软件为代表的群智软件工程的快速发展,在互联网的开源软件社区汇聚了各种软件资源和开发数据。这既给软件学科教育创造了条件、提供了“物质”基础,同时给软件学科教育提出了新的问题和挑战:如何借助这些软件资源来探究软件学科人才的成长轨迹和培养路径?如何利用这些软件资源来来支持软件学科教育、促进软件人才培养?
软件可为特定领域的问题提供基于计算平台的解决方案。软件学科教育也是一个特殊的应用领域,它涉及与教育有关的诸多问题的解决,如教育资源的组织、分享和推荐,学习者的交互和协同,教育成效的考核和评估等等。因此,如何为软件学科教育提供支撑软件成为一个开放性的问题。
\begin{itemize}
\item[$\bullet$] \textbf{如何顺应当前教育理念和手段的发展,改革软件学科人才的教育方式和方法?}
\end{itemize}
\subsection{软件伦理制度建设及教育问题}
\label{subsection:10_1_5}
\begin{figure}[!b]
\centering
\includegraphics[width=.8\linewidth]{fig2-10/mainwork.png}
\caption{软件学科教育的主要研究内容}
\label{fig:fig2_10_1}
\end{figure}
以互联网为基础的信息技术正改变甚至颠覆传统的教学理念和方法以MOOC、SPOC等为代表的大规模在线教育意味着互联网大众不仅是教育的受益者也是教育的参与者。随着软件的普及化以及软件学科逐步成为一门基础性学科软件学科教育朝着普及化和全民化的方向发展越来越多的大众涉足软件的使用、评价甚至开发因而成为软件学科教育的对象。这就需要为软件学科的大众化和普及化教育投入足够的教育资源、提供有效的方式和手段。以群体化软件开发方法为代表的软件开发隐喻给软件学科教育提供了新的启示借助于互联网大众、利用群智的力量来推进软件学科教育将是未来的一个重要趋势它不仅有促进软件学科教育的普及化而且还可通过大众的协同共同分享学习的经验和资源。
在人机物融合时代,计算机软件对人类社会的方方面面产生了重大和深远的影响,也带来一些深层次、前所未有的风险和问题,如私密数据被窃取、软件留有后门、系统受到攻击等等。我们社会还没有建立起针对这些风险和问题的伦理准则和法律体系;软件研究者、开发者和使用者的行为缺乏相关的约束,也没有有效和高效的监管手段,以确保其遵守和履行法律、道德和伦理规范。软件伦理教育没有得到国家、社会和行业等的足够重视,也没有普及。缺乏软件专业背景的其他学科专家和一般大众很难从系统外部及时感知和发现潜在的软件伦理问题。自动化、智能化甚至量子化软件新技术的发展及应用将给人类社会带来更多的未知,评估它们对人类社会未来的长远影响需要对技术本身以及可能的应用场景有深入的理解,以及足够的前瞻预测能力
\begin{itemize}
\item[$\bullet$] \textbf{如何为软件学科教育提供软件支撑?}
\end{itemize}
软件为特定领域的问题提供基于计算平台的解决方案。软件学科教育是一个特殊的应用领域,它涉及诸多问题的解决,如教育资源的组织和分享、学习者的交互和协同、教育成效的考核和评估等等。因此,如何为软件学科教育提供软件支撑成为一个开放性的问题。
\section{主要研究内容}
针对上述重大挑战问题,软件学科教育需要开展以下几个方面的研究工作,包括:以“计算思维 + 创新思维”为核心的普及教育§10.2.1以“多学科交叉融合知识体系系统能力和解决复杂工程问题能力培养”为核心的专业教育§10.2.2);以“专业学科知识 + 软件学科知识”为基础实现复合型、创新型和跨界人才培养的其他学科专业教育§10.2.3);以及以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革§10.2.4)。
\subsection{以“计算思维 + 创新思维”为核心的普及教育}
针对上述重大挑战问题,软件学科教育需要开展以下诸多方面的研究工作,包括:以“知识普及 + 思维培养”为核心的普及教育(§\ref{subsection:10_2_1});以“复合型 + 创新型”为目的的跨学科教育(§\ref{subsection:10_2_2});以“知识体系 + 能力培养”为核心的专业教育(§\ref{subsection:10_2_3});以“探究规律 + 方法创新 ”为主体的教育理念和方法改革(§\ref{subsection:10_2_4});以及以“健全制度 + 加强监督”为核心的软件伦理建设、治理和教育(§\ref{subsection:10_2_5})。
\subsection{以“知识普及 + 思维培养”为核心的普及教育}
\label{subsection:10_2_1}
\begin{itemize}
\item[$\bullet$] \textbf{软件学科核心认知能力的成长模型和规律及其知识体系}
\end{itemize}
软件学科的认知能力以计算思维为核心,包含抽象思维、表达交流、逻辑分析和推理、计算抽象等这些能力有其各自的特殊性,相互间存在依赖性。为此,需要深入研究以计算思维能力为核心的认知能力成长模型,探究不同受众认知能力的成长规律。与此同时,这些能力培养所需的知识潜藏在数学、语文、物理、化学、自然科学等课程的知识体系之中。软件学科认知能力的培养和上述知识之间存在横切特征,且不以软件的形态直接表征出来,而且代表这些知识体系的课程很少与实际的软件及其开发相关联。因此,需要从横切和纵切二个方面,探究并建立起支撑软件学科核心认知能力成长的知识体系。
软件学科的认知能力以计算思维为核心,包含抽象思维、表达交流、逻辑分析和推理、计算抽象等这些能力有其各自的特殊性,相互间存在依赖性。为此,需要深入研究以计算思维能力为核心的认知能力成长模型,探究不同受众认知能力的成长规律。与此同时,这些能力培养所需的知识潜藏在数学、语文、物理、化学、自然科学等课程的知识体系之中。软件学科认知能力的培养和上述知识之间存在横切关系,代表这些知识体系的课程很少与实际的软件及其开发相关联。因此,需要从横切和纵切二个方面,探究并建立起支撑软件学科核心认知能力培养的知识体系。
\begin{itemize}
\item[$\bullet$] \textbf{以计算思维为核心,融合创新思维的系统化认知能力培养方法}
\end{itemize}
人机物融合时代,软件使能的创新是软件学科辐射影响的主要目标,软件学科教育要在培养计算思维能力的同时,强化基于软件来解决问题的创新思维能力的培养。现阶段,软件学科的普及教育还是以编程技能培养为主,我们对计算思维与创新思维二者相互作用的认识还不够,无法满足软件学科普及性教育的需要。因此,我们需要研究如何将“计算思维”与“创新思维”二者相结合来深化软件学科的普及教育,探究“计算思维+创新思维”融合培养的学习路径,建立起支撑“计算思维 + 创新思维”培养的方法和手段。
人机物融合时代,软件使能的创新是软件学科辐射影响的主要目标,软件学科教育要在培养计算思维能力的同时,强化基于软件来解决问题的创新思维能力的培养。因此,我们需要研究如何将“计算思维”与“创新思维”二者相结合来深化软件学科的普及教育,探究“计算思维+创新思维”融合培养的学习路径,建立起支撑“计算思维 + 创新思维”培养的方法和手段。
\begin{itemize}
\item[$\bullet$] \textbf{适应不同认知水平且贯穿终生的软件学科普及教育方法}
\end{itemize}
软件学科普及教育受众的专业和知识背景具有多样化的特点,年龄层次和认知水平有较大的差异性。为此,需要借鉴生态化发展的思路,研究与教育对象的生理、心理和认知相适应的教育方法;研究同质生态教育方法和异质生态关联的迁移教育方法;研究如何借助于信息系统(尤其是软件系统)来支持和推广软件学科的普及教育。
软件学科普及教育受众的专业和知识背景具有多样化的特点,年龄层次和认知水平有较大的差异性。为此,需要借鉴生态化发展的思路,研究与教育对象的生理、心理和认知相适应的教育教学方法;研究同质生态教育方法和异质生态关联的迁移教育方法;研究如何借助于信息系统(尤其是软件系统)来支持和推广软件学科的普及教育。
\subsection{以“多学科交叉融合知识体系+系统能力和解决复杂工程问题能力培养”为核心的专业教育}
\subsection{以“复合型 + 创新型”为目标的跨学科教育}
\label{subsection:10_2_2}
\begin{itemize}
\item[$\bullet$] \textbf{基于“专业学科知识 + 软件学科知识”的跨学科教育知识体系}
\end{itemize}
作为基础学科,软件学科教育需要面向其他的学科专业实现外延式的发展。针对不同专业自身的特点,结合软件学科知识在该专业人才培养中所起到的作用,采取“专业学科知识 + 软件学科知识”的方式来拓展专业知识体系,开展适用于自身专业需求的教学改革,使得相关专业人才具备软件学科的知识并能运用它们来解决特定专业问题。为此需要研究如何将软件学科的知识差异化地融入到相关专业的知识体系之中,实现与相关专业知识的有机融合,实现跨学科知识体系的交叉融合和互补,为跨界人才培养奠定基础。
\begin{itemize}
\item[$\bullet$] \textbf{具有软件学科知识和能力的复合型、创新型和跨界专业人才培养方法}
\end{itemize}
随着软件学科在其他专业领域的不断渗透,在这些学科专业人才培养方案的设计中,必须解决软件学科知识储备不足的问题。由于专业背景和专业思维的差异性,不同学科专业教育对软件学科知识结构的需求和相关课程衔接也不尽相同,因此跨界的软件学科人才培养需要多元化的知识和课程体系,为此需要探究如何实施“因材施教”的教学理念,分析不同专业对软件学科的“个性化”需求,构建专业软件化的新型课程体系,设计差异化的跨界软件学科人才培养方案,以实现软件学科和其他相关学科专业交叉融合,让非软件专业的学生也具备软件学科的思维能力来解决本学科专业的问题,以满足社会对复合型、创新型的跨界软件学科人才的需求。
软件学科的跨界人才培养也是双向的。软件学科跨界进入其他学科领域的发展趋势愈发明显。在该种形式的跨界教育中,教育对象已具备良好的计算思维能力,需要研究他们如何需要跳出软件学科知识领域的思维定势,强化跨界学科知识的学习,如何以全新的视角建立起软件学科与其他学科间的关联性,探索跨界学科计算的本质,培养适用于跨界专业的计算思维能力。
\subsection{以“知识体系 能力培养”为核心的专业教育}
\label{subsection:10_2_3}
\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{具有软件学科知识和能力的复合型、创新型和跨界专业人才培养方法}
\item[$\bullet$] \textbf{开源文化教育及开源人才培养}
\end{itemize}
随着软件学科在专业领域的不断渗透,在人才培养方案设计中,必须解决学生在学习过程中软件学科相关知识储备不足的问题。跨界软件学科人才培养需要多元化的课程体系。因为专业背景和专业思维的不同,非专业软件化教学过程中对软件学科的知识结构需求和相关课程衔接也是不同的。跨界软件学科人才培养方案需要探究如何实施“因材施教”的新型教学模式,分析不同专业对软件学科的“个性化”需求,构建专业软件化的新型课程体系结构,设计差异化的跨界软件学科人才培养方案。这种差异化的人才培养方案使得软件学科和本专业学科能够更好地交叉融合在一起,让非软件专业的学生也能形成通过软件科学思维来解决本学科专业问题的能力,有利于促进交叉学科领域研究成果的产生,满足社会对复合型、创新型的跨界软件学科人才的需求
探究开源模式对软件开发人员的能力需求,将开源文化(如开源历史、开源共识及开源社区的治理规则等)、开源软件及开源社区和生态等内容有机地融入到软件学科专业的知识体系及教学和实践环节之中,研究促进开源意识、开源技能培养的教育方法和手段,积极开展基于开源和群智的教育和教学改革,建立起支撑软件学科人才培养的开源资源。
\subsection{以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革}
\subsection{以“探究规律 + 方法创新”为主体的教育理念和方法改革}
\label{subsection:10_2_4}
\begin{itemize}
\item[$\bullet$] \textbf{软件学科人才培养模型及规律}
\end{itemize}
软件学科教育对象的涉及面广,年龄层次和知识背景差异性大,培养的目的和要求多样化。软件学科教育牵涉多方面的专业知识和非专业知识,需要强化不同层次的能力和素质培养。这些知识、能力和素质之间存在内在的关联性。为此,软件学科教育需要针对不同的培养对象和目的,深入探究人才培养模型,包括知识体系、能力体系、工程素质等,分析他们在培养过程中所发挥的作用以及相互之间的继承性和依赖性。此外,软件学科人才的成长受多方面因素的影响,包括自身的素质和能力,外在的教育者及合作群体,学习的环境和激励机制,甚至学习过程中所依赖的软件平台(如开源社区)等。为此,需要研究探究软件学科人才的成长规模,依此来指导教育政策和机制的设计以及平台的建设。
软件学科教育对象的涉及面广,年龄层次和知识背景差异性大,培养的目的和要求多样化。软件学科教育牵涉多方面的专业和非专业知识,需要强化不同层次的能力和素质培养。这些知识、能力和素质之间存在内在的关联性。为此,软件学科教育需要针对不同的培养对象和培养目标,深入探究人才培养模型,包括知识体系、能力体系、工程素质等,分析它们在培养过程中所发挥的作用以及相互之间的继承性和依赖性。此外,软件学科人才的成长受多方面因素的影响,包括自身的素质和能力,外在的教育者及合作群体,学习的环境和激励机制,甚至学习过程中所依赖的软件平台(如开源社区)等。为此,需要探究软件学科人才的成长规模,以此来指导教育政策和机制的设计以及平台的建设。
\begin{itemize}
\item[$\bullet$] \textbf{软件学科资源在人才培养中的应用}
\item[$\bullet$] \textbf{软件学科资源在人才培养中的挖掘和应用}
\end{itemize}
经过几十年的积累,尤其是近年来群智软件工程的发展,软件学科积累了大量、多样、极有价值的软件资源,如以开源社区为载体的各类开源代码、知识问答、软件开发历史数据等。软件学科专业教育需要深入挖掘和利用软件学科资源在学科专业教育中的价值,系统研究如何在课程教学、实践教学和人才培养过程中有效地应用这些软件学科资源,如何将抽象的理论知识与具体的软件学科资源相结合来促进知识的理解和掌握、推动实践教学、培养软件工程能力和素养。
经过几十年的积累,尤其是近年来开源软件、群智软件开发等的发展,软件学科积累了大量、多样、极有价值的软件资源,如以开源社区为载体的开源代码、知识问答、软件开发历史数据等。软件学科教育需要深入挖掘和利用软件学科资源在教育中的价值,系统研究如何在课程教学、实践教学和人才培养过程中有效地应用这些资源,如何将抽象的知识与具体的资源相结合来促进知识的理解和掌握、推动实践教学、培养能力和素养。
\begin{itemize}
\item[$\bullet$] \textbf{群体化学习}
\end{itemize}
借助互联网平台,通过吸引、汇聚和管理大规模的学习者,使得他们以竞争和合作等多种自主协同方式来开展学习将是未来的一种重要学习方式,我们称之为群体化学习。软件学科教育需要充分借助于互联网大众的智慧和理念,施行群体化学习的思想和理念,以促进软件学科人才的大规模、高质量、普及化的培养。为此,基于群智理论和方法的指导,借助于互联网上的大数据分析,需要研究支持群体化学习的组织结构和协同模型,分析和设计群体化学习的激励机制,探究不同组织结构、协同模型和激励机制对群体化学习成效、质量和受益面等产生的影响及涌现结果。
借助互联网平台,通过吸引、汇聚和管理大规模的学习者,使得他们以竞争和合作等多种自主协同方式来开展学习将是未来的重要学习方式,我们称之为群体化学习。软件学科教育需要充分借助于互联网大众的智慧和理念,施行群体化学习的思想,以促进软件学科人才的大规模、高质量、普及化的培养。为此,基于群智理论和方法的指导,借助于互联网上的大数据分析,需要研究支持群体化学习的组织结构和协同模型,分析和设计群体化学习的激励机制,探究不同组织结构、协同模型和激励机制对群体化学习成效、质量和受益面等产生的影响及涌现结果。
\begin{itemize}
\item[$\bullet$] \textbf{大规模在线开放实践MOOP}
\end{itemize}
能力和素质培养是软件学科教育的一项主要任务。针对软件学科的发展特点,需要研究软件学科人才的能力和素质模型,建立不同能力和素质之间的关系,分析普及教育、专业教育、非专业教育等分别需要达到什么样的水平和层次探究软件学科内涵的拓展如何影响能力和素质。实践是支撑能力和素质培养的主要教学途径。依托大规模人群的在线开放实践称为MOOP将成为能力和素质培养的重要趋势也是对MOOC在该方面存在欠缺的有效弥补。为此需要研究支撑能力和素质培养的实践体系建设探究如何将诸如游戏化机制等引入到MOOP之中以支持大规模在线开放实践分析针对MOOP的量化表示与评测方法建立起针对能力和素质培养的评价体系与评价指标。
能力和素质培养是软件学科教育的一项主要任务。针对软件学科的发展特点,需要研究软件学科人才的能力和素质模型,建立不同能力和素质之间的关系,分析普及教育、专业教育、跨学科教育等分别需要达到什么样的水平和层次探究软件学科内涵的拓展如何影响能力和素质。实践是支撑能力和素质培养的主要教学途径。依托大规模人群的在线开放实践称为MOOP将成为能力和素质培养的重要趋势也是对MOOC在该方面存在欠缺的有效弥补。为此需要研究支撑能力和素质培养的实践体系建设探究如何将诸如游戏化机制等引入到MOOP之中以激励大众参与和贡献分析针对MOOP的量化表示与评测方法建立起针对能力和素质培养的评价体系与评价指标。
\begin{itemize}
\item[$\bullet$] \textbf{软件学科教育的支撑软件}
\item[$\bullet$] \textbf{支撑软件学科教育的软件工具}
\end{itemize}
需要针对软件学科教育的需求开发相应的支撑软件,研究软件学科教育软件如何同步分享和利用互联网上诸如开源社区中的学习资源(如开源软件和软件开发知识),构建软件学科教育软件与开源社区之间的互操作和交互机制,探究如何基于教育大数据的分析来构建学习者的个性化学习路径,并依次为基础为其提供最佳学习规划。
针对软件学科教育的特殊需求,借助于软件学科资源大数据,交叉诸如人工智能、大数据分析、移动计算等技术,研究支撑软件学科教育的关键软件技术,包括开源社区中学习资源(如开源软件和软件开发知识)的同步和分享技术,针对学习者个性化特点及需求的教育资源推荐技术,实现教育软件与开源社区间互操作和交互技术,基于教育大数据来构建学习者个性化学习路径的方法,对学习者的学习情况和成长进行跟踪和考评的技术等等,并在此基础上研发软件学科教育软件。
\subsection{以“健全制度 + 加强监督”为核心的软件伦理建设、治理和教育}
\label{subsection:10_2_5}
\begin{itemize}
\item[$\bullet$] \textbf{制定软件领域法律法规,加强软件伦理的制度化建设}
\end{itemize}
国家、软件行业主管部门应与行业主体、学术团体、社会公众等众多利益相关方通力合作,制定、发布和修订软件领域的专项法律法规和伦理准则,让软件的研究、开发和应用有法可依、有规可循。支持行业自律,建立伦理审查制度,成立自律组织,制定行业标准等,积极推动软件伦理的全球治理,参与相关国际标准、规则的制定。
\begin{itemize}
\item[$\bullet$] \textbf{研究软件伦理的合规检测和监督技术,大力开展软件伦理教育和宣传}
\end{itemize}
加快研发软件伦理合规检测和监督技术,尤其是自动化技术,例如面向软件版权保护的代码溯源技术、软件许可证违规使用检测技术,软件及软件使用者恶意、危险行为检测技术等,形成覆盖全面、导向明确、规范有序、协调一致的检测和监督技术体系,辅助软件行业从业者、用户和监管机构快速发现和修正违背伦理的问题,使法律法规、伦理制度得到严格执行。同时,研究和建立完善的软件伦理教育机制,针对不同教育阶段和年龄层次的人群普及软件伦理的教育,搭建创新与伦理之间高效对话机制和沟通平台,制定并落实全民软件素养培养计划。
\section{本章小结}
在人机物融合时代,随着软件辐射面和影响面的扩大,软件学科的不断发展和进步,软件学科教育的内涵和外延也在发生改变,它涉及普及教育、专业教育、其他学科专业教育、教育理念与方法改革等多个方面,面临着一系列重大问题的挑战,包括:如何针对具有不同认知水平的受众对象开展普及教育?如何针对人机物融合时代特点深化专业教育?如何在其他学科专业中融合软件学科的知识以加强非软件学科专业教育?以及如何开展软件学科人才培养理念和教育方法的改革等等。
软件学科教育涉及诸多方面的研究内容,包括:以“计算思维 + 创新思维”为核心的普及教育;以“多学科交叉融合知识体系+系统能力和解决复杂工程问题能力培养”为核心的专业教育;以“专业学科知识 + 软件学科知识”为基础、实现复合型、创新型和跨界人才培养的非软件学科专业教育;以“探究成才规律 + 寻求理念创新 + 开发支撑软件”为核心的教育方法改革等等。
在人机物融合时代,随着软件辐射面和影响面的扩大,软件学科的发展和进步,软件学科教育的内涵和外延也在发生改变,它涉及普及教育、专业教育、跨专业教育、教育理念与方法改革等多个方面,面临着一系列重大的问题的挑战,包括:如何针对具有不同认知水平的受众对象开展普及教育?如何根据人机物融合时代特点来深化专业教育?如何加强软件学科与其他学科的融合来实现跨专业的教育?以及如何改革软件学科的教育理念和方法来满足日增长的人才培养需求、如何应对软件伦理问题等等。
为了迎接上述挑战软件学科教育需开展一系列研究内容包括1以“计算思维 + 创新思维”为核心的普及教育2以“知识体系能力培养”为核心的专业教育3以“复合型 + 创新型”为目标的跨学科教育4以“探究规律 + 方法创新”为主体的教育理念和方法改革5以“健全制度 + 加强监督”为核心的软件伦理建设、治理和教育。
\section{参考文献}
[1] 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59.
[2] 吴爱华, 侯永峰, 杨秋波, 等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017(1): 1-9.
[1] 吴爱华, 侯永峰, 杨秋波等. 加快发展和建设新工科 主动适应和引领新经济[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.
[2] 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59.
[4] 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组高等教育出版社2019.
[3] 王怀民, 吴文峻, 毛新军, 丁博, 郭长国, 李未, 复杂软件系统的成长性构造与适应性演化, 中国科学:信息科学, 2014, 45(6): 743-761.
[5] 李晓明, “老年编程”的畅想, 计算机学会通讯, 15(15), 2019.
[4] 梅宏, 周明辉. 开源对软件人才培养带来的挑战[J]. 计算机教育, 2017, (1): 2-5.
[6] 梅宏, 周明辉. 开源对软件人才培养带来的挑战[J]. 计算机教育, 2017, (1): 2-5.
[5] 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.
[7] 毛新军, 尹刚等, 新工科背景下的软件工程课程实践教学建设: 思考与探索, 计算机教育, 2018, 7: 5-8.
[6] Pierre Bourque, Richard E. Fairley, SWEBOK V3.0 - Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2014.
[8] Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7), 71-77.
[7] 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组高等教育出版社2019.
[9] Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006.
[8] 李晓明, “老年编程”的畅想, 计算机学会通讯, 2019, 15(5): 51.
[10] 中国ICT人才生态白皮书华为、计世资讯编制2018年7月
[9] Wing, Jeannette,. Computational Thinking Benefits Society, 40th Anniversary Blog of Social Issues in Computing, 2014.
[11] Wing, Jeannette . Computational Thinking Benefits Society. 40th Anniversary Blog of Social Issues in Computing, 2014.
[10] Grover, S. . The 5th Cof 21st century skills. Try computational thinking (not coding). Retrieved from EdSurge News: https://www. Edsurge.com/news/2018-02-25-the-5th-c-of-21st-century-skills-try-computational-thinking-not-coding. 2018.
[12] EdSurge, "The 5th 'C' of 21st Century Skills? Try Computational Thinking (Not Coding) - EdSurge News", 2018.
[11] Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7): 71-77.
[13] "Future-forward: How to incorporate the 5th 'C' of 21st Century learning". eSchool News. 2017.
[12] Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006.
[14] ACM中国教育委员会教育部高等学校大学计算机课程教学委员会(译). 信息技术课程体系指南2017. 北京:高等教育出版社, 2019.
[13] 毛新军, 王涛, 余跃. 软工程实践教程: 基于开源和群智的方法, 高等教育出版社, 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).
%\begin{thebibliography}{00}
%\bibitem{ref1} 吴爱华, 侯永峰, 杨秋波等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017, (1): 1-9.
[17] ACM and IEEE Computer Society, Computer Engineering Curricula 2016 (CE 2016).
%\bibitem{ref2} 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59.
[18] IEEE Computer Society, SWEBOK V3.0 (Guide to the Software Engineering Body of Knowledge).
%\bibitem{ref3} 王怀民, 吴文峻, 毛新军, 丁博, 郭长国, 李未, 复杂软件系统的成长性构造与适应性演化, 中国科学:信息科学, 2014, 45(6): 743-761.
[19] ACM and IEEE Computer Society, Software Engineering 2014 (SE 2014)
%\bibitem{ref4} 梅宏, 周明辉. 开源对软件人才培养带来的挑战[J]. 计算机教育, 2017, (1): 2-5.
[20] ACM and IEEE Computer Society, Graduate Software Engineering 2009(GSwE2009)
%\bibitem{ref5} 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.
[21] 刘海涛. 高等学校跨学科专业设置:逻辑、困境与对策[J]. 江苏高教, 2018(2):6-11.
%\bibitem{ref6} Pierre Bourque, Richard E. Fairley, SWEBOK V3.0 - Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2014.
[22] 焦磊.国外知名大学跨学科建制趋势探析[J].高等工程教育研究2018(3): 124-129.
%\bibitem{ref7} 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组高等教育出版社2019.
[23] 李韬.“技术+管理”复合型人才培养目标下实践教学创新研究[J]. 企业科技与发展, 2019, 448(2):161-162.
%\bibitem{ref8} 李晓明, “老年编程”的畅想, 计算机学会通讯, 2019, 15(5): 51.
[24] 王涛, 白羽, 余跃, 等. Trustie:面向软件工程群体化实践教学的支撑平台[J]. 计算机教育, 2018, (7):18-22.
%\bibitem{ref9} Wing, Jeannette,. Computational Thinking Benefits Society, 40th Anniversary Blog of Social Issues in Computing, 2014.
[25] 高珍, 林冰轩, 袁时金, 等. 以学科交叉推动软件工程复合型硕士培养的探索及实践[J]. 计算机教育, 2018, (11):21-24.
%\bibitem{ref10} Grover, S. . The 5th Cof 21st century skills. Try computational thinking (not coding). Retrieved from EdSurge News: https://www. Edsurge.com/news/2018-02-25-the-5th-c-of-21st-century-skills-try-computational-thinking-not-coding. 2018.
%\bibitem{ref11} Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7): 71-77.
%\bibitem{ref12} Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006.
%\bibitem{ref13} 毛新军, 王涛, 余跃. 软工程实践教程: 基于开源和群智的方法, 高等教育出版社, 2019.
%\end{thebibliography}

BIN
fig2-10/mainwork.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB