From 455e5179cddb27828909db9ab3f9ebcc77e75afa Mon Sep 17 00:00:00 2001 From: xjmao Date: Wed, 23 Oct 2019 16:43:03 +0800 Subject: [PATCH] reference and keyword index --- Ch2-10-Education.tex | 113 ++++++++++++++++++++++--------------------- references_2_10.bib | 95 ++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+), 55 deletions(-) create mode 100644 references_2_10.bib diff --git a/Ch2-10-Education.tex b/Ch2-10-Education.tex index 38121dc..542401a 100644 --- a/Ch2-10-Education.tex +++ b/Ch2-10-Education.tex @@ -2,33 +2,33 @@ ~\\ -学科教育基于学科的独立知识体系,宣传和普及学科知识,培养学科专业人才。学科教育是构成学科的要素之一,并受学科的发展、教育理念和方法的进步等因素的影响。近年来,随着软件学科的边界不断拓展,内涵持续变化,地位不断提升,以及对人类社会的影响面日益扩大,软件学科教育的重要性日益凸显。与此同时,随着我国经济结构的调整和升级以及以信息技术为代表的新经济的快速发展[1],软件学科教育需要为国家的经济转型培养高素质的专业人才。如何加强软件学科教育,提高人才培养的质量和水平,让更多的社会大众从中受惠和受益,成为全社会关注的话题。 +学科教育基于学科的独立知识体系,宣传和普及学科知识,培养学科专业人才。学科教育是构成学科的要素之一,并受学科的发展、\index{教育理念和方法}的进步等因素的影响。近年来,随着软件学科的边界不断拓展,内涵持续变化,地位不断提升,以及对人类社会的影响面日益扩大,软件学科教育的重要性日益凸显。与此同时,随着我国经济结构的调整和升级以及以信息技术为代表的新经济的快速发展\cite{aihua2017accelerate},软件学科教育需要为国家的经济转型培养高素质的专业人才。如何加强软件学科教育,提高人才培养的质量和水平,让更多的社会大众从中受惠和受益,成为全社会关注的话题。 -软件学科的研究主体是人类及其思维活动,客体是软件及其内在规律。在人机物融合时代,“软件无所不在”、“软件定义一切”使得软件成为人类社会的重要基础设施[2],软件系统的环境、边界、构成、形态、交互等发生了深刻的变化。这些变化不仅推动了软件学科的发展和进步,而且使得软件学科教育的对象、面临的挑战等也随之发生变化。 +软件学科的研究主体是人类及其思维活动,客体是软件及其内在规律。在人机物融合时代,“软件无所不在”、“软件定义一切”使得软件成为人类社会的重要基础设施\cite{hong2018everything},软件系统的环境、边界、构成、形态、交互等发生了深刻的变化。这些变化不仅推动了软件学科的发展和进步,而且使得软件学科教育的对象、面临的挑战等也随之发生变化。 -首先,随着软件的日益普及,软件对人类社会和现实世界的渗透力越来越强、影响面越来越广,受其辐射和影响的人群也越来越多,并随之产生了一系列新的问题、出现了新的价值取向,如伦理、道德、可信、隐私保护、安全等。越来越多的大众融入到了软件定义的世界(如使用微信来开展社交),甚至通过编程等方式参与软件的构造。总体而言,\textbf{软件学科与人类社会间的关系变得更为紧密,软件学科教育日趋普及化和全民化。} +首先,随着软件的日益普及,软件对人类社会和现实世界的渗透力越来越强、影响面越来越广,受其辐射和影响的人群也越来越多,并随之产生了一系列新的问题、出现了新的价值取向,如\index{伦理}、\index{道德}、可信、隐私保护、安全等。越来越多的大众融入到了软件定义的世界(如使用微信来开展社交),甚至通过编程等方式参与软件的构造。总体而言,\textbf{软件学科与人类社会间的关系变得更为紧密,软件学科教育日趋普及化和全民化。} 其次,随着计算平台不断向物理世界和人类社会的快速延伸,软件作为“集成器”在连接物理系统和社会系统中发挥着日趋重要的作用,软件泛在化和人机物融合的趋势日益明显,软件成为诸多行业和领域(如机器人、航空、航天、生物医学等)解决其特定问题的核心手段和必不可少的工具。\textbf{这些行业、领域的专业人士需要掌握软件学科的基础知识和核心能力,学会运用软件工具来解决特定领域的问题;与此同时,软件学科的专业人才也需要向特定领域扩展和渗透,软件学科教育呈现出与其他学科教育日益交融的趋势。} -第三,软件系统变得日益复杂,并体现多元价值,传统的还原论开发方法在应对软件日益增长的复杂性方面面临着诸多挑战[3],需要从生态系统的角度认识软件系统及其开发和演化。随着软件学科外延的拓展和内涵的发展,软件学科需与更多的学科进行交叉。开源软件的成功以及开源文化的流行对人才培养提出了新的要求[4][5],使得软件学科教育的知识体系[6]不断的丰富和发展,对软件专业人才的知识、能力、素质和技能等要求也随之发生变化。\textbf{软件学科教育需在知识体系层面与时俱进,需从系统观和系统能力、生态观、多元价值观等方面加强专业人才的培养。} +第三,软件系统变得日益复杂,并体现多元价值,传统的还原论开发方法在应对软件日益增长的复杂性方面面临着诸多挑战\cite{huaimin2014growth},需要从生态系统的角度认识软件系统及其开发和演化。随着软件学科外延的拓展和内涵的发展,软件学科需与更多的学科进行交叉。\index{开源软件}的成功以及\index{开源文化}的流行对人才培养提出了新的要求\cite{hong2017challenges, bandyopadhyay2016ict},使得软件学科教育的\index{知识体系}\cite{borque2014swebok}不断的丰富和发展,对软件专业人才的知识、能力、素质和技能等要求也随之发生变化。\textbf{软件学科教育需在知识体系层面与时俱进,需从\index{系统观}和\index{系统能力}、生态观、多元价值观等方面加强专业人才的培养。} -最后,当前教育理念和技术的发展日新月异,教育教学改革非常活跃,如MOOC、SPOC、个性化学习、学习路径推荐等,计算机软件在教育改革和人才培养中发挥着日益重要的作用。\textbf{软件学科教育需要借鉴当前先进的教育理念和方法[7],结合自身的特点和人才培养的特殊要求,利用软件学科已经积累的资源,交叉大数据分析、机器学习、数据挖掘等技术手段,研制教育软件工具,以推动软件学科教育和人才培养的改革。} +最后,当前教育理念和技术的发展日新月异,教育教学改革非常活跃,如\index{MOOC}、\index{SPOC}、\index{个性化学习}、\index{学习路径推荐}等,计算机软件在教育改革和人才培养中发挥着日益重要的作用。\textbf{软件学科教育需要借鉴当前先进的\index{教育理念和方法}\cite{editors2019computer},结合自身的特点和人才培养的特殊要求,利用软件学科已经积累的资源,交叉大数据分析、机器学习、数据挖掘等技术手段,研制\index{教育软件工具},以推动软件学科教育和人才培养的改革。} -概括起来,软件学科作为基础学科,其教育的影响面大,面临挑战多,需要推动普及教育,加强跨学科教育,深化专业教育,重视人才培养理念和教育方法的改革,促进软件伦理制度的建设及宣传教育。 +概括起来,软件学科作为基础学科,其教育的影响面大,面临挑战多,需要推动普及教育,加强\index{跨学科教育},深化\index{专业教育},重视人才培养理念和教育方法的改革,促进软件伦理制度的建设及宣传教育。 \section{重大挑战问题} -为了适应人机物融合时代软件学科的发展以及人才培养的需求,软件学科教育在普及教育(§\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})等面临一系列的重大挑战问题。 +为了适应人机物融合时代软件学科的发展以及人才培养的需求,软件学科教育在普及教育(§\ref{subsection:10_1_1})、\index{跨学科教育}(§\ref{subsection:10_1_2})、\index{专业教育}(§\ref{subsection:10_1_3})、教育理念和方法改革(§\ref{subsection:10_1_4})、\index{软件伦理制度建设}和宣传教育(§\ref{subsection:10_1_5})等面临一系列的重大挑战问题。 \subsection{普及教育问题} \label{subsection:10_1_1} -在人机物融合时代,软件不仅是人类社会的基础设施,而且正成为承载人类文明的新载体。如何做好现代软件文明的继承者、传播者和创作者,软件学科教育必须顺应这一时代要求,从单一性的专业教育向大众化的通识教育转变,即惠及普通大众,从儿童、少年、青年、中年到老年[8],人人能用软件,人人能评软件,人人能读软件,人人能写软件。 +在人机物融合时代,软件不仅是人类社会的基础设施,而且正成为承载人类文明的新载体。如何做好现代软件文明的继承者、传播者和创作者,软件学科教育必须顺应这一时代要求,从单一性的专业教育向大众化的通识教育转变,即惠及普通大众,从儿童、少年、青年、中年到老年\cite{xiaoming2014imagination},人人能用软件,人人能评软件,人人能读软件,人人能写软件。 \begin{itemize} -\item[$\bullet$] \textbf{如何培养以计算思维为核心,融合创新思维的系统性认知能力} +\item[$\bullet$] \textbf{如何培养以\index{计算思维}为核心,融合\index{创新思维}的系统性\index{认知能力}} \end{itemize} -软件是人类智力活动的创作结果。软件学科普及教育首先需要解决社会大众(尤其是青少年)针对软件及其开发的系统化认知问题。从系统观的视角上看,软件学科的核心认知能力是计算思维,它是信息社会中现代人的基本素养,也是人类诸多认知能力的核心要素之一[9][10]。从内涵上看,计算思维能力绝不仅仅是编程技能,也不纯粹是掌握某些程序设计语言,它还包括应用软件来创新解决问题以及由此所需的创新思维能力。现阶段软件已渗透到自然科学、工程技术、社会人文等方方面面,计算思维与其他认知能力(如批判思维、创新思维等)相互作用,相互影响,不可分离。软件学科教育要突出软件作为“集成器”在连接物理系统和社会系统中的关键作用,强化通过软件来解决各种实际问题的思维训练。为此,软件学科的普及教育需要充分揭示计算思维能力与其他认知能力之间的关系,深化以计算思维、创新思维为核心的普及教育,提高大众的系统化认知能力。现阶段,软件学科的普及教育还是以编程技能培养为主,我们对计算思维与创新思维二者相互作用的认识还不够深入,无法满足软件学科普及性教育的需要。 +软件是人类智力活动的创作结果。软件学科普及教育首先需要解决社会大众(尤其是青少年)针对软件及其开发的系统化认知问题。从\index{系统观}的视角上看,软件学科的核心认知能力是计算思维,它是信息社会中现代人的基本素养,也是人类诸多认知能力的核心要素之一\cite{wing2014computational, grover20185th}。从内涵上看,计算思维能力绝不仅仅是编程技能,也不纯粹是掌握某些程序设计语言,它还包括应用软件来创新解决问题以及由此所需的创新思维能力。现阶段软件已渗透到自然科学、工程技术、社会人文等方方面面,计算思维与其他认知能力(如批判思维、创新思维等)相互作用,相互影响,不可分离。软件学科教育要突出软件作为“集成器”在连接物理系统和社会系统中的关键作用,强化通过软件来解决各种实际问题的思维训练。为此,软件学科的普及教育需要充分揭示计算思维能力与其他认知能力之间的关系,深化以计算思维、创新思维为核心的普及教育,提高大众的系统化认知能力。现阶段,软件学科的普及教育还是以编程技能培养为主,我们对计算思维与创新思维二者相互作用的认识还不够深入,无法满足软件学科普及性教育的需要。 \begin{itemize} \item[$\bullet$] \textbf{不同教育受众认知能力的成长有何规律,如何构建适应不同受众的普及教育知识体系} @@ -37,7 +37,7 @@ 软件学科普及教育受众对象的涉及面广、差异性大,其中青少年教育是核心和关键。他们是一类认知能力正逐步成长的特殊人群,其基本认知能力,如抽象思维能力、表达交流能力、逻辑分析与推理能力、计算抽象能力等正处于逐步形成的阶段。针对不同的受众对象,他们在计算思维等认知能力的成长方面有何规律性?不同认知能力的形成存在怎样的依赖性?计算思维的训练与哪些认知能力密切相关?等等基础性的问题值得去探究。与此同时,计算思维等认知能力的培养需要依托软件学科和非软件学科的诸多相关知识,这些知识需要与实际问题域相结合,以加强计算思维能力的训练和实践。因此,如何以软件学科知识为核心,建立起科学的、层次性的、可满足不同受众和认知能力培养需求的知识体系,是软件学科普及教育亟需解决的关键问题。 \begin{itemize} -\item[$\bullet$] \textbf{如何构建与认知能力和水平相适应且贯穿终身的软件学科普及教育理念与方法} +\item[$\bullet$] \textbf{如何构建与认知能力和水平相适应且贯穿终身的软件学科普及\index{教育理念与方法}} \end{itemize} 软件学科普及教育对象来自各行各业,知识背景不一样,认知能力千差万别,且需面对从儿童期、少年期、青年期、中年期甚至到老年期等不同时期的人群,因此普及教育模式不能单一化,教育方法不能统一化。对于儿童和少年,游戏编程、可视化和实物编程有利于推动以计算思维为核心的认知能力逐步形成和深化;对于青少年,创新思维与软件核心认知能力的紧密融合可有效推动其认知能力的提升;对于成年人,通过软件创意创作把个人智慧进行沉淀和累积更能发挥其特长;对于老年人,编程成为他们除了琴棋书画广场舞之外的另一个重要兴趣方向。与此同时,随着信息技术的发展,教育的方式和方法也在不断的改变。为此,软件学科普及教育需要寻求适应不同普及对象、不同行业领域、不同认知水平的教育理念和方法。 @@ -50,7 +50,7 @@ \item[$\bullet$] \textbf{如何实现软件学科知识体系与其它学科专业知识体系的融合} \end{itemize} -现有的许多学科与软件学科关系紧密,但在教育层面,它们很少融合软件学科的知识体系。随着软件学科的日趋泛在化以及对各个领域、行业和专业的不断渗透,以及社会对复合型、创新型人才的迫切需求,如何把软件学科的相关知识体系融入到非软件学科(如航空、航天、机器人、新材料等)的知识体系中,或者让软件学科的人才融入到其他学科领域之中,构建跨专业、多学科交叉的融合性知识体系,将成为软件学科教育和其它非软件学科教育面临的一项重大挑战。 +现有的许多学科与软件学科关系紧密,但在教育层面,它们很少融合软件学科的知识体系。随着软件学科的日趋泛在化以及对各个领域、行业和专业的不断渗透,以及社会对\index{复合型人才}、\index{创新型人才}的迫切需求,如何把软件学科的相关知识体系融入到非软件学科(如航空、航天、机器人、新材料等)的知识体系中,或者让软件学科的人才融入到其他学科领域之中,构建跨专业、多学科交叉的融合性知识体系,将成为软件学科教育和其它非软件学科教育面临的一项重大挑战。 其他学科教育需要借鉴和引入“软件定义+计算思维”的理念,使得相关专业人才具备利用软件学科的思维方法解决专业特定问题的能力,这种新的融合性教学模式能够充分发挥软件学科的优势和专业特长,有利于激励学生探索交叉学科的新领域,促进学生能力和素质的全面发展。实现“非软件学科 + 软件学科”相融合的教育改革,既是当前诸多专业教育面临的机遇,也是它们必须应对的挑战。针对相关学科专业(如农业、气象、生物医学、现代服务业等)的人才培养,在保障以本学科专业为主导的前提下,如何加强软件学科相关知识的学习和能力的培养,如何调整培养方案和知识体系,完成从“专业型”到“融合型”学科培养方式的转型,是当前非软件学科教育亟待解决的问题。 @@ -60,7 +60,7 @@ \item[$\bullet$] \textbf{如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才} \end{itemize} -随着行业软件化转型需求的不断增长,诸多学科和专业与软件学科的融合日趋紧密,迫切需要具有软件学科知识的复合型、创新型跨界专业人才。然而,现有的许多专业人才培养尚无法满足这一需求,极大制约了相关行业的转型、专业和学科的发展,导致这种状况的原因是多方面的:一些非软件学科的专业人才培养直接将软件学科中的某些先进软件技术套用到相关专业领域之中,并没有系统地考虑这些技术在跨界专业领域中的实用性以及其软件应用需求的特殊性;它们更多地关注于自身专业领域的相关知识和能力,忽视和错失了软件学科的知识和技术给专业领域问题的解决带来的新机遇。因此,如何培养具有软件学科知识和能力的复合型、创新型跨界专业人才,将是诸多专业和学科教育面临的重大机遇和挑战。在现有的人才培养体系下,我们应该深入思考如何在掌握专业基础知识的同时,将软件学科的知识与相关专业学科的知识相交叉和融合,实现从单一专业人才到跨界复合型、创新型人才的转变,满足人机物融合时代对复合型、创新型人才的巨大需求。 +随着行业软件化转型需求的不断增长,诸多学科和专业与软件学科的融合日趋紧密,迫切需要具有软件学科知识的复合型、创新型跨界专业人才。然而,现有的许多专业人才培养尚无法满足这一需求,极大制约了相关行业的转型、专业和学科的发展,导致这种状况的原因是多方面的:一些非软件学科的专业人才培养直接将软件学科中的某些先进软件技术套用到相关专业领域之中,并没有系统地考虑这些技术在跨界专业领域中的实用性以及其软件应用需求的特殊性;它们更多地关注于自身专业领域的相关知识和能力,忽视和错失了软件学科的知识和技术给专业领域问题的解决带来的新机遇。因此,如何培养具有软件学科知识和能力的复合型、创新型\index{跨界专业人才},将是诸多专业和学科教育面临的重大机遇和挑战。在现有的人才培养体系下,我们应该深入思考如何在掌握专业基础知识的同时,将软件学科的知识与相关专业学科的知识相交叉和融合,实现从单一专业人才到跨界复合型、创新型人才的转变,满足人机物融合时代对复合型、创新型人才的巨大需求。 \subsection{专业教育问题} \label{subsection:10_1_3} @@ -70,19 +70,19 @@ \item[$\bullet$] \textbf{如何认识人机物融合时代对软件学科专业能力提出的新要求?} \end{itemize} -在人机物融合时代,由于软件系统自身形态、复杂性、价值观等发生了深刻的变化。软件学科教育需要从提升可持续核心竞争力的角度加强专业人才的能力和素质培养[7]。 +在人机物融合时代,由于软件系统自身形态、复杂性、价值观等发生了深刻的变化。软件学科教育需要从提升可持续核心竞争力的角度加强专业人才的\index{能力}和\index{素质}培养\cite{editors2019computer}。 复杂庞大的软件系统在人类社会的诸多领域发挥着日益重要的作用和影响,如银行金融、城市服务、国防军事、电力通讯等等。这类系统不仅在基本形态、运维方式、质量要求等方面有其特殊性,而且在支持这类系统建设的软件开发隐喻、软件生态环境、元级方法论等也呈现出新的特点。软件学科教育迫切地需要培养能够掌握和驾驭这类软件系统开发和运维的人才。 -从系统观的视角,人机物融合时代的软件系统已不再是纯粹的技术系统,而是需要与物理世界、社会系统等进行高度融合。这类系统的开发需要采用系统论方法(而非还原论方法)来驾驭复杂性,要从“人机物”相互融合的角度和层次来认识软件系统的构成,要将软件视为融合人机物的“万能集成器”;需要从横向(系统的联盟)和纵向(系统的层次)、高层、宏观、全局等视角来分析系统的构成及考虑系统的设计,需要站在系统的高度来综合考虑人、机、物之间的关系,通过人、机、物三者间的协同来给出软件系统的解决方案,即软件学科专业人才需要具备“系统能力”。 +从系统观的视角,人机物融合时代的软件系统已不再是纯粹的技术系统,而是需要与物理世界、社会系统等进行高度融合。这类系统的开发需要采用系统论方法(而非还原论方法)来驾驭复杂性,要从“人机物”相互融合的角度和层次来认识软件系统的构成,要将软件视为融合人机物的“万能集成器”;需要从横向(系统的联盟)和纵向(系统的层次)、高层、宏观、全局等视角来分析系统的构成及考虑系统的设计,需要站在系统的高度来综合考虑人、机、物之间的关系,通过人、机、物三者间的协同来给出软件系统的解决方案,即软件学科专业人才需要具备“\index{系统能力}”。 -人机物融合时代的软件系统呈现出新的特点,软件规模超大(如几亿甚至十几亿行代码)、软件需求不清晰且持续变化,软件系统表现为一类系统之系统而非单一系统、动态演化系统而非静态确定系统、社会技术系统而非纯粹技术系统[11][12]等等。因此,软件形态和复杂性的变化以及软件学科范畴的拓展对软件学科专业人才的能力和素质提出了更高的要求,他们需要具备解决人机物融合时代背景下的复杂工程问题的能力,这种能力需建立多学科知识的基础之上,以应对人机物融合带来的各种问题和挑战。 +人机物融合时代的软件系统呈现出新的特点,软件规模超大(如几亿甚至十几亿行代码)、软件需求不清晰且持续变化,软件系统表现为一类系统之系统而非单一系统、动态演化系统而非静态确定系统、社会技术系统而非纯粹技术系统\cite{sommerville2011large, northrop2006ultra}等等。因此,软件形态和复杂性的变化以及软件学科范畴的拓展对软件学科专业人才的能力和素质提出了更高的要求,他们需要具备解决人机物融合时代背景下的\index{解决复杂工程问题的能力},这种能力需建立多学科知识的基础之上,以应对人机物融合带来的各种问题和挑战。 -人机物融合时代软件开发的方式和手段也在发生深刻的变化。例如,建设开源生态、借助开源软件、利用群智开发等成为重要的趋势,开源软件已成为世界信息技术及产业发展的重要方向。然而,当前开源软件人才的培养及供应无论在质或量上均存在较大不足[4]。此外,软件学科教育需要深入地探究如何有效地利用海量、多样、高质量的开源软件和群智资源来培养软件学科人才[13]。 +人机物融合时代软件开发的方式和手段也在发生深刻的变化。例如,建设\index{开源生态}、借助开源软件、利用\index{群智开发}等成为重要的趋势,\index{开源软件}已成为世界信息技术及产业发展的重要方向。然而,当前开源软件人才的培养及供应无论在质或量上均存在较大不足\cite{hong2017challenges}。此外,软件学科教育需要深入地探究如何有效地利用海量、多样、高质量的开源软件和群智资源来培养软件学科人才\cite{xinjun2019soft}。 \begin{itemize} -\item[$\bullet$] \textbf{如何构建与人机物融合时代软件学科特点相适应的专业知识体系?} +\item[$\bullet$] \textbf{如何构建与人机物融合时代软件学科特点相适应的专业\index{知识体系}?} \end{itemize} 在人机物融合时代,不仅软件系统的构成、形态和复杂性在变,人们对软件系统的价值观认识也在变(如更加关注软件的可信性、隐私性、安全性、平等性、持续性等),支撑软件系统开发和运维的方法和技术也在不断的变化。软件开发和运维不仅是个体和团队行为,而且延伸到社会层次,表现为一种社会化行为。开源软件的成功实践表明,大规模群体化软件创作成为一种重要的软件开发方式,软件生态变得极为重要。此外,软件学科不断地与其他相关的学科进行交叉,如大数据、人工智能、社会学、系统科学等等。这意味着人机物融合时代的软件学科专业教育知识体系发生了深刻的变化,其知识域在不断拓展,知识点在不断增加。为了满足软件学科教育的新要求,需要建立起支撑系统能力、解决复杂工程问题能力以及创新能力等能力培养所需的知识体系。因此,软件学科专业教育需构建与人机物融合时代软件学科发展相适应、满足软件学科专业人才培养需求的知识体系。 @@ -95,13 +95,13 @@ \item[$\bullet$] \textbf{如何借助软件学科成果来加强软件学科教育?} \end{itemize} -在几十年的发展过程中,软件学科领域积累了丰富、多样和海量的资源,包括代码、模型、文档、数据、开发知识、工具等等。尤其是近年来,随着开源软件、群智开发、软件开发知识分享等的快速发展,互联网上的开源社区汇聚了大量的软件资源和开发数据。这既给软件学科教育创造了条件、提供了机会和奠定了“物质”基础,同时也给软件学科教育提出了新的问题和挑战[13]:如何借助这些软件资源来深入探究软件学科人才(如软件工程师)的成长轨迹和培养路径?如何有效利用这些软件资源来支持软件学科的教育、促进软件人才的培养? +在几十年的发展过程中,软件学科领域积累了丰富、多样和海量的资源,包括代码、模型、文档、数据、开发知识、工具等等。尤其是近年来,随着开源软件、群智开发、软件开发知识分享等的快速发展,互联网上的开源社区汇聚了大量的软件资源和开发数据。这既给软件学科教育创造了条件、提供了机会和奠定了“物质”基础,同时也给软件学科教育提出了新的问题和挑战\cite{xinjun2019soft}:如何借助这些软件资源来深入探究软件学科人才(如软件工程师)的成长轨迹和培养路径?如何有效利用这些软件资源来支持软件学科的教育、促进软件人才的培养? \begin{itemize} \item[$\bullet$] \textbf{如何顺应教育理念和方法的发展来改革软件学科教育的方式和手段?} \end{itemize} -以互联网为基础的信息技术正改变甚至颠覆传统的教学理念和方法,以MOOC、SPOC等为代表的大规模在线教育意味着互联网大众不仅是教育的受益者,也是教育的参与者。软件学科教育朝着普及化和全民化的方向发展,越来越多的大众涉足软件的使用、评价甚至开发,因而成为软件学科教育的对象。这就需要为软件学科的大众化和普及化教育投入足够的教育资源、提供有效的方式和手段。以群智软件开发方法为代表的软件开发隐喻给软件学科教育提供了新的启示,借助于互联网大众、利用群智力量来推进软件学科教育将是未来的一个重要趋势,它不仅可促进软件学科教育的普及化,而且还可通过大众的参与和协同,共同分享学习的经验和资源。 +以互联网为基础的信息技术正改变甚至颠覆传统的教学理念和方法,以\index{MOOC}、\index{SPOC}等为代表的大规模在线教育意味着互联网大众不仅是教育的受益者,也是教育的参与者。软件学科教育朝着普及化和全民化的方向发展,越来越多的大众涉足软件的使用、评价甚至开发,因而成为软件学科教育的对象。这就需要为软件学科的大众化和普及化教育投入足够的教育资源、提供有效的方式和手段。以群智软件开发方法为代表的软件开发隐喻给软件学科教育提供了新的启示,借助于互联网大众、利用群智力量来推进软件学科教育将是未来的一个重要趋势,它不仅可促进软件学科教育的普及化,而且还可通过大众的参与和协同,共同分享学习的经验和资源。 \begin{itemize} \item[$\bullet$] \textbf{如何为软件学科教育提供软件工具?} @@ -118,7 +118,7 @@ \label{fig:fig2_10_1} \end{figure} -在人机物融合时代,计算机软件对人类社会的方方面面产生了重大和深远的影响,也带来一些深层次、前所未有的风险和问题,如私密数据被窃取、软件留有后门、系统受到攻击等等。我们社会还没有建立起针对这些风险和问题的伦理准则和法律体系;软件研究者、开发者和使用者的行为缺乏相关的约束,也没有有效和高效的监管手段,以确保其遵守和履行法律、道德和伦理规范。软件伦理教育没有得到国家、社会和行业等的足够重视,也没有普及。缺乏软件专业背景的其他学科专家和一般大众很难从系统外部及时感知和发现潜在的软件伦理问题。自动化、智能化甚至量子化软件新技术的发展及应用将给人类社会带来更多的未知,评估它们对人类社会未来的长远影响需要对技术本身以及可能的应用场景有深入的理解,以及足够的前瞻预测能力。 +在人机物融合时代,计算机软件对人类社会的方方面面产生了重大和深远的影响,也带来一些深层次、前所未有的风险和问题,如私密数据被窃取、软件留有后门、系统受到攻击等等。我们社会还没有建立起针对这些风险和问题的\index{伦理准则}和法律体系;软件研究者、开发者和使用者的行为缺乏相关的约束,也没有有效和高效的监管手段,以确保其遵守和履行法律、\index{道德和伦理规范}。\index{软件伦理教育}没有得到国家、社会和行业等的足够重视,也没有普及。缺乏软件专业背景的其他学科专家和一般大众很难从系统外部及时感知和发现潜在的软件伦理问题。自动化、智能化甚至量子化软件新技术的发展及应用将给人类社会带来更多的未知,评估它们对人类社会未来的长远影响需要对技术本身以及可能的应用场景有深入的理解,以及足够的前瞻预测能力。 \section{主要研究内容} @@ -136,7 +136,7 @@ 软件学科的认知能力以计算思维为核心,包含抽象思维、表达交流、逻辑分析和推理、计算抽象等。这些能力有其各自的特殊性,相互间存在依赖性。为此,需要深入研究以计算思维能力为核心的认知能力成长模型,探究不同受众认知能力的成长规律。与此同时,这些能力培养所需的知识潜藏在数学、语文、物理、化学、自然科学等课程的知识体系之中。软件学科认知能力的培养和上述知识之间存在横切关系,代表这些知识体系的课程很少与实际的软件及其开发相关联。因此,需要从横切和纵切二个方面,探究并建立起支撑软件学科核心认知能力培养的知识体系。 \begin{itemize} -\item[$\bullet$] \textbf{以计算思维为核心,融合创新思维的系统化认知能力培养方法} +\item[$\bullet$] \textbf{以计算思维为核心,融合\index{创新思维}的系统化\index{认知能力}培养方法} \end{itemize} 人机物融合时代,软件使能的创新是软件学科辐射影响的主要目标,软件学科教育要在培养计算思维能力的同时,强化基于软件来解决问题的创新思维能力的培养。因此,我们需要研究如何将“计算思维”与“创新思维”二者相结合来深化软件学科的普及教育,探究“计算思维+创新思维”融合培养的学习路径,建立起支撑“计算思维 + 创新思维”培养的方法和手段。 @@ -170,13 +170,13 @@ \item[$\bullet$] \textbf{面向多学科交叉融合的软件学科专业教育的知识体系} \end{itemize} -针对人机物融合时代的软件学科特点和人才培养要求,深入研究软件学科与哪些相关学科发生了交叉、交叉的边界和范围是什么;人们对软件的价值取向发生了什么样的变化,这些变化对学科的知识体系提出了什么样的要求;软件学科自身发展带来哪些方面的变化,这些变化处于知识体系的哪些层次和方面。另外,还需要从软件学科专业人才能力培养的视点,探讨系统能力、解决复杂工程问题能力的培养对知识体系提出什么要的要求。在此基础上,研究并建立起人机物融合时代面向多学科交叉融合的软件学科专业教育的知识体系,包括知识领域、知识单元、知识点等。 +针对人机物融合时代的软件学科特点和人才培养要求,深入研究软件学科与哪些相关学科发生了交叉、交叉的边界和范围是什么;人们对软件的价值取向发生了什么样的变化,这些变化对学科的知识体系提出了什么样的要求;软件学科自身发展带来哪些方面的变化,这些变化处于知识体系的哪些层次和方面。另外,还需要从软件学科专业人才能力培养的视点,探讨\index{系统能力}、\index{解决复杂工程问题能力}的培养对知识体系提出什么要的要求。在此基础上,研究并建立起人机物融合时代面向多学科交叉融合的软件学科专业教育的知识体系,包括\index{知识领域}、\index{知识单元}、\index{知识点}等。 \begin{itemize} \item[$\bullet$] \textbf{软件学科专业教育核心能力的培养方法} \end{itemize} -系统能力、解决复杂工程问题能力等是人机物融合时代软件学科专业教育的核心能力。这二类能力的关注点和侧重点有所不同,培养方式和手段也不尽相同。实践无疑是专业教育环节中支撑能力培养的主要手段。为此需要深入研究系统能力和解决复杂工程问题能力的内涵、构成和模型,分析不同能力之间的内在关联性,探究能力持续性培养和形成的特点和规律性,探究如何通过渐进式、综合性的实践来促进系统能力和解决复杂工程问题能力的培养,以及针对能力培养的考评方法。 +系统能力、解决复杂工程问题能力等是人机物融合时代软件学科专业教育的核心能力。这二类能力的关注点和侧重点有所不同,培养方式和手段也不尽相同。实践无疑是专业教育环节中支撑能力培养的主要手段。为此需要深入研究系统能力和解决复杂工程问题能力的内涵、构成和模型,分析不同能力之间的内在关联性,探究能力持续性培养和形成的特点和规律性,探究如何通过渐进式、综合性的\index{实践教学}来促进系统能力和解决复杂工程问题能力的培养,以及针对能力培养的考评方法。 \begin{itemize} \item[$\bullet$] \textbf{开源文化教育及开源人才培养} @@ -199,22 +199,22 @@ 经过几十年的积累,尤其是近年来开源软件、群智软件开发等的发展,软件学科积累了大量、多样、极有价值的软件资源,如以开源社区为载体的开源代码、知识问答、软件开发历史数据等。软件学科教育需要深入挖掘和利用软件学科资源在教育中的价值,系统研究如何在课程教学、实践教学和人才培养过程中有效地应用这些资源,如何将抽象的知识与具体的资源相结合来促进知识的理解和掌握、推动实践教学、培养能力和素养。 \begin{itemize} -\item[$\bullet$] \textbf{群体化学习} +\item[$\bullet$] \textbf{\index{群体化学习}} \end{itemize} 借助互联网平台,通过吸引、汇聚和管理大规模的学习者,使得他们以竞争和合作等多种自主协同方式来开展学习将是未来的重要学习方式,我们称之为群体化学习。软件学科教育需要充分借助于互联网大众的智慧和理念,施行群体化学习的思想,以促进软件学科人才的大规模、高质量、普及化的培养。为此,基于群智理论和方法的指导,借助于互联网上的大数据分析,需要研究支持群体化学习的组织结构和协同模型,分析和设计群体化学习的激励机制,探究不同组织结构、协同模型和激励机制对群体化学习成效、质量和受益面等产生的影响及涌现结果。 \begin{itemize} -\item[$\bullet$] \textbf{大规模在线开放实践MOOP} +\item[$\bullet$] \textbf{\index{大规模在线开放实践MOOP}} \end{itemize} -能力和素质培养是软件学科教育的一项主要任务。针对软件学科的发展特点,需要研究软件学科人才的能力和素质模型,建立不同能力和素质之间的关系,分析普及教育、专业教育、跨学科教育等分别需要达到什么样的水平和层次,探究软件学科内涵的拓展如何影响能力和素质。实践是支撑能力和素质培养的主要教学途径。依托大规模人群的在线开放实践(称为MOOP)将成为能力和素质培养的重要趋势,也是对MOOC在该方面存在欠缺的有效弥补。为此,需要研究支撑能力和素质培养的实践体系建设;探究如何将诸如游戏化机制等引入到MOOP之中,以激励大众参与和贡献;分析针对MOOP的量化表示与评测方法,建立起针对能力和素质培养的评价体系与评价指标。 +能力和素质培养是软件学科教育的一项主要任务。针对软件学科的发展特点,需要研究软件学科人才的能力和素质模型,建立不同能力和素质之间的关系,分析普及教育、专业教育、跨学科教育等分别需要达到什么样的水平和层次,探究软件学科内涵的拓展如何影响能力和素质。实践是支撑能力和素质培养的主要教学途径。依托大规模人群的在线开放实践(称为MOOP)将成为能力和素质培养的重要趋势,也是对MOOC在该方面存在欠缺的有效弥补。为此,需要研究支撑能力和素质培养的实践体系建设;探究如何将诸如\index{游戏化机制}等引入到MOOP之中,以激励大众参与和贡献;分析针对MOOP的量化表示与评测方法,建立起针对能力和素质培养的\index{评价体系}与评价指标。 \begin{itemize} \item[$\bullet$] \textbf{支撑软件学科教育的软件工具} \end{itemize} -针对软件学科教育的特殊需求,借助于软件学科资源大数据,交叉诸如人工智能、大数据分析、移动计算等技术,研究支撑软件学科教育的关键软件技术,包括开源社区中学习资源(如开源软件和软件开发知识)的同步和分享技术,针对学习者个性化特点及需求的教育资源推荐技术,实现教育软件与开源社区间互操作和交互技术,基于教育大数据来构建学习者个性化学习路径的方法,对学习者的学习情况和成长进行跟踪和考评的技术等等,并在此基础上研发软件学科教育软件。 +针对软件学科教育的特殊需求,借助于软件学科资源大数据,交叉诸如人工智能、大数据分析、移动计算等技术,研究支撑软件学科教育的关键软件技术,包括开源社区中学习资源(如开源软件和软件开发知识)的同步和分享技术,针对学习者个性化特点及需求的教育资源推荐技术,实现教育软件与开源社区间互操作和交互技术,基于教育大数据来构建学习者\index{个性化学习}路径的方法,对学习者的学习情况和成长进行跟踪和考评的技术等等,并在此基础上研发软件学科教育软件。 \subsection{以“健全制度 + 加强监督”为核心的软件伦理建设、治理和教育} \label{subsection:10_2_5} @@ -236,33 +236,36 @@ 为了迎接上述挑战,软件学科教育需开展一系列研究,内容包括:(1)以“计算思维 + 创新思维”为核心的普及教育,(2)以“知识体系+能力培养”为核心的专业教育,(3)以“复合型 + 创新型”为目标的跨学科教育;(4)以“探究规律 + 方法创新”为主体的教育理念和方法改革;(5)以“健全制度 + 加强监督”为核心的软件伦理建设、治理和教育。 -\section{参考文献} - -[1] 吴爱华, 侯永峰, 杨秋波等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017, (1): 1-9. - -[2] 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59. - -[3] 王怀民, 吴文峻, 毛新军, 丁博, 郭长国, 李未, 复杂软件系统的成长性构造与适应性演化, 中国科学:信息科学, 2014, 45(6): 743-761. - -[4] 梅宏, 周明辉. 开源对软件人才培养带来的挑战[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. - -[6] Pierre Bourque, Richard E. Fairley, SWEBOK V3.0 - Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2014. - -[7] 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组,高等教育出版社,2019. - -[8] 李晓明, “老年编程”的畅想, 计算机学会通讯, 2019, 15(5): 51. - -[9] Wing, Jeannette,. Computational Thinking Benefits Society, 40th Anniversary Blog of Social Issues in Computing, 2014. - -[10] Grover, S. . The 5th ‘C’of 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. - -[11] Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7): 71-77. - -[12] Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006. - -[13] 毛新军, 王涛, 余跃. 软工程实践教程: 基于开源和群智的方法, 高等教育出版社, 2019. +\bibliographystyle{acm} +\bibliography{references_2_10} +%\bibliography{IEEEabrv,ref} +%\section{参考文献} +% +%[1] 吴爱华, 侯永峰, 杨秋波等. 加快发展和建设新工科 主动适应和引领新经济[J]. 高等工程教育研究, 2017, (1): 1-9. +% +%[2] 梅宏. 万物皆可互联,一切均可编程[J]. 方圆, 2018, 501(12):58-59. +% +%[3] 王怀民, 吴文峻, 毛新军, 丁博, 郭长国, 李未, 复杂软件系统的成长性构造与适应性演化, 中国科学:信息科学, 2014, 45(6): 743-761. +% +%[4] 梅宏, 周明辉. 开源对软件人才培养带来的挑战[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. +% +%[6] Pierre Bourque, Richard E. Fairley, SWEBOK V3.0 - Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2014. +% +%[7] 计算机教育与可持续竞争力, “计算机教育20人论坛”编写组,高等教育出版社,2019. +% +%[8] 李晓明, “老年编程”的畅想, 计算机学会通讯, 2019, 15(5): 51. +% +%[9] Wing, Jeannette,. Computational Thinking Benefits Society, 40th Anniversary Blog of Social Issues in Computing, 2014. +% +%[10] Grover, S. . The 5th ‘C’of 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. +% +%[11] Ian Sommerville, Dave Cliff, Radu, etc., Large-Scale Complex IT System, Communication of ACM, 2012, 55(7): 71-77. +% +%[12] Linda Northrop, et.al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, Carnegie Mellon University, 2006. +% +%[13] 毛新军, 王涛, 余跃. 软工程实践教程: 基于开源和群智的方法, 高等教育出版社, 2019. %\begin{thebibliography}{00} diff --git a/references_2_10.bib b/references_2_10.bib new file mode 100644 index 0000000..ab57432 --- /dev/null +++ b/references_2_10.bib @@ -0,0 +1,95 @@ +@article{aihua2017accelerate, + title={加快发展和建设新工科 主动适应和引领新经济}, + author={吴爱华,侯永峰,杨秋波,郝杰}, + journal={高等工程教育研究}, + number={1}, + pages={1--9}, + year={2017} +} +@article{hong2018everything, + title={万物皆可互联, 一切均可编程}, + author={梅宏}, + journal={方圆}, + number={12}, + pages={24}, + year={2018} +} +@article{huaimin2014growth, + title={复杂软件系统的成长性构造与适应性演化}, + author={王怀民,吴文峻,毛新军,丁博,郭长国,李未}, + journal={中国科学: 信息科学}, + volume={44}, + number={6}, + pages={743--761}, + year={2014} +} +@article{hong2017challenges, + title={开源对软件人才培养带来的挑战}, + author={梅宏,周明辉}, + journal={计算机教育}, + number={1}, + pages={2--5}, + year={2017} +} +@article{bandyopadhyay2016ict, + title={ICT in Education: Open Source Software and its Impact on Teachers and Students}, + author={Bandyopadhyay, Soma and Thakur, SS}, + journal={International Journal of Computer Applications}, + volume={151}, + number={6}, + year={2016}, + publisher={Foundation of Computer Science} +} +@article{borque2014swebok, + title={SWEBOK v3. 0: Guide to the software engineering body of knowledge}, + author={Borque, P and Fairley, RE}, + journal={USA: IEEE}, + year={2014} +} + +@book{editors2019computer, + title={计算机教育与可持续竞争力}, + author={“计算机教育20人论坛”编写组}, + publisher={高等教育出版社}, + year={2019} +} +@article{xiaoming2014imagination, + title={“老年编程”的畅想}, + author={李晓明}, + journal={计算机学会通讯}, + volume={15}, + number={5}, + pages={51}, + year={2019} +} +@article{wing2014computational, + title={Computational thinking benefits society}, + author={Wing, Jeannette M}, + journal={40th Anniversary Blog of Social Issues in Computing}, + volume={2014}, + year={2014} +} +@article{grover20185th, + title={The 5th ‘C’of 21st century skills}, + author={Grover, S}, + journal={Try computational thinking (not coding).(March 13). Retrieved from EdSurge News: https://www. edsurge. com/news/2018-02-25-the-5th-c-of-21st-century-skills-try-computational-thinking-not-coding}, + year={2018} +} +@article{sommerville2011large, + title={Large-scale complex IT systems}, + author={Sommerville, Ian and Cliff, Dave and Calinescu, Radu and Keen, Justin and Kelly, Tim and Kwiatkowska, Marta and Mcdermid, John and Paige, Richard}, + journal={arXiv preprint arXiv:1109.3444}, + year={2011} +} +@techreport{northrop2006ultra, + title={Ultra-large-scale systems: The software challenge of the future}, + author={Northrop, Linda and Feiler, Peter and Gabriel, Richard P and Goodenough, John and Linger, Rick and Longstaff, Tom and Kazman, Rick and Klein, Mark and Schmidt, Douglas and Sullivan, Kevin and others}, + year={2006}, + institution={CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST} +} +@book{xinjun2019soft, + title={软工程实践教程: 基于开源和群智的方法}, + author={毛新军,王涛,余跃}, + publisher={高等教育出版社}, + year={2019} +} \ No newline at end of file