高小鹏

北京航空航天大学计算机学院 教授

RPA财务机器人基础课程教学规划

*以下为高小鹏教授在RPA财务机器人应用与开发教学研讨会上的报告实录,全文共4413字,建议收藏阅读。

各位老师:

大家好!近几年,财会专业教学面临着行业数字化转型的巨大挑战,越来越多的院校开始建设RPA课程、培养RPA人才。如何更好的利用现代计算机技术,对目前的专业、产业进行升级,使我们的毕业生具备更强的竞争力,是我们要思考的问题。

接下来,我就从个人认识、定位与目标、知识域规划、教学组织方法几个方面谈谈我的想法。

正确认识机器人

RPA的认识误区:掌握RPA不需要懂程序设计

院校要培养RPA 人才、开设RPA课程,首先要对RPA有一个正确的认识,避免踏入RPA的认识误区。RPA技术在行业领域中的应用主打“零编码”的概念,对业务人员友好,于是大家普遍认为:“掌握RPA很简单,不需要懂计算机程序设计”,这其实是一种认识误区,尤其是,当你开始自己动手写RPA程序的时候,你会发现“程序设计0基础”,对于开发RPA来说似乎不太现实。

事实上,“程序设计0基础”对于RPA开发的影响跟RPA的规模有很大关系。如果我们只是做一个实用性相对弱的小型RPA机器人,5-10个左右activity,无invoke,无复杂技术(异常、面向web的Selector等),仅供个人使用,那么“程序设计0基础”这句话是成立的,因为这个时候我们写的程序基本上都是严格的单调逻辑的程序。

如果我们做的是对模块化、扩展性、灵活性、稳定性有明确要求的中型RPA,涉及10-100个activity,那么没有程序设计基础几乎不可能完成。举一个简单的例子,我们现在要做一个小程序,这个程序就是要完成两个正整数的加法,它的核心程序就是C等于A加B。但是这个程序,如果想让他真的能被用户使用,没有二十行以上的辅助代码是做不出来的:比如说,如何防止用户输入的不是负数?如何防止用户只输入了1个数或者用户连续输了3个数?类似这些问题都是设计一个实用程序要面临的问题。一旦当activity达到50到100个,这个时候程序的关注点很大程度上已经不再是我们传统的业务功能了,而是模块、扩展、稳定性、逻辑等问题。

如果我们做的是对并发、容错、部署、流程改造等有明确要求的大型RPA,有几百个以上的activity,没有一个良好的计算机程序设计知识作为支撑,是完全没有可能做到的。

因此,掌握简单的RPA(业务人员使用RPA机器人、提出RPA需求或进行简单的RPA开发),不需要懂计算机程序设计;如果要想开发复杂的RPA机器人,建议通过学习一门编程语言(如Python)来培养一些程序设计思维。

工具改变人类:需培养学生具有应用RPA去构建先进应用系统的能力

开设RPA课程最重要的目的是要培养学生具有应用RPA去构建先进应用系统的能力

试想一个工作场景,这个场景大致包含3个环节:①从若干个web网站上抓取数据;②将数据汇总到Excel文件中;③将Excel文件发送给特定人。这个工作需要工具的支持,我们需要开发一个完整的工具(应用),把这三个环节的工作都完成。那么,这样一个工具(应用)该怎么开发?相对于开发一个单独的应用软件来说,把已经开发好的应用(Web、excel、email)集成在一起,在此基础之上,形成一个新的工具——RPA,是一个更好的方法。所以,现有的工具(Web、excel、email)已经很好了,没有必要重复的开发。我们要尽量避免无谓的“重复发明轮子”

由于工业化带来精细分工,因此现代工业系统的开发以系统集成为主,以关键突破为辅。对于大型复杂应用,除性能外,开发效率、系统可靠性等越来越重要。提升开发效率、提高可靠性有两个重要途径:一个是提高开发抽象层级;另一个是大量使用已有成果。

计算机中应用最广泛的两个程序设计,一个是Python,另一个是C。其中Python的学习和使用要比C简单的多。原因有两个:第一,Python的抽象层次非常高。我们为了完成同样一件事,C要写两百行代码,Python可能只需要写十行。第二,在Python开发程序过程当中,我们一定是会使用大量的“库”,Python比C拥有更丰富的库,也就是说Python比C的颗粒度更大。所以,RPA的核心价值是一种基于系统的开发方法。

