Journal of Engineering Education Research Vol. 18, No. 4, pp. 66~75, July 2015 김상진한국기술교육대학교컴퓨터공학부 Design Education Methodology in Computer Science and Engineering Sangjin, Kim School of Computer Science and Engineering, Korea University of Technology and Education ABSTRACT Commonly it is perceived that it is difficult to teach engineering design and satisfy accreditation criteria in computer science and engineering related majors. However, since engineering design in these disciplines are a product design, it is more adaptable than other majors which are process design oriented. This paper shows that although there are subtle differences with conventional engineering design, engineering design education in computer science and engineering can be effectively done. This paper concentrates on how engineering design related curriculum can be constructed, what should be considered when designing such curriculum, and how engineering design can be taught in individual design courses(excluding introductory and capstone courses) based on case experience. Keywords: Engineering Design, Computer Science and Engineering, Accreditation, Design Courses I. 서론 1) 공학 (engineering) 은과학을응용하여문제를해결하는것이고설계 (design) 는지식의창의적표현이라고할수있다. 따라서공학설계 (engineering design) 는기술을이용하여어떤기능을하는제품이나제품의구성요소를만드는과정을말하며 (Dym et al., 2005), 이과정에는과학적요소, 공학적요소, 예술적요소가모두포함된다. 즉, 공학설계는과학적분석과지식의합성을통해삶의질을향상시킬수있는것을개발하는것이고, 그형상화과정에서는예술적요소도포함된다. 따라서우리가공학을전공하는것은이와같은공학설계과정에참여하기위함이고, 이를위해공학을전공할때충분한설계경험을얻을수있어야한다. 이것은모든공학분야에동일하게적용할수있는것이다. 공학분야에따라세부적인차이가있을수있지만큰개념에서는차이를찾기는쉽지않다. 이때문에공학교육인증에서도공학분야와상관없이설계교육을공히매우강조하고있다. 공학설계는크게제품설계 (product design) 와절차 ( 공정 ) 설계 (process design) 로구분된다. 공학인증기준에사용된개 Received February 23, 2015; Revised July 20, 2015 Accepted July 21, 2015 Corresponding Author: sangjin@koreatech.ac.kr 념이나용어는전통적인기계공학분야설계에서가지고온것이며, 이분야는제품설계에해당된다. 컴퓨터공학도제품설계에해당되기때문에오히려화학공학, 재료공학등절차설계에해당하는공학분야와달리공학인증기준에제시된설계개념을적용하기에큰무리가없다. 그럼에도불구하고많이다르다고주장하는경우도있으며, 이것이컴퓨터공학이다른공학과분리된인증기준을가지게된여러이유중하나로간주되고있다. 하지만실제컴퓨터공학분야는다른어떤공학분야보다도설계교육을효과적으로할수있는학문분야이다. 이논문에서는이주장을뒷받침하기위해컴퓨터공학분야설계교육의특징과다른공학분야와의차이점을분석하여제시한다. 또한여러대학의컴퓨터공학분야설계교육현황을조사하고요소설계교과와종합설계교과를운영한경험을바탕으로컴퓨터공학분야의설계교육방법론을제시한다. 특히, 전공분야와독립적으로운영이가능한기초입문설계와한국공학교육인증원의노력으로많이정착된종합설계교과를제외한컴퓨터공학에서요소설계교과를어떻게운영하고전체적인설계이수체계를어떻게구성하는것이적절한지제시한다. 기존문헌에는이주제와관련된논문을찾아보기힘들다. 국내공학교육연구논문지나국제 JEE 논문지에는일반적인 66
설계교육관련논문은다수있지만컴퓨터공학분야에특화된설계교육관련논문은아직없다. ACM SIGCSE에서주최하는학술대회의경우에는컴퓨터공학분야종합설계관련논문들은다수발표된적이있지만컴퓨터공학분야관련전체적인설계교육에관한논문은아직없다. IEEE에서주최하는각종공학교육학술대회의경우에도유사하다. 따라서이와같은연구결과를제시함으로써컴퓨터공학분야를포함하여각공학전공분야별설계교육방법론에대한연구가활성화되기를기대한다. 특히, 컴퓨터공학분야의설계교육에대한잘못된인식을전환하는데기여하고자한다. 이논문의구성은다음과같다. 2장에서는공학분야에서일반적설계교육과공학인증기준 ( 한국공학교육인증원, 2014a) 에서설계교육과관련된요구사항을살펴보고, 3장에서는이를토대로컴퓨터공학분야에서전반적설계교육방법론을살펴본다. 이때여러대학의현황을조사하여제시하며, 이를통해컴퓨터공학분야에서설계교육과정을어떻게구성하는것이바람직한것인지제시한다. 4장에서는컴퓨터공학에서요소설계교과운영방법을사례를바탕으로제시한다. 끝으로 5장에서결론과향후연구방향을제시한다. II. 공학분야설계교육 1. 공학인증기준과설계교육 공학인증세부기준중교과과정에서강조하고있는것중하나가설계교육이다. 설계란수학, 기초과학, 전산학과공학주제영역의이론을기초로하여설계절차나설계의결과물이목표로하는기능과성능을포함한현실적제한조건을만족하는시스템이나시스템의일부를고안하는전과정 ( 예, 문제의이해, 창의적인아이디어탐구, 수행계획수립, 개념설계, 구체설계등점진적상세화의단계 ) 에있어서사용가능한자원을최적으로활용될수있게하는반복적인의사결정과정을말한다 ( 한국공학교육인증원, 2014c). 설계과정을구성하는설계요소에는목표와기준의설정, 합성, 분석, 제작, 시험, 평가, 그리고결과도출등이포함된다. 또한설계과정에서다양한현실적제한조건을고려하여야한다. 이것은산업현장에서실제제품을설계할때다양한현실적제한조건을고려하여설계되기때문에이를경험할수있도록하기위한것이다. 현실적인제한조건이란, 예를들어, 경제, 환경, 사회, 윤리, 미학, 보건및안전, 생산성과내구성, 산업표준등설계의절차나설계의결과물에반드시적용되어야하는제한조건을의미한다. 현실적제한조건은종종제품정의에포함되는제한조건과혼 동되는경우가있다. KEC2005 마지막개정 ( 한국공학교육인증원, 2012a) 부터설계학점을공통기준에서전공분야별인증기준으로옮겨, 각전공분야특성에맞게최소이수설계학점을정의할수있도록하였다. 보통현재 12학점이상을이수하도록요구하고있다. 2. 설계교과의분류설계교과는설계교육내용에따라기초입문설계, 요소설계, 종합설계로분류할수있으며, 교과의설계학점에따라부분설계와순수설계로분류할수있다. 기초입문설계에서는설계에대한기본적인개념및전반적인수행절차에대한교육과더불어창의력을기르기위한교육으로구성되어야하며, 종합설계에서는저학년에서배운지식과기술을기초로하고개별적인설계교과목으로부터의설계경험을아우르는교육으로구성되어야한다. 요소설계교과의경우그정의가다소모호하다. 하지만요소설계에서요소는설계구성요소를말하는것이기때문에일반적으로각개별설계구성요소에초점을두어종합설계이전에설계교육을진행하는교과를말한다. 2014년자체평가보고서작성양식 ( 한국공학교육인증원, 2014c) 부터는요소설계라는용어대신에개별설계교과라는용어를사용하고있으며, 현재는두용어를같이사용하고있다. 기초입문설계와종합설계를제외하고설계학점이있는교과는모두요소설계교과로분류할수있으며, 종합설계이전에충분한설계경험을할수있도록제공해야하는교과이다. 부분설계란해당교과에배정된설계학점이해당교과의전체학점보다작은경우이고, 순수설계란해당교과의전체학점과교과의배정된설계학점이같은경우를말한다. 즉, 순수설계교과에서설계교육만진행되는교과를말한다. 보통기초입문설계와종합설계는순수설계로운영되고, 요소설계는부분설계로운영된다. 물론요소설계도순수설계로운영될수있으며, 각학년별로학년에맞는순수설계교과를요소설계교과로개설하여운영하는것이교육적측면에서효과적이다. 그이유에대해서는 3장 6절에서자세히논한다. 공학인증기준에서요구하는설계학점최소이수학점이 18학점에서 12학점을축소된이후, 프로그램들은개설하는요소설계교과의수를많이줄이고있다. 3. 설계이수체계설계이수체계는공학분야와상관없이 1학년에기초입문설 Journal of Engineering Education Research, 18(4), 2015 67
김상진 계교과, 2, 3학년에몇개의요소설계교과, 4학년에종합설계교과를편성하여구성하는것이일반적이다. 종합설계교과의경우에는프로그램마다차이가있지만 3학년 2학기부터또는 4학년 1학기부터 2학기연계된교과로운영하는경우도많다. 설계이수체계에대한엄격한평가를시행한초창기에는기초입문설계교과보다앞서수강한요소설계교과와종합설계교과보다늦게수강한요소설계교과의설계학점은인정하지않았다. 공학인증에서는교과과정이수체계가적절하게수립되어공식적인자료에공개되어있어야하며, 이수체계준수를보장하는규정이실질적으로시행되고있어야한다 ( 한국공학교육인증원, 2013a). 이수체계준수를보장하는규정의시행이란선수교과목을이수하지않은경우에는후수교과목을이수하지못하도록하는것을말한다. 한국공학교육인증원은지금까지교과과정이수체계에대한평가에있어설계이수체계에대해많은강조를하였다. 2012년 EAC 중점점검사항에는기초설계로시작하여종합설계로완성되는설계교과목체계가있어야한다고제시되었으며, 해당년도판정가이드에는설계를포함하는공학주제교과목간선수-후수관계의명시가적절치않거나종합설계교과목을정점으로하는이수체계가구성되어있지않으면이수체계가적절하지않은것으로규정하고있다. 최근판정가이드에서는설계이수체계와관련하여적절하지않은예로 1) 기초설계교과목이다른설계과목의선수과목으로지정되지않거나. 2) 종합설계교과목에다른설계과목이선수과목으로지정되지않거나를제시하고있다 ( 한국공학교육인증원, 2014c). 많은대학의경우기초설계교과와종합설계교과간에필수선후수관계를규정하고있고, 요소설계의선수로기초설계, 종합설계의선수로몇몇중요요소설계를규정하는것이일반적이다. 하지만강제선후수도입에대해부담스러워하는대학의경우에는최소한의선후수만지정하는경우도많다. 4. 설계교과요건공학인증기준판정가이드에의하면기초입문설계와종합설계를제외한나머지설계교과에서는다음을반드시충족해야설계교과로인정받을수있다. 조건1. 설계구성요소를하나이상다루어야함 조건2. 현실적제한조건을하나이상다루어야함 조건3. 설계주제는개방형문제이어야함 조건4. 설계학점에부합하는비중으로설계교육이이루어 져야함설계와관련된교육비중은다음에의해결정된다고자체평가보고서작성양식 ( 한국공학교육인증원, 2013b) 에제시되어있다. 전체강의시간에대한비중 학생들이수행하는전체학업또는과업에대한비중 프로그램이나담당교수가합리적으로정한바에따르는비중이것이모호한경우가많기때문에많은대학에서는내규에설계와관련된교육비중을어떻게다루어야하는지규정하고있다. 개별교과가아니라전체교육과정측면에서검토해보면종합설계교과이전에이루어지는설계교육에서설계구성요소와현실적제한조건에대한교육이체계적이고균형있게이루어져야한다는요구가있다. 요소설계교과의수를현재많이줄이고있기때문에이조건은충족되기매우어렵다. 기초입문설계와종합설계교과목에서는다음을반드시충족해야기초입문설계, 종합설계교과로인정받을수있다. 조건1. 모든설계구성요소를골고루다루어야함 조건2. 과제의특성이요구하는현실적제한조건을모두다루어야함 조건3. 설계주제는개방형문제이어야함 조건4. 의사소통능력과팀웍능력을다루어야함이와같은측면에서요소설계교과에서는의사소통과팀웍능력을다루지않아도된다는것을의미하지만체계적설계교육을위해서는요소설계교과에서도다루는것이필요하다. Ⅲ. 컴퓨터공학분야설계교육 1. 컴퓨터공학과설계 컴퓨터공학의경우공학인증기준또는컴퓨터정보기술인증기준중하나를선택하여공학교육인증제를도입하여운영할수있다. 컴퓨터공학이다른공학분야와달리별도의컴퓨터정보기술인증기준을가지고있는여러이유중하나가설계교육이다. 이것은 KCC2010 인증기준 ( 한국공학교육인증원, 2012) 에서설계용어를사용하지않고프로젝트라는용어를사용하고있는것만보아도이를쉽게인식할수있다. 물론 KCC2015 인증기준 ( 한국공학교육인증원, 2014d) 68 공학교육연구제 18 권제 4 호, 2015
을새롭게제정하면서다시설계용어를사용하고있다. 컴퓨터공학분야의설계가다른공학학문분야와다른점은다음과같다. 첫째, 컴퓨터공학은소프트웨어공학이라는설계관련세부학문이있는몇안되는공학분야이다. 둘째, 기존인증기준에서제시된설계구성요소관련용어들이컴퓨터공학설계과정용어와맞지않는다. 셋째, 설계결과로순수소프트웨어 ( 하드웨어제작또는특수하드웨어를활용하지않는 ) 를만드는경우에는공학인증기준에서보통제시되는여러현실적제한조건을고려하기어렵다. 넷째. 소프트웨어배포환경의급격한변화로대학설계교육과정에서학생들이개발한시스템을쉽게배포하고운영해볼수있다. 이장에서는컴퓨터공학분야의설계교육을설명하기위해다음대학학부 ( 과 ) 의운영현황을활용한다. 경북대학교 (KNU) 컴퓨터학부 경희대학교 (KHU) 컴퓨터공학과 동국대학교 (Dongguk) 컴퓨터공학과 목포대학교 (Mokpo) 컴퓨터공학과 서강대학교 (Sogang) 컴퓨터공학과 서울과학기술대학교 (SeoulTech) 컴퓨터공학과 숭실대학교 (SSU) 컴퓨터학부 아주대학교 (Ajou) 정보컴퓨터공학부 연세대학교 (Yonsei) 컴퓨터과학과 이화여자대학교 (Ewha) 컴퓨터전자공학부 충남대학교 (CNU) 컴퓨터공학과 한국기술교육대학교 (KoreaTech) 컴퓨터공학부 한국산업기술대학교 (KPU) 컴퓨터공학과위 13개학부 ( 과 ) 는모두인증을받은프로그램을운영하고있으며, 한국기술교육대학교와서울과학기술대학교를제외하고는모두 CAC로인증을받은상태이다. 2. 설계구성요소컴퓨터공학분야에서설계구성요소는기존많은자료에서제시된목표와기준의설정, 합성, 분석, 제작, 시험, 평가, 그리고결과도출대신에소프트웨어공학의전통개발과정인폭포수모델 (waterfall model)(winston, 1970) 에따라요구사항분석, 설계, 구현, 통합, 시험및디버깅, 배포, 유지보수를설 계구성요소로정의하여사용하는것이적절하다. 즉, 설계구성요소는각종공학인증자료에서제시되는용어가컴퓨터공학분야와맞지않는것일뿐, 컴퓨터공학에맞게재정의하여사용하면문제될것이없다. 컴퓨터공학에서폭포수모델에제시된핵심단계들을설계구성요소로정의하여사용하더라도이단계들의순차적진행을강조할필요는없다. 하지만한번쯤순차적진행을엄격하게지키도록설계과정을진행하여폭포수모델의단점을이해하고각단계에서수행하는활동을경험할수있도록하면교육적효과가크다. 또한에자일 (agile) 소프트웨어개발 (Martin, 2003) 과같은반복적개발 (iterative development) 방법론들을활용하여설계를진행하도록하는것이필요하다. 더구나이제는구글플레이, 애플앱스토어등오픈마켓에개발한소프트웨어를배포해보기쉬우므로배포, 유지보수, 운영단계까지교육과정에서충분히경험해볼수있도록할수있다. 3. 현실적제한조건공학인증기준에서제시하는현실적제한조건은경제, 환경, 사회, 윤리, 미학, 보건및안전, 생산성과내구성, 산업표준등을말한다. 컴퓨터공학의경우하드웨어제작이포함되지않는순수소프트웨어제품을개발할경우에는보통공학에서사용되는제한조건의의미를그대로적용하기힘든측면이있다. 하지만아래에제시된것처럼몇가지제한조건을제외하고는충분히고려가가능하다. 경제 (economy): 경제성관점에서프로젝트진행여부를결정하는것. 주요고려사항은제품개발에소요되는비용, 제품가격 ( 시장에서경쟁력 ), 생산자와소비자입장에서소유비용등임 - 학문분야상관없이충분히적용할수있는조건 환경 (environmental): 제품의생산, 사용, 폐기가환경에미치는영향을고려하는것. 이를위해재료의선택, 기술의선택등이달라질수있음 - 하드웨어요소가포함되지않을경우에는컴퓨터공학분야에서는고려하기힘듦 보건및안전 (health and safety): 공학은지식을응용하여인류의삶의질을향상시키는것이므로개발된제품이일상적으로사용될때어떤해를야기하면안됨. 안전한제품을만든다는것은제품자체가어떤위협도없어야한다는것을의미하는것은아니며, 발생가능한위협이수용 Journal of Engineering Education Research, 18(4), 2015 69
김상진 가능한수준이어야한다는것을말함. 모든제품에는수명이있기때문에제품에서발생될수있는문제점 ( 재료의피로, 나쁜설계, 환경악화. 인간조작오류 ) 을설계자가파악하고있어야함 - 하드웨어요소가포함되지않을경우에는컴퓨터공학분야에서는고려하기힘듦 생산성 (manufacturability): 실제생산이가능하도록설계하는것. 이때생산의효율성, 신뢰성, 비용측면을고려해야함. 예를들어나누어지는 parts의수, 공통재료와 parts의활용등을고려하여설계해야한다는것을말함 - 순수소프트웨어시스템의경우에는모듈화와라이브러리활용, 오픈소스등에대해검토하는것으로바꾸어정의할필요가있음 내구성 (sustainability): 미래세대의필요를위태롭게하지않으면서현재의필요를충족할수있도록가용한자원을사용하여제품을만들어야한다는측면과제품자체의수명을연장하기위한방안을설계시고려해야함. 제품의생산과사용에재생가능한자원의사용여부와제품의수명이다하였을때제품의재사용또는재활용 (recycle) 가능여부는반드시고려되어야함. - 순수소프트웨어시스템의경우제품의수명측면에서는해당제품이얼마나오랫동안사용될수있는제품인지와유지보수와확장을고려한설계여부에대해검토하는것으로바꾸어정의하여사용할필요가있음 사회 (social): 인간의필요와사회적이슈를해결하기위한제품을설계해야한다는측면에서제품의사회적영향을고려해야한다는것을말함. - 예 ) 이제품이소수자를불쾌하게하지않는지, 게임에포함된폭력수위가적절한것인지등 - 학문분야상관없이충분히적용할수있는조건 미학 (aesthetics): 대상사용자층에게어떻게매력적으로느끼게해줄것인지에대한검토를말하며, 제품의모양, 색깔, 감촉등모든요소를말하며현재와미래트랜드를고려하여야함 - 사용자상호작용관점에서사용자인터페이스개발에반드시적용해야하는조건임 정치 (political): 공학과정치활동간의상호작용을이해하고고려되어야함 - 예 ) 특정성별, 특정계층, 특정인종의부정적측면을주목시키는제품 - 학문분야상관없이사회라는큰범위내에서검토되어야함. 윤리 (ethical): 다른사람들과상호작용할때올바른행동의표준을제공하여주는행동코드 ( 예 : 주장에대한정직, 뇌물거부등 ) 를인식하고있어야함 - 윤리는제품자체에대한것보다는개발과정에대한것임, 학문분야와상관없이충분히적용할수있는조건 법률 (legality): 전문영역과관련된법률이나정부규제를이해하여야하며, 저작권, 특허와관련법률에대한이해도필요함 - 해당제품을개발할때해당제품과관련된법유무를알아보는것은학문분야상관없이적용할수있는조건이며, 컴퓨터공학분야의경우에는특히정보통신관련많은법률이있기때문에충분히적용할수있는조건임 산업표준 (Standards): 해당제품과관련된산업표준을적용해야함 - 산업표준은법률과함께검토가가능한것이며, 이역시학문분야와상관없이적용이가능한조검임따라서환경, 안전, 생산성, 내구성을제외하고는컴퓨터공학분야에서는제품의종류와상관없이충분히활용할수있다. 생산성과내구성도컴퓨터공학에맞게재해석하면사용이가능하다. 그러므로컴퓨터공학에서현실적제한조건을설계교육에적용하기어렵다는것은잘못된인식에서비롯된것임을알수있다. 이와같은현실적제한조건은제품을분석, 설계할때고려되어야하며, 최종제품을완성한다음에도영향평가를해야한다. 4. 기초입문설계교과운영현황 12개프로그램중 11개프로그램이 1학년에개설하고있으며, 1학년 2학기에개설하는프로그램은그중에 7개이다. 경북대프로그램을제외하고는모두순수설계교과이며, 3학점으로구성되어있다. 기초입문설계는전공분야와독립적으로운영될수있는교과이며, 융합교육을고려할경우에는루이지아나테크처럼입학한전공분야와상관없이, 기계주제, 전자 / 컴퓨터주제, 재료주제를모두경험하도록하는형태의운영도충분히고려할필요가있다. 특히, 다양한전공학생들을같은분반에서수강하게하고다학제팀을구성하여설계주제를진행하면고학년융합교육에큰역할을할수있다. 70 공학교육연구제 18 권제 4 호, 2015
Table 1 Operation Status of Introductory Design Course Univ. Credit Design Credit Year Semester KNU 3 2 1 2 KHU 3 3 1 2 Dongguk 3 3 1 2 Mokpo 3 3 1 2 Sogang 3 3 1 1 SeoulTech 2 2 1 2 SSU 3 3 1 2 Ajou 3 3 1 1 Yonsei 3 3 1 2 Ewha 3 3 2 1 CNU 3 3 1 1 KoreaTech 3 3 1 2 KPU 3 2 1 2 Table 2 Operation Status of Capstone Design Course Univ. Credit Design Credit # of courses Start Y-S End Y-S KNU 8 8 2 3-2 4-1 KHU 3 3 1 4-1 - Dongguk 6 6 2 4-1 4-2 Mokpo 6 6 2 4-1 4-2 Sogang 6 5 2 4-1 4-2 SeoulTech 6 6 2 4-1 4-2 SSU 6 6 2 4-1 4-2 Ajou 4 4 1 4-2 - Yonsei 6 6 2 4-1 4-2 Ewha 6 6 2 4-1 4-2 CNU 6 6 2 4-1 4-2 KoreaTech 6 6 4 3-1 4-2 KPU 6 6 2 4-1 4-2 5. 종합설계교과운영현황 12개프로그램중 9개프로그램이종합설계교과를두학기연속된 2개교과로운영하고있으며, 2개프로그램만 1과목으로운영하고있다. 2과목으로운영하고있는 9개프로그램중 8개프로그램이 4학년 1학기부터교과를편성하고있다. 이들 9개프로그램중 2개를제외하고는각교과는 3학점순수설계교과로운영하고있다. 따라서종합설계교과 2개를모두이수하면 6학점의설계학점을이수하게된다. 컴퓨터공학분야종합설계의경우오픈마켓에배포가가능한작품은배포하도록하여배포, 유지보수, 운영단계를경험해볼수있도록할수있다. 또한특허교육과연계하여새아이디어를특허로출원하는교육도가능하다. 본대학은이를위해공학설계와특허라는교과를운영하고있다. 6. 요소설계교과운영현황가. 요소설계교과구성공학인증초창기에는설계학점최소이수요건이 18학점이었기때문에기초입문설계와종합설계교과를제외하더라도많은교과를부분설계교과로운영할수밖에없었으며, 이들교과는전공선택으로분류되더라도공학인증졸업요건을충족해야하기때문에해당교과가필수교과로인식되는경우가많았다. 이에교과설폐강문제와연계되어거의대부분의전공교과를부분설계교과로운영하는프로그램도존재하였다. 이경우다음과같은문제들이발생할수있다. 부분설계교과이지만해당교과에서공학인증에맞는설계교육이이루어지지않을수있음 부분설계교과에서는대부분학기프로젝트를수행한다. 이때문에학생들의학습부담이많이증가할수있음 부분설계교과에서해당설계비중만큼충실하게설계교육을할경우에는해당교과에서원래다루어야하는교육내용에영향을줄수있음 전체적인설계이수체계측면에서각요소설계교과의설계교육내용을결정하는것이아니라각교과의특성과담당교수에의해결정되는경우가많음. 이경우에는전체설계교육과정에서설계구성요소와현실적제한조건에대한교육이체계적이고균형있게이루어지기힘들수있음많은경우학기프로젝트수행이가능한교과를요소설계교과로지정하고설계구성요소나현실적제한조건에대한고려없이각교수가알아서설계교육을진행하도록운영하는경우가많다. 이경우교과의성격을고려하여팀프로젝트를수행하게되며, 이프로젝트는특정설계구성요소에집중된설계교육을하는것이아니라전체설계과정을간단하게경험하는형태로진행된다. 이와같은경험은해당교과의목표를달성하는데도움이될수있지만설계교육측면에서는잘못된접근방법일수있다. 이를극복하는한가지방법은각학년별로해당학년에맞는순수설계교과를개설하여운영하는것이다. 본대학에서도 2학년에컴퓨터시스템기초설계라는교과를 2014년에신설하 Journal of Engineering Education Research, 18(4), 2015 71
김상진 여운영하고있으며, 다른대학에서도다음과같이유사한교과를운영하고있다. 경북대 : 소프트웨어설계 (2-2, 3학점, 2설계 ) 경희대 : 설계프로젝트C(3-1, 3학점, 3설계 ), 설계프로젝트 D(3-2, 3학점, 3설계 ) 동국대 : 주니어디자인프로젝트 (3-1, 3학점, 3설계 ) 서강대 : 고급소프트웨어실습1(3-2, 3학점, 3설계 ) 서울과기대 : 객체지향분석설계 (3-2, 3학점, 2설계 ) 아주대 : 컴퓨터프로그램설계 (1-2, 3학점, 2설계 ), 소프트웨어분석설계 (3-2, 3학점, 2설계 ) 연세대 : 창의소프트웨어설계 (4-1, 3학점, 3설계 ), X-design (4-1, 3학점, 3설계 ) 한국기술교육대 : 컴퓨터시스템기초설계 (2-1, 3학점, 3설계 ) 나. 소프트웨어공학교과활용현황컴퓨터공학의경우에는소프트웨어공학을대부분요소설계교과로활용할수있으며, 실제는반드시활용되어야한다. 또공인원에서제시하는 2014년자체평가보고서작성양식에의하면이교과는순수설계교과로충분히사용할수있다. 그이유는이교과에서강의하는모든이론내용이설계절차에대한교육이기때문이다. 하지만이와같은이유로소프트웨어공학을순수설계교과로설정해운영하는대학은거의없다. Table 3 Operation Status of Software Engineering Course Univ. Credit Design Credit Year Semester Mandatory KNU 3 1 3 1 KHU 3 0 3 2 Dongguk 3 1 3 2 Mokpo 3 1 3 2 Sogang 3 2 4 1 SeoulTech 3 0 3 1 SSU 3 0 3 1 Ajou 3 1 4 2 Yonsei 3 1 3 2 Ewha 3 1 3 2 CNU 3 1 3 2 KoreaTech 3 1 3 2 KPU 3 0 3 1 : 선택적필수 조사된 13개프로그램중 9개프로그램이소프트웨어공학을요소설계교과로운영하고있으며, 13개프로그램중 7개프로그램이 3학년 2학기에개설하고있다. 소프트웨어공학을요소설계로운영하고있지않는원인은다양할수있지만종종인증평가가부담되어설계교육을하고있음에도불구하고설계교과로표시하지않는경우도있다. 특히, 인증기준에서최소이수설계학점이줄어든이후에는이와같은경향이늘고있다. 7. 컴퓨터공학설계이수체계지금까지살펴본바에따라컴퓨터공학분야에서설계이수체계는다음과같이구성하는것이바람직하다. 1학년에기초입문설계교과를순수설계교과로운영함 2학년의경우 2학기에문제정의, 분석에초점을둔순수설계교과를운영함 3학년에는설계과정에대한전문지식을교육하기위해소프트웨어공학교과를설계교과로운영함 4학년에는 2학기연계된종합설계교과를운영함 이론중심의교과나저학년교과의경우에경우에는해당교과에서다루어야할내용이많기때문에설계교육까지병행하기힘듦 시스템프로그래밍, 네트워크프로그래밍, 데이터베이스프로그래밍처럼실습중심의교과는요소설계교과로활용이가능함. 다만, 종합설계이전에이수할수있도록편성되어야함 설계구성요소중시험및디버깅, 유지보수등에대해교육하기위해고급소프트웨어공학교과의운영도검토해볼수있음 Ⅳ. 컴퓨터공학에서요소설계교과운영방법 : KoreaTech 사례중심으로 소속학부에서 2006년공학교육인증제운영프로그램을시작한이래여러개의요소설계교과를운영한경험이있다. 2010년컴퓨터공학부로구조조정된이후가장최근까지요소설계교과로운영한교과는 2학년 2학기에편성되어있는자바프로그래밍과 4학년 1학기에편성된객체지향개발론및실습이다. 본프로그램에서는출발부터기존수업시간을고려하여학기가총 w주로구성되어있고주마다 h시간의교육을하고, 총학점이 n이며, 설계학점 d(<n) 일때, w*h*d/n 시간이상의설 72 공학교육연구제 18 권제 4 호, 2015
계교육이이루어지면설계비중에맞게교육한것으로내규화하여운영하고있다. 설계교육이이루어지는시간은정규수업시간에실제설계교육을한시간과학생들이설계과제를수행하기위해투자해야하는평균시간을합하여계산한다. 이장에서는두개의교과중자바프로그래밍에서설계교육을어떻게진행하였고, 어떤개선과정이있었는지설명하고자한다. 1. 자바프로그래밍교과개요자바프로그래밍교과는객체지향프로그래밍에초점을두고있는기초프로그래밍교과로서 2013년 2학기까지는다음과같이요소설계교과로운영하였다. 편성학기 : 2학년 2학기 학점 : 3-2-2-1 (3학점, 이론 2시간, 실습 2시간, 설계 1학점 ) 교과목학습성과 : 설계능력, 문제해결, 실무능력, 의사소통 2. 2011년까지운영방식 2011년까지는문제해결능력, 알고리즘설계능력에초점을두고, 승강기시뮬레이션프로그램을구현하는학기개인프로젝트를실시하였다. 이출발은전체적인설계교육측면에대한고려보다는해당교과의교육목표에초점을두는접근이었다. 또한기초교과이기때문에팀웍능력에대한고려없이각학생들의개별역량을검증하고자개인프로젝트로진행하였다. 전체적인설계이수체계측면에서설계교육을진행하지않고개별교과의담당교수가해당교과의교육목표를고려하여교육내용을결정하는문제는설계교육만의문제는아니다. 전체적인교과과정, 해당교과의개설학년및학기에함께개설되는다른교과들을고려하여교육내용과학습량이결정되어야하지만많은경우담당교수의판단에의해결정되는경우가보통이다. 특히, 요소설계에서설계교육내용은해당교과의교육내용보다전체적인설계이수체계측면에서결정되어야한다. 그렇지않을경우종합설계이전에적절하고균형있는설계교육이이루어지기힘들다. 승강기시뮬레이션프로그램은 10층건물에하나의버튼에연동된 2개의승강기가있다고가정하고, 랜덤으로이벤트를발생하도록하여이벤트에맞게승강기를시뮬레이션하는프로그램이다. 따라서설계구성요소중분석일부와구현에초점을두는형태가되었다. 하지만현실적제한조건은승강기탑승인원제한등공학인증기준에서말하는현실적제한조건이아닌문제정의에포함되는제한조건만을사용하였다. 현재 공학교육인증평가에서교과목포트폴리오를보면아직도이와같은문제정의에포함되는제한을해당교과에서고려한현실적제한조건이라고제시하는경우가많다. 이와같이전체설계이수체계측면에서또한설계교육에대한정확한이해없이설계교육을하는것은다음과같은문제점이있다. 첫째, 종합설계이전에균형있는설계교육이라는측면에서요소설계교과로충분한역할을하지못한다. 특히, 다른교과와조율을통해교과에서중점을둘설계구성요소나현실적제한조건을결정하지않고있다. 둘째, 개인프로젝트를진행함에따라팀워크능력과의사소통능력을배양하지못한다. 셋째, 이처럼특정주제하나만을이용하여진행하면주제의다양성이없어간접경험을통한교육효과가크지않다. 3. 2012년이후운영방식 2011년까지운영방식의문제때문에 2학년 2학기에어떤설계교육을하는것이바람직할것인지고민해보았다. 대다수요소설계교과처럼해당교과관련학기프로젝트를실시할수있지만이것은설계교육측면보다해당교과에서달성해야하는교과의교육목표에초점을두는방식이라적절하지않다. 2학년 2학기는설계이수체계측면에서기초입문설계교과를이수한상태이고, 전공교육측면에서는기초적프로그래밍기술만배운상태이다. 따라서전공심화지식을아직학습하지않은상태에서어떤설계경험을할수있도록하는것이효과적인지검토할필요가있다. 설계구성요소를단순화하여문제정의, 분석, 설계, 구현, 테스팅으로구분하였을때, 2학년에게어떤설계구성요소에대한교육을하는것이바람직할것인지에대한답으로부터설계교육에대한답을얻을수있다. 저학년의경우에는프로그래밍언어만배운상태이며, 자료구조의개설학기에따라자료구조조차도배우지않은상태일수있다. 또한자바나 C++ 와같은객체지향언어를보통 1, 2 학년때배우지만객체지향설계까지충분히학습하기는어렵다. 따라서문제정의부터테스팅까지어떤단계도 2학년때충실히해보는것이쉽지않다. 그러나자세한이론적내용을모르더라도설계교육측면에서어떤경험을해보는것이효과적인지생각해보면문제정의, 분석단계는 2학년때충분한이론적교육없이도가능하다는것을알수있다. 또한객체지향언어를배운상태라면해당프로그램을구현하기위해개발해야하는클래스를도출하는것은가능하며, 추가적인교육을한다면이런클래스들간의관계나동적행위를시퀀스다이어그램 Journal of Engineering Education Research, 18(4), 2015 73
김상진 으로도식화하는것도가능하다. 이와같은고민의결과로 2012년부터는다음과같은변화를주었다, 팀단위의자율프로젝트를수행함 보고서양식 ( 팀보고서, 개인보고서 ) 을개발하여배포함 객체지향설계를보다충실하게할수있도록자바프로그래밍교육도객체지향관련요소를후반부에교육하는방식대신에처음부터객체지향에초점을두는방식 (early object approach) 으로변경 (Lister et al., 2006, Johnson et al., 2008) 함 문제정의, 분석에초점을두는설계과제를진행하지만자바교과의교육목표도고려하여설계결과중일부만을자바스윙라이브러리를이용하여구현하도록하였으며, 이를위해학기초부터실습시간에스윙라이브러리실습을진행함가. 설계프로젝트팀구성처음에는학생들이자율적으로팀을구성하도록하였다. 하지만팀을자율적으로구성하도록할경우팀구성을못하는학생들도있으며학습능력이우수한학생들끼리또는그반대끼리팀을구성하는경우도많아교육효과측면과평가측면에서모두부정적인결과를초래하였다. 따라서후에는남학생과여학생을나누고고학년과저학년을나누어랜덤하게팀을구성하였다. 설계프로젝트진행과정에서팀별로총 3차례발표를하도록하였는데수업시간내에모든팀의발표를완료하는것이효과적이므로전체팀수는 10팀이하로제한하였다. 따라서수강인원수에따라각팀별인원수가결정되는형태이다. 나. 설계프로젝트주제선정팀구성이후주제를자율적으로정하도록하였다. 처음에는학생들이자신들의구현능력의한계를고려하여다른수업의학기프로젝트처럼작은규모의주제를정하였다. 하지만작은규모의주제는문제정의, 요구사항분석이너무간단할수있어적절하지않기때문에두번째학기부터는구현이목적이아니라는것을충분히설명해주고규모가비교적큰주제를정하고요구사항분석은상용수준의유사프로그램에서제공하는모든기능을포함하도록하였다. 이렇게주제를선정한결과일부학생들은나중에해당주제를종합설계주제로활용한경우도있었다. 학생이자율적으로주제를선정하지만주제선정결과를사전에듣고동일또는유사주제를선정한경우에는주제를변경하도록하여모든팀이다른주제로과제를진행하게하였다. 이렇게함으로써간접경험효과를극대화할수있다. 다. 설계프로젝트주차별진행방법설계프로젝트의주차별진행방법은다음과같다. 1주 ( 교과목소개 ): 설계과제진행방식을소개함 2주 ( 팀배정 ): 팀배정을한후에 5주까지해야할일을자세히설명함 3주 ( 주제확정 ): 각팀별팀장으로부터주제선정결과를간단히듣고필요한조율을함 2주 ~4주 ( 요구사항분석 ): 주제확정후팀별로시스템요구사항분석, 사용시나리오분석, 사용자인터페이스분석을진행함 5주 (1차발표 ): 주제선정보고서를제출받고이를바탕으로 1차발표를진행함 6주 : 1차발표에대한피드백을진행하고, 10주까지해야할일을자세히설명함 6~9주 : 1차발표에대한피드백결과를반영하여데이터분석을한후에, 클래스를도출하고정적, 동적분석을진행함 10주 (2차발표 ): 설계보고서를제출받고이를바탕으로 2 차발표가진행됨 11주 : 2차발표에대한피드백을진행하고, 15주까지해야할일을자세히설명함 11~14주 : 2차발표에대한피드백결과를반영하여시스템의일부를자바스윙라이브러리를이용하여구현함 15주 ( 최종발표 ): 최종보고서를제출받고이를바탕으로최종발표및시연이진행됨 16주 : 성적과더불어최종피드백을진행함주차별활동중몇가지보충설명이필요하다. 첫주에팀배정을하지못하는이유는첫주에수강정정기간이있기때문에수강인원이정확하게확정된이후에배정하여야변동없이진행이가능하다. 학기가끝날때까지팀별로총 3차례발표를하는데, 각발표마다다른학생이반드시발표하도록하였다. 10주까지는구현에대한고려없이상용수준의프로그램이갖추어야할모든기능을고려하도록하였다. 또한각팀보고서를제출할때마다개인보고서를제출하도록하여개인평가에반영하였다. 4. 개선효과이와같은설계교육을진행하였더니체계적인절차에따라소프트웨어를개발하는과정을이해하게되었고, 구현이소프트웨어개발에전부가아닌것을충분히인식하는좋은계기가되었다. 또한보고서와발표자료를작성하면서의사소통능력을배양할수있었으며, 다른학생들의발표와교수의피드백을통해다양한프로젝트에대한간접경험도얻을수있었고, 74 공학교육연구제 18 권제 4 호, 2015
팀웍능력도배양이되었다. 저학년에서이와같은교육은고학년심화교육에매우긍정적효과가있음이이미발표된바가있다 (Liew, 2005). 더욱이제시된사례처럼부분설계교과에서이와같은교육을하는것이아니라저학년순수설계교과를개설하여이와같은교육을하면서능동학습형태로운영하면교육효과를더욱높일수있다 (Ludi et al., 2005). Ⅴ. 결론 이논문에서는컴퓨터공학에서어떻게효과적으로설계교육을진행할수있는지살펴보았다. 컴퓨터공학은공학인증기준에서제시하는설계교육을적용하기어렵다고생각하는경우가많지만살펴본바와같이오히려가장체계적이며, 효과적으로할수있는학문분야중하나이다. 이논문에서살펴본컴퓨터공학관련설계교육의특징을요약하면다음과같다. 컴퓨터공학에서설계구성요소는소프트웨어공학에서정의되는개발단계를이용하여재정의하여사용하면된다. 특히, 최근에는오픈마켓의활성화로다른학문분야와달리배포, 운영, 유지보수까지교육과정내에서경험해볼수있다. 컴퓨터공학에서현실적제한조건은몇가지제한조건을제외하고는충분히활용할수있다. 컴퓨터공학에는소프트웨어공학이라는설계와관련된세부학문이있다. 이교과는심지어순수설계교과로운영할수있는교과이다. 컴퓨터공학에만적용되는것은아니지만기존전공교과를요소설계교과로운영하기보다는각학년별로학년에맞는순수설계교과를운영하는것이보다효과적이다. 요소설계교과에서어떤설계교육을할것인지는해당교과의특성보다는전체설계교육이수체계측면에서결정되어야한다. 각학년별순수설계교과를운영할때 2학년의경우에는문제정의, 분석, 설계에초점을두는설계를진행하면효과적일수있다. 향후에는여러대학에서시도하고있는학년별요소설계교과의운영현황을보다심도있게분석하여, 각학년에맞는효과적인요소설계교과의교육내용과방법을제시하고자한다. 이논문은 2014년도한국기술교육대학교교수교육연구진흥비지원에의하여연구되었음 참고문헌 1. Dym, C. L. et al.(2005). Engineering Design Thinking, Teaching, and Learning, Journal of Engineering Education, 94(1) : 103-120. 2. 한국공학교육인증원 (2012a), 공학교육인증기준 2005 (2012. 7. 개정 ) (KEC2005). 3. 한국공학교육인증원 (2012b), 컴퓨터 정보기술인증기준2010 (KCC2010). 4. 한국공학교육인증원 (2013a), 2014년평가용 KEC2005 인증평가판정가이드. 5. 한국공학교육인증원 (2013b), 2014년평가용교육기관자체평가보고서 (KEC2005) 작성양식. 6. 한국공학교육인증원 (2014a), 공학교육인증기준 2015 (KEC2015). 7. 한국공학교육인증원 (2014b), 2015년평가용 KEC2015 인증평가판정가이드. 8. 한국공학교육인증원 (2014c), 2015년평가용교육기관자체평가보고서 (KEC2015) 작성양식. 9. 한국공학교육인증원 (2014d), 컴퓨터 정보기술인증기준2015 (KCC2015). 10. Winston, R.(1970), Managing the Development of Large Software Systems. Proc. of IEEE WESCON, 26 : 1-9. 11. Martin, R. C.(2003), Agile Software Development: Principles, Patterns, and Practices. Prentice Hall. 12. Lister, R. et al.(2006), Research Perspectives on the Objects-early Debate, Proc. of ITiCSE, 146-165. 13. Johnson, R.A. et al.(2008), Object-first vs. Structuresfirst approaches to OO Programming Education: An Empirical Study, Proc. of the Allied Academies Int l Conf., 15(2) : 244-248. 14. Liew, C. W.(2005), Teaching Software Development Skills Early in the Curriculum Through Software Engineering, Proc. of the ITiCSE 05, 133-137. 15. Ludi, S. et al.(2005), An Introductory Software Engineering Course that Facilitates Active Learning, Proc. of the SIGCSE 05, 302-396. 김상진 (Kim, Sangjin) 1995년 : 한양대학교전자계산학과공학사 1997년 : 동대학원전자계산학과공학석사 2002년 : 동대학원전자계산학과공학박사 2003년 ~ 현재 : 한국기술교육대학교컴퓨터공학부교수관심분야 : 공학인증, 교수학습법 Phone: 041-560-1490 Fax: 041-560-1462 E-mail: sangjin@koreatech.ac.kr Journal of Engineering Education Research, 18(4), 2015 75