Experience Report of a Software Development Course in a Faculty of Fine Arts Luis Corral School of Information Technology and Electronics lrcorralv@itesm.mx Monterrey Institute of Technology and Higher Education 1. Computer literacy: the ability to use basic computer applications, for example, an operating Abstract system, a word processor, or a web browser; This paper describes the implementation of 2. Computational fluency: consists of having a Computational Thinking techniques to pro- high level of understanding of the functioning of mote the development of software develop- a complete computer system; ment skills in Fine Arts postgraduate stu- dents, understanding that the population does 3. Computational thinking: refers to the ability not have formal academic training in Com- to apply computer techniques to problems and puter Science. We present a case study ob- projects in all areas, for example multiple aspects served during a software development course of science, arts and humanities [Wing 2006]. taught to a non-expert population of Fine Arts postgraduate students. As a result of The current professional market makes this taxon- the implementation of Computational Think- omy very relevant: concepts like digital transforma- ing concepts, students executed software solu- tion, Industry 4.0, cyber-physical systems and others tions applicable to real-world problems, and make very relevant having a good command of Com- Computational Thinking competencies were puter Science concepts, even for non computer sci- observed through characteristics of concepts, entists. In this front, Computational Thinking lays practices and perspectives. This paper dis- the foundation for incorporating software development cusses as well situations that may set basis skills in a wider span of profiles. It is not uncommon for strategies of assessment or evaluation of that professionals in certain domain of a business, mar- Computational Thinking principles. ket, or science, require to expand their knowledge to gain basic or complex skills on software development. 1 Introduction The reason behind this is a strong push of the market to make professionals to participate in the develop- Traditional education in Computer Science enables ment of software tools of different complexities that students to become professionals able to apply com- enable the daily execution of their jobs, regardless of puter knowledge in problems that occur in everyday the discipline or context of application (for example a life, thus supporting or serving several other disci- macro, an automation script, or a web page). A soft- plines. As Computer Science students acquire a core ware suite like Microsoft Office offers to the user the skillset, it is expected that they develop a sufficient capacity of automating repetitive tasks using macros command on [Perkovic 2010]: that can be built without coding. For users who need Copyright c by the paper’s authors. Copying permitted for more complex features, it is possible to implement sim- private and academic purposes. ple code using Visual Basic. This illustrates how com- In: A. Piotrkowicz, R. Dent-Spargo, S. Dennerlein, I. Koren, mon products enable users to start developing basic P. Antoniou, P. Bailey, T. Treasure-Jones, I. Fronza, C. Pahl software pieces, that are created without strong basis (eds.): Joint Proceedings of the CC-TEL 2018 and TACKLE on programming languages or software development. 2018 Workshops, co-located with 13th European Conference on Technology Enhanced Learning (EC-TEL 2018), 03-09-2018, In a traditional perspective, the incorporation of published at http://ceur-ws.org Computer Science topics in non-Computer Science curriculum has been directed mainly to computer lit- of the population that implements CT [Cooper 2010]. eracy, being the development of operational capacities In a practical approach, the question about the one of the most common learning objectives (that is, teaching of computer skills to non-computer scientists the ability to use or operate a computer application has caught the attention of the academic community or package) [Bizzarri 2011]. However, this does not over the time, from the 80s to the present. However, necessarily mean that having a good level of computer during recent years, the current perspective has fo- literacy will lead to having a good command of the cused on CT as an efficient strategy to accomplish the underlying principles of Computer Science. This be- mission. This approach has attracted the attention of comes particularly important if we consider that those a broad academic community, and several scientific ar- principles are necessary for profiles who will develop ticles have tried to capture the essence of CT and its software as part of their professional jobs even though field of application [Bloss 2001, Walker 2010]. Previ- they are not computer scientists or trained software ously, it has been discussed and researched how CT developers. helps in understanding the capabilities of computer This paper describes the implementation of Com- science applied in other areas. For example, the appli- putational Thinking techniques to promote the devel- cability of CT in other fields has been studied, includ- opment of software development skills in a group of ing Medicine [Gong 2011], Astronomy [Gray 2010], postgraduate students of a Fine Arts Faculty, under- Archeology [Troccoli 2005], Journalism [Corral 2010], standing that the target population has no previous Political Science [Conitzer 2007], etc. In this paper, experience nor formal training in Computer Science. we extend the experience previously reported incorpo- Moreover, the paper discusses situations that may set rating an additional domain: Fine Arts. basis for strategies of assessment or evaluation of Com- putational Thinking principles. 3 Objectives 2 State of the Art The goal of the implementation of CT as a learning strategy is to improve the ability of students to concep- According to the definition of Computational Think- tualize, understand and use information technology in ing (CT), it ”involves solving problems, designing sys- different fields of application. Likewise, the presence of tems, and understanding human behavior, making use study programs that involve software development in of the fundamental concepts of Computer Science” non-specialized schools and faculties, as well as gradu- [Wing 2006]. From this viewpoint, CT can be under- ation profiles, include the training of professionals ca- stood as applying scientific-computer thinking when pable of interacting with others in order to find ideas facing and solving a problem. This capacity should be to solve problems, and imperatively requires the im- made available not only in higher education programs plementation and systematization of a computational in Computing, but in other higher education programs strategy. and even in basic education programs. In consequence, the need to teach this skillset to students of all edu- Research Goal cational levels becomes relevant. To address the issue, research efforts have focused on the definition of cur- Understanding if through Computational Thinking, ricula that include teaching these skills; nevertheless, didactic and methodological tools can be created to there is still room to continue deepening in the topic, explain computer concepts in a way that facilitates and carrying out empirical research [Grover 2013]. students with non-software profiles to create compu- The development of CT skills also means the im- tational solutions applicable to real-world problems. provement of certain competences, which are usu- ally organized by a progression table, which includes, 4 Research Setting among others, collecting, analyzing and representing data, decomposing and abstracting problems, system- A work setting was developed in the form of soft- atizing, automating and simulating solutions. Previ- ware development training courses in a segmented non- ous work in CT has focused on issues of definition software population. A group of five graduate Fine of the concept and the tools that foster CT. Repen- Arts students was observed. The students came from ning [Repenning 2010] lists a series of conditions that a different undergraduate profiles, mainly graphic design computerized tool must meet for the systemic impact: and other visual arts, pursuing a graduate degree on low learning threshold, allow prototype development, Web Design in a Mexican state-funded, public Univer- facilitate the transfer of knowledge, be systemic and sity. The profile of this population is approximately 30 sustainable. On the other hand, it is recommended years old, with a university degree, preferably in artis- the balance and universality in the previous training tic or creative careers, which allows observing students with relatively limited knowledge in software develop- system. This allows conceptualizing and sequencing ment. in a dimension that is familiar to the student making The graduate program they course is a professional use of creative and plastic skills and then moving to degree designed to train specialists in Web design, pro- software level implementation. Considering the frame- viding our students with theoretical and methodolog- work proposed in [Brennan 2012], the practice allows ical elements to solve needs through technological in- to sequence, express, connect and question. Nonethe- novation in the field of digital communication in Web less, the implementation in HTML has as a conse- environments. This mesh of disciplines requires start- quence that there are no graphical interface tools to ing from strong basis on visual communication and offer assistance when it comes to actual software pro- design, but transcend those skills into abilities to de- gramming: the aid offered by ”what you see is what sign and implement the software product (that is, a you get” (WYSIWYG) editors like Dreamweaver fall web system, web site or web app). This provides an short to assist the integration of control structures ideal working setting to implement CT techniques and such as cycles, events or repetitions in JavaScript. Stu- evaluate outcome products. Students are expected to dent face a situation of more independence to choose expose themselves to sort out a real-world challenge software development techniques, and as a result they from an industrial setting, which can be solved in the encounter more implementation problems. form of a software product. Hence, students shall un- As evaluation technique for the outcome products derstand the problem, abstract it, propose a flow of (namely homeworks and final projects) we proposed a execution of a solution, and leverage the different in- two-fold strategy that includes: formation sources. Our research setting is a course called Dynamic Web • Automatic code review: implementing code Development. The course spans in one semester, four inspection and analysis using an automatic tool hours a week through about 16 weeks of coursework. (http://jshint.com/) looking for complexity The teaching methodology was frontal lessons with and eventual code errors; laboratories to practice the acquired knowledge. The • Visual code scrutiny: implementing a visual period assigned to laboratories comprised half of the code inspection, looking for optimization oppor- workload in the course. tunities and implementation vices. To guarantee the development of CT skills, the course aims to develop certain competences that in- Performing automatic analysis on about 15 home- cludes, among others, collecting, analyzing and repre- work assignments, it is uncommon to detect code senting data, decomposing and abstracting problems, that exceeds a McCabe cyclomatic complexity num- systematizing, automating and simulating solutions. ber greater than 2. Performing visual code scrutiny, In addition to these competences, there are also three it is often found errors where the student expresses a fundamental dimensions: (1) computational con- solution in a strictly sequential manner without dis- cepts (sequences, cycles, events, parallelism, condi- covering which pieces of code can be reused or asso- tions, operators and data), (2) computational prac- ciated with events. For instance, in Figure 1, we can tices (incremental and iterative development, testing, observe a deficiency of implementation, where the stu- reuse, modularization), and (3) computational per- dent repeats three times an instruction that could be spectives (expression, connection and questioning) expressed in a single line of code. [Brennan 2012]. The range of computational tools to be used is seg- mented to the typical technological stack of the web environment: applications developed in HTML, CSS and JavaScript, adding complementary instruments such as jQuery, Ajax and AngularJS. The final prod- uct shall be a fully functional web application. The software systems developed are part of an industrial Figure 1: Deficiency in the implementation of a com- domain selected by the student, under the supervision mon loop of the course advisor. Instead, the student did not identify the ability to cycle a code that can be embedded in a cycle where 5 Evaluation an index is increased: Considering the age range and previous knowledge of the students, they were first asked for a paper and pen- for (i = 0; i <2; i ++) { cil design with a graphic sequence of their computer vnav [i] .style.color = "red"; } a problem, understand their complexity and feasibil- ity, and design a solution to and develop a successful software application. 6 Discussion and conclusions References The frontal lectures in the course guaranteed that all participants have sufficient knowledge of all CT con- [Bizzarri 2011] G. Bizzarri, L. Forlizzi, G. Proietti; In- cepts through the resolution of examples and joint ex- formatica: didattica possibile e pensiero com- ercises. However, during the execution part of the putazionale. Proceedings of DIDAMATICA, project, it was noticed that the students experienced 2011. problems using the concepts of CT autonomously in their own work context. During the project, in fact, [Bloss 2001] Adrienne Bloss. Teaching Fundamentals they were required to identify a problem themselves, for Web Programming and e-Commerce in a Lib- select the most effective solution based on the intro- eral Arts Computer Science Curriculum. Journal ductory part, and finally, the creation of the solution. of Computing Sciences in Colleges. vol. 16, no 2. In this way, we have a first indication that the research pp. 297-302. 2001. question, considering that the Computational Think- ing strategy effectively allowed students to take advan- [Brennan 2012] K. Brennan, M. Resnick; New frame- tage of Computational Science concepts, the creation works for studying and assessing the develop- of computational solutions applicable to real problems, ment of computational thinking. 2012 Annual considering that the observed group did not have for- Meeting of the American Educational Research mal education in software development. Association (AERA’12), Vancouver, Canada, As a limitation of this work, it is clear that the 2012. number of students participating in the course is rather small and will not necessarily lead to firm conclusions. [Conitzer 2007] V. Conitzer, T. Sandholm, J. Lang, Further research or replicating studies are needed to When are elections with few candidates hard to shed more light in the behavior of similar populations manipulate? Journal of the ACM, vol. 3, no. 54, on similar educational contexts. 2007. In line with related literature, we concur with the [Cooper 2010] S. Cooper, S. Cunningham; Teaching idea that CT is a valuable resource for students, be- computer science in context. ACM Inroads, vol. cause it allows for timely efforts to develop system- 1, no. 1, pp. 5-8, Mar. 2010. atic thinking. Having a design and implementation methodology collaborates to cultivate and benefit from [Corral 2010] L. Corral; Educational Techniques and CT skills and put them at the service of subjects of Classroom Experience on Multimedia Systems different fronts of their studies (in light that web tech- Development by Journalism and Communica- nologies can be approached from the commercial, com- tion Undergraduate Students 2010 International munication, visual design and software development Conference on Software Engineering: Theory viewpoints). However, a clear need can be identified and Practice (SETP 2010), pp. 62-67, ISRST. as the observed students typically struggled using di- 2010. rectly in source code. This article describes the implementation of an edu- [Gray 2010] J. Gray, A. S. Szalay, A. R. Thakar, P. Z. cational framework to teach CT skills in a non-software Kunszt, C. Stoughton, D. Slutz, J. vandenBerg; context. Five graduate students of a Faculty of Art Data Mining the SDSS SkyServer Database. 4th were able to implement software systems in a web en- International Meeting on Distributed Data and vironment using the common web stack in a context Structures 2010, pp. 189-210. of industrial application. Students and teachers par- ticipated in a collaborative effort that unites not only [Gong 2011] H. Gong, P. Zuliani, E. Clarke; Model Computational Science but other topics such as Art checking of a diabetes-cancer model 3rd Interna- and Design. A two-fold CT assessment strategy is pro- tional Symposium on Computational Models for posed, which includes both automatic analysis and vi- Life Sciences, 2011, pp. 234-243. sual inspection. Yet the strategy is efficient helping the analysis of the outcome products, it is acknowledged [Grover 2013] S. Grover, R. Pea, Computational that the strategy can be improved for robustness and thinking in K12, A review of the state of the depth. In conclusion, CT skills delivered the neces- field. Educational Researcher, vol. 42, no. 1, pp. sary resources to help students analyze and decompose 38-43, 2013. [Hambrusch 2009] S. Hambrusch, C. Hoffmann, J. T. ment of a checklist for getting computational Korb, M. Haugan, A. L. Hosking; A multidisci- thinking into public schools. Proceedings of the plinary approach towards computational think- 41st ACM Technical Symposium on Computer ing for science majors. SIGCSE Bulletin, vol. Science Education, 2010, pp. 265-269. 41, no. 1, pp. 183-187, Mar. 2009. [Troccoli 2005] A. Troccoli. New methods and [Koh 2010] K. H. Koh, A. Basawapatna, V. Bennett, tools for 3D-modeling of large scale out- A. Repenning; Towards the automatic recog- door scenes using range and color images. nition of computational thinking for adaptive Doctoral Degree Thesis. Columbia University. visual language learning. Proceedings of the 2007 Stanford University. Computational Law. 2010 IEEE Symposium on Visual Languages and http://complaw.stanford.edu/ 2005. Human-Centric Computing, IEEE. 2010, pp. 59- 66. [Tucker 2003] Tucker, M. D., et al.; A model curricu- lum for K-12 computer science: Report of the [Layman 2008] L. Layman, L. Williams, K. Slaten, S. ACM K-12 Task Force Computer Science Cur- Berenson, M. Vouk; Addressing diverse needs riculum Committee. Association for Computing through a balance of agile and plan-driven soft- Machinery, 2003. ware development methodologies in the core soft- ware engineering course, International Journal [Walker 2010] Henry M. Walker, Charles Kelemen. of Engineering Education, vol. 24, pp. 659-670, Computer Science and the Liberal Arts: A Philo- 2008. sophical Examination. ACM Transactions on Computing Education. vol 10, no. 1, 2010. [Leoni 2011] L. Leoni; Competenze e competizioni di informatica: valutazioni sperimentali. Mas- [Werner 2012] L. Werner, J. Denner, S. Campe, D. ter Degree Thesis, University of Bologna (Italy), C. Kawamoto; The fairy performance assess- 2011. ment: Measuring computational thinking in mid- dle school. Proceedings of the 43rd ACM Techni- [Perkovic 2010] L. Perkovic, A. Settle, S. Hwang, cal Symposium on Computer Science Education. J. Jones; A framework for computational 2012, pp. 215-220. thinking across the curriculum. Proceedings of the Fifteenth Annual Conference on Innovation [Wing 2006] J. M. Wing; Computational thinking. and Technology in Computer Science Education, Communications of ACM, vol. 49, no. 3, Mar. ITiCSE ’10. ACM, 2010, pp. 123-127. 2006. [Repenning 2010] A. Repenning, D. Webb, A. Ioan- [Wing 2014] J. M. Wing; Computational thinking nidou, Scalable game design and the develop- benefits society. Social issues in computing. 2014.