《创意编程》课程的教学设计
2018-01-28四川美术学院401331
(四川美术学院 401331)
计算机、互联网与艺术的高度融合,派生出了很多新的艺术类型和方向,如:数字游戏、数字出版物、数字视频、网页设计等,在此背景之下,教育部将“数字媒体艺术”、“艺术与科技”纳入到了最新的学科专业目录之中,这为培养艺术与技术相结合的人才提供了根本保证。当前,计算机图形图像处理软件、动画软件、视频处理软件已经成为艺术设计各专业要求的基本技能,作为“数字媒体艺术”专业的本科学生,在计算机的技能上,仅仅还停留在设计应用软件上是不够的。为此,我校在“数字媒体艺术”专业开设了《创意编程》课程,作为该专业的专业基础课程。
一、课程与学生的特点分析
计算机编程语言是以逻辑和数学为基础的,其中的条件比较、循环等知识内容直接包含了逻辑运算,在变量的定义、变量的类、函数、对象等的学习中均需要较好的抽象思维,在编程中永远离不开运算,尤其是数学函数的学习,更是直接需要较好的数学基础。总之,要学好编程,需具有严谨的态度、清晰的逻辑和良好的数学基础。由于这些特点,编程语言课程一般在理工科类专业开设。
“数字媒体艺术”是艺术学学科下的专业,在招生上按照艺术类学生的要求选拔,也就是综合高考成绩和艺术考试专业成绩综合录取,除极少数名校外,艺术生要求的高考成绩都在二本线以下很多,大多在300多分(750总分)的范围,因此,衡量其逻辑能力和数学能力的数理化成绩普遍较差。另外,在经过考前的绘画专业训练之后,学生的感性思维得到强化,而理性思维受到压抑。
从上面的分析可以看出:学习计算机编程语言课程的要求和艺术类学生具有的知识背景和思维方式存在一定的差异。因此,在语言的选择和教学设计上,不能照搬理工科专业的一些办法,必须充分考虑“数字媒体艺术”的专业特点和学生的知识背景、思维方式来进行课程的教学设计。
二、创意编程的语言选择
常见的编程语言中,C语言、Java语言是用得较多的,但这两种语言的优势主要在科学计算和数据与事物的处理方面,在艺术相关的图形图像、动画、视频、交互等方面没有优势,不适合作为创意编程课程的教学语言。目前,与“数字媒体艺术”专业相关的语言有三种:一是动画软件Flash的脚本语言 Action Scriopt,这种语言可以编写出很好的交互效果,曾经风靡互联网,可以制作网络游戏、交互网络广告、全Flash交互网站等,但由于需要插件这个致命弱点,在H5出现之后,Flash就退出了互联网的舞台;二是制作网页特效的JavaScript语言,该语言也是一种脚本语言,需要嵌入到HTML中,由浏览器解释执行,这就极大的限制了该语言的应用领域;三是在艺术领域比较流行的Processing语言,该语言由美国麻省理工学院媒体实验室(MIT)旗下的美学与计算小组成员 CaseyReas 与Ben Fry 创建,是专门为艺术家创建的编程语言,其语法相对简单,代码简洁,在图形创作、动画制作、交互实现、声音处理等方面都有很好的表现,更难得的是该语言一直是开源的,在互联网上有很好的学习和交流平台,也是国外艺术院校选择最多的编程教学语言。基于这些原因,我校“数字媒体艺术”专业的《创意编程》课程选择Processing作为编程的教学语言。
三、教学设计
1.教学目标设计
根据教学大纲的要求,该课程的教学目标为:通过该课程的教学,让学生了解计算机编程艺术的发展及应用现状,掌握图形绘制命令、条件比较、循环、交互响应等的代码编写及应用,具备设计制作简单图形鼠标交互、键盘交互的互动体验作品的能力,培养学生用逻辑思维的方式来进行艺术设计的习惯,激发学生用程序代码编写来进行互动艺术创作的兴趣与积极性,开阔眼界,拓展想象空间。
2.教学内容设计
根据教学目标和学时数量,并从图形、动画、交互这一艺术创作循序渐进的规律,将教学内容一共分为8讲,每讲3学时。第一讲为“概述”,主要讲授编程艺术的发展、Processing的发展、Processing的作品欣赏,以及Processing的编程体验。第二讲为“变量、运算、条件、循环”,讲授编程的基础知识以及程序的基本结构。第三讲为“坐标与绘图”,讲授屏幕坐标系以及图形绘制、线型、颜色等命令。第四讲为“坐标变换与动画”,讲授坐标变换的命令,并将其与动画方式相关联。第五讲为“函数与偶发艺术”,讲授数学函数、随机函数、自定义函数,并重点讲解如何利用随机函数创作偶发艺术作品。第六讲为“鼠标交互与键盘交互”,讲授鼠标交互与键盘交互的相关命令、函数、常量。第七讲为“图像、视频、文字”,讲授图像、视频、文字相关的库、变量类型,处理函数。第八讲为“声音与视觉化”,讲授声音相关的库、变量、函数,以及如何利用声音的参数进行视觉化表现。
由于该课程的学习需要学生花费大量的课外时间进行思考和练习,在教学中没有像其他专业基础课那样连续授课,而是将课时进行分散,每周只3学时,共8周来完成该课程的教学。
3.教学方法设计
在教学方法的设计上,必须充分考虑到艺术学生的知识基础和思维特点,从前述的分析中得知,艺术学生数理知识普遍不好,在思维方式上以形象思维为主,根据这些特点,在教学方法设计上一是不求完备,但求够用,例如:在变量的类型、变量命名规则的教学上,只要求学生掌握基本的变量类型和变量命名规则即可;二是变抽象为形象,在逻辑运算、条件比较、循环等的教学中,由于知识较为抽象,学生理解困难,在教学中通过讲故事、打比方、绘制流程图等方式,将抽象的知识形象化;三是理论为辅,实践为主,在教学中尽量减少不必要的理论讲授,更多的时间用于编写生成艺术作品的程序代码上,让学生在实践中加深对理论的理解;四是以算法为龙头,以作品为目标,在每讲的理论知识讲授后,都设计有多个实验来综合运用这些知识,每个实验的核心是一个算法,也就是生成艺术作品的规则,这也是创意编程中的“创意”二字的体现,也是教学中需要重点培养的能力,不同的算法决定了不同的作品,代码是依据算法来编写的,是算法的外在表现。
4.课堂实验设计
《创意编程》是一门实践性很强的课程,在本课程中,每堂课均安排3-5个课堂编程实验。在实验设计上,充分考虑到与艺术创作、艺术设计相结合,使每一个实验都在创作或设计一个作品,作品也许简单,但他要么体现了图形创意,要么是一幅偶发绘画,要么是一个交互动画。在实验过程中,让同学们仅仅修改程序中的一些参数,观察得到的作品变化,体验编程艺术的魅力所在,同一套编码,弹指一挥间便可演变出千姿百态的作品,这样既能够激发学生的学习兴趣,也有利于加强对程序代码的理解。
5.课程考核设计
考核是对学生学习效果的衡量,也是对教学是否达到目标的检测,考核结果的有效性取决于考核方式的设计是否科学、合理。编程类课程的考核,在理工科专业的普遍考核方式是采用考试试卷,以考核编程语言基本知识的掌握和基本编程能力为主,考核的是对编程语言本身的掌握情况,而在《创意编程》课程中,我们需要重点考核的是利用编程语言来进行艺术创作和艺术设计的能力,因此采用编程作品的方式更加科学、合理。在本课程中,要求学生完成两件编程作品,一是交互图形作品,二是声音视觉化作品,学生自行设计作品算法,在提交作品时要求提供算法设计和程序源代码,并保证两者的一致性,否则视为抄袭。
四、教学效果分析
按照上述教学设计,在我校的“数字媒体艺术”专业进行了教学实践,取得了较好的教学效果,通过该课程的学习,同学们感受到了理性之美。在其它课程中,同学们依靠自己的感性思维进行作品创意,而在本课程中,同学们依靠具有严谨逻辑的算法来进行作品创意,同样表现出了艺术之美,并且充满了奇妙与神秘。虽然同学们完成的作品优秀的不多,但都学会了通过程序语言来进行艺术创作的基本方法,拓展了他们的艺术视野。