怎么能够基于已有的很多成熟系统快速开发一个更大颗粒度的系统是它最大的价值。类似于计算机网络中的集线器(下图),它的作用不是承担计算任务,而是聚合各类计算机构成大系统,RPA相当于大型应用系统中的“集线器”,能够高效集成多个应用软件,从而高效构造新的大型复杂应用,能够实现应用之间的信息交互。让学生能够快速构造一个新的大型应用是RPA的最大的价值。

RPA可能是下一个计算机通识能力

一个技术崛起之后通常先进入到计算机专业领域之后再进入非计算机专业领域。RPA可能是下一个计算机通识能力。

原因在于:

①生产方式:企业规模趋小、经营互联网化,愈发依赖信息化;

②用人成本:劳动力成本不断提高;

③应用系统:继承老系统与开发新系统并存,交织式、迭代式演进;

④开发难度:单个系统的规模越来越庞大、技术越来越综合;

⑤技术储备:RPA日趋成熟、强大、易用;

⑥知识储备:计算机教育趋向年轻化,程序设计0基础。

因此,对于财会专业的毕生除了有专业知识外,还应该具备这样几个能力。第一,应该具备把成熟的应用软件集成起来的能力,即RPA应用和开发的能力;第二,掌握一种比较好的高级程序设计语言,能够解决关键应用点开发,因为在进行系统集成的过程中可能会面临工具匮乏的问题,这个时候就需要Python来解决。第三,掌握一些数据分析、建模的能力。因为财会领域是一个典型的数据密集型的领域,密集的数据背后隐藏着大量有价值的信息,需要对有价值的信息进行发掘。

02

课程定位和教学目标

面临的挑战:学生基础薄弱、课程需求多样、缺乏适合教材

《RPA财务机器人基础应用》课程的建设主要面临以下挑战:财会专业学生缺乏足够的程序设计知识与能力;不同类型和不同层次院校的财会专业,其学制不同,对课程设置、广度深度、学时学分等要求不同;现有教材教学内容大而全、起点高,未能充分照顾财会专业学生的现实基础,写作思路上基本上都是先理论后实践。

课程定位和教学目标:培养运用RPA技术提高个人生产力的基本能力

长征的胜利是一步一步走出来的,其中最基础的是单兵能力。如果一个战士没有单兵能力,他想融入到一个团队中战斗,是不可能的。那么,什么是财会毕业生的单兵能力呢?就是作为一名财会人员,他的个人生产力的提高——个人生产力论。我们的教学目标和能力要求也是在个人生产力论这个基本定位的基础上建立的。

《RPA财务机器人基础应用》课程的教学目标是让财会毕业生具备运用RPA技术提高财会人员个人生产力的基本能力,具体包括:①理解软件技术的常见基本概念;②理解RPA技术的基本概念与结构;③掌握RPA开发的基本方法与工具;④能够以Excel为个人数据中心,面向财会领域的非全流程的、典型的、基础性的业务;⑤建立合理的工作流,分析和选取合适的activity,开发并调试RPA。

对财会毕业生能力要求包括:知识要求和能力要求。其中知识要求主要有:①理解并掌握基本数据类型,以及数据表等复杂数据结构及其构造方法;②掌握数据获取、计算与填报的基本方法,掌握文件操作的基本方法;③理解软件开发技术基本方法(如模块化设计思想),掌握流程调用的基本方法。

能力要求主要有:

①能够分析财会领域基础业务流程;

②具备基本的RPA设计能力与开发能力;

③能够使用集成开发环境,并具备基本的测试与调试能力;

④能够发布、下载、部署、配置个人robot。

笼统地说,我们的学生大体应该具有以下这五个方面的能力(上图),即具备一定的分析流程的能力、设计流程、开发流程、调试和测试的能力。这五个方面的能力无法一步到位,需要逐步的建立。

财会个人生产力应用系统:四大核心Excel、Web、Email、App

财会应用的核心是财会数据处理,涉及到四大核心应用(下图):①Excel:个人的结构化数据中心 ;②Web:数据前后端的交互界面 ;③Email:数据处理结果的传输通道 ;④App:财务应用客户端。

Excel 作为一个个人数据中心可以和Web结合在一起,从互联网上的去获取数据或者向互联网提供信息,不但可以跟标准的应用程序交流,还可以和定制化的财务软件等应用交流。这样的一个基本的交互模型可以覆盖比较多的应用场景。根据这个基础架构我们可以做一些具体的案例。比如,只考虑Excel和Web的交互,可以设计出网银付款记录查询,网银付款、汇率维护等教学案例(下图)。

03

知识域规划

这门课涉及到的知识比较多,从实际应用的角度出发,大体包括以下知识:

其中:

变量、控制流的相关知识能够让学生写一个程序的框架;输入/输出涉及键盘输入、鼠标输入,和文本输出,例如模拟鼠标、键盘向软件输出和从软件当中提取文本等;浏览器主要涉及窗口和导航,例如自动打开浏览器,导航到一个网址上;Excel包括文件操作和表操作,在学习Excel时学生一定要有这样的思维:“让正确的人做正确的事”,也就是跟数据处理相关的操作都应该由Excel完成,RPA则主要完成数据的存入和存出;数据表即数据存储体;人机交互包括输入和输出,如输入信息给计算机和计算机在运行的过程当中输出信息等;结构化抓取即从外部网站上批量抓数据,包括数据标识、数量设置、超时设置等知识;Email主要涉及接收/发送收发和附件;调试技术涉及到的知识主要有:信息输出、Selector、断点调试、调试思路等。

需要注意的是,这些知识是从技术角度上来说的,但并不意味着这是一门技术课,而是通过这些内容来给财会学生补充技术知识。实际上,学生只要掌握了以上基础知识,在后面的财务应用学习中,就不会有很大困难了。

04

教学组织方法

不建议采用常规方法:按知识域组织教学

常规的方法是按知识域组织教学内容,比如先讲RPA的基本语法(数据类型、变量、运算符、条件从句、循环语句、字符串等),再举例讲这些语法的应用,这种方法的优势是易于组织、知识点覆盖性好。但是它的劣势也很明显:首先,短期内讲授的知识点过于饱和。其次,没有实践基础知识点难以掌握。如果按照这种方式讲解教师讲授掉入细节陷阱,学生因为没有实践基础难以理解具体内涵。

因此,对于财会类专业,这门课程我建议采用案例驱动法。

建议基本方法:案例驱动(问题导向)

案例驱动(问题导向)基本方法的特点是围绕实际问题讲解相关知识与方法,以若干实际问题作为驱动。在教学一开始就告诉学生所要解决的问题,用学生大致已有的知识和逻辑理解这个问题,在这个过程当中,添加一小部分新知识,让学生以这样的方法去思考学习。因此,教师在设计教学设计的时候首先要提出若干问题,然后用这些问题来驱动教学设计,从上向下重构知识体系、实验体系(下图)。这种方法以学生为中心,强调能力培养,将知识点的讲授散布在如何解决各个实际问题中,通过一组案例来覆盖全部知识点。

案例驱动(问题导向)基本方法体现了“做中学”,一方面,学生通过解决问题,学习和运用知识;另一方面,学生学习的知识点较少,并且有实践基础,知识理解与掌握的程度高。这个过程中,教师对问题的选择就变得非常重要。所选择的问题,不能涉及太多的新知识,学生用已有的知识或者常识就能理解这个题目。

这种教学方法的难点也是关键在于案例的选取。案例选取是关键之关键,是系统工程。首先,案例选取要体现出层次化。给学生搭建楼梯,让学生通过不断地解决不同的问题,学到不同的知识,而且在这个过程当中的某些知识需要重复训练,循环向上。其次,考虑知识点的覆盖性,一个知识域的知识点散落在各个案例中,需要通过多个案例的合理组织才能有效覆盖知识域。在案例教学中,一个案例里面涉及到的知识点是有限的,而且一个案例里面既要有旧的知识还要有新的知识点。如何通过案例覆盖所需要的全部知识域是一件很难的事情。

解决上述问题,可以通过构建财会RPA教学联盟的方法。协同工作,快速积累,共享成果。建设案例库(用于讲授)、习题库(用于训练)、试题库(用于考核)、编撰系列化教材、形成本校(甚至跨区域)的教学改革/研究成果。

最后,关于财会专业的老师们实际教学担心的几个问题:

  1. 学生英语基础一般,教学中是否汉化?

    —— 建议还是尽量采用英语表达,主要原因是一些英语术语有多种译法,用中文表达容易导致混乱,理解困难,术语用原文形式,整句更容易理解。

  2. 计算机术语太多,难以形成体系或解释不清楚。

    —— 这是老师们刚接触时的感觉,实际上,RPA术语非常有限,我们很快就会习惯。

END

01