semesters, the course has gravitated away from a module- based survey of fundamental concepts in computer science and engineering toward greater student ...
Session S1E
Work in Progress – Refining a Discovery-based Freshman Computer Science Course David Williams, Edward Wishart, Yaakov Varol, Dwight Egbert, and Eric Wang Department of Computer Science and Engineering, Department of Mechanical Engineering University of Nevada, Reno, Reno, NV 89557 Abstract - As one component of a college-wide redesign of its introductory engineering courses, a project-based introduction to computer science is being developed using open-source software running under the GNU/Linux operating system. Course components include hardware assembly, operating system and software installation, basic system administration, and a working introduction to the engineering design process through the completion of several collaborative projects involving content-based graphic design and computer animation. Through three semesters, the course has gravitated away from a modulebased survey of fundamental concepts in computer science and engineering toward greater student exploration of fewer topics most relevant to the projects. Continuing assessment of each phase of the course provides formative and summative feedback and has played an important role in the maturation of the course. Index Terms - Freshman Engineering Courses, Engineering Design, Linux, Open Source, Assessment PROJECT OVERVIEW The College of Engineering and the College of Education at the University of Nevada, Reno (UNR) are engaged in the design of an integrated freshman curriculum [1] as one phase of “The First Year Engineering Experience Initiative: A Bridge To and From Problem/Project/Team-Based Learning” [2] project supported by the William and Flora Hewlett Foundation’s Engineering Schools of the West Initiative. [3] Each department within the college is contributing to the implementation of a series of interdisciplinary introductory courses which emphasize project-based learning in a collaborative environment. Course projects are selected to build familiarity with the engineering design process through experience while providing a discovery-based introduction to the basic principles and practices of each discipline. When the project is fully implemented, all freshmen within the college will be required to complete the FYEE course of their choosing. COURSE DESIGN AND IMPLEMENTATION Within this program, the Department of Computer Science and Engineering has offered one section of CS 105, entitled “Computers in the Information Age”, each of the past three semesters. The course enjoys the use of a dedicated computer lab which is accessible to students during all normal university
hours. At the outset, student teams assemble their own lab computers from standard components and install an operating system. In this age of inexpensive off-the-shelf pre-installed machines, this provides a first-time experience for all but the most computer-savvy students and has consistently been among the most popular lab activities. Additional hardware activities include the construction of a simple IC-based audio function generator kit which is tested and used during subsequent lab exercises in digital sound. Given the increasingly important role of GNU/Linux in industry and its concomitant presence in engineering education, the course relies exclusively on free open-source software running under a Debian-powered distribution of Linux known as Kanotix [4]. This distribution integrates all of the necessary course tools, a powerful desktop environment (KDE), and an installation system less hostile to first time users than most others. An additional strength of this distribution is its ability to run boot from a CD and run “live” in memory without disrupting an existing OS installation. Students are given a CD of the same system used in lab and are encouraged to use it on their personal machines to build greater familiarity. Although the Linux learning curve is initially steep, especially for command-line operations, most students quickly acquire the necessary proficiency. Last semester, two course projects were completed. In the early part of the course, students were required to design and develop a short web-based (HTML) biography on a pioneer of their choice from the field of computer science. Each web page was peer reviewed and edited by a classmate, with each students’ project grade derived in part from the final version of their own work and in part from the final version of the page they peer edited. The iterative engineering design process was practiced during the layout, crafting, and refinement of these pages. During the second half of the course, student teams of two designed and created a short (30 second minimum) computer animation using open-source programs including Gimp (the “GNU Image Manipulation Program”) [5], GAP (“Gimp Animation Package”) [6], FFmpeg [7], and various sound editing programs integrated into KDE. Lectures presented an introduction to the fundamentals and principles behind each of these projects, including the basics of computer imaging and digital sound. Only a minimal amount of material not directly applicable to the projects was covered during lecture. Following computer system assembly and configuration, weekly lab sessions featured a series of exercises to develop familiarity with the software tools and, toward the end of the course, provided the opportunity for
0-7803-9077-6/05/$20.00 © 2005 IEEE October 19 – 22, 2005, Indianapolis, IN 35th ASEE/IEEE Frontiers in Education Conference S1E-16
Session S1E student teams to work on their projects. Using an open-source oscilloscope simulator [8], students observed, captured, and digitized the various waveforms from the audio function generators constructed earlier. With very few exceptions, the project results demonstrated full mastery of the desired fundamental material, included significant creative content, and served as an excellent platform for an introduction to engineering design. Animations ranged in complexity from simple stick figures with synchronized sound to a complete mini-movie, complete with soundtrack, created from 1,800 individual frames derived from hundreds of digital camera shots. ASSESSMENT PRACTICES AND RESULTS Evaluation of the entire FYEE project is overseen by a senior member of the project team with considerable expertise in academic assessment. Earlier incarnations of CS 105 were comprised of a series of modules in CS topics as varied as an elementary introduction to register-level operations using Java applets and a demonstration of distributed (parallel) computing using a specially-designed academic package. [9] Each module was anonymously assessed at its conclusion using the following criteria: TABLE I ASSESSMENT CRITERIA Key U D P T I F C R
Explanation Usefulness, 5 implies extremely useful, 1 implies no utility whatsoever Difficulty, 5 implies very difficult, 3 just right, 1 trivial Presentation, 5 implies excellent, 1 very poorly presented Time allocated, 5 implies too much time, 3 just right, 1 way too little Interesting to me, 5 means topic was very interesting, 1 I was bored Facilities, 5 means the lab, computers, software were excellent Comprehension, 5 means I understood it thoroughly, 1 I was totally lost Recommendation, 5 means definitely keep this topic, 1 means drop it
Favorite topics, including computer assembly, rated above 4 on this 1–5 scale in categories of usefulness, interest, comprehension, and recommendation. The other criteria were used to modify the topic presentation in subsequent semesters. The least well-received topics received average scores between 2.5 and 3.5 in these four criteria. In addition to the numerical data, written comments with more specific information were solicited; these revealed that students perceived a lack of continuity between the various modules. This feedback resulted in the deletion of considerable content breadth in favor of greater depth in project-related topics with more opportunity for hands-on activities. The twice-weekly lectures and self-scheduled labs of previous semesters were replaced in the just-completed section by one 75 minute lecture and one scheduled three hour lab per week. This format was more conducive to the project- and discoverybased nature of the course, but it made lecture time very precious and necessitated too much abbreviation of some material according to the evaluations. Additional fine tuning is warranted and is discussed below. While the integrated nature of the most recent course curriculum clearly shifts emphasis away from the modulebased approach, periodic assessment at the completion of each
significant phase of the course was continued to provide comparative data. The only topic retained from previous semesters not directly germane to the projects was the presentation on computer malware. This material was received with great enthusiasm because every student in the class, or someone they knew, had experienced a worm or virus. In fact, assessment revealed that this topic was more useful in the eyes of the students (4.60) than that of computer assembly (4.44), the topic which had always dominated that criteria. PLANED IMPROVEMENTS The course will continue to utilize open-source software. Although only 19% of the students had used Linux prior to this course, by the end of the semester, 71% recognized that knowledge of Linux is important in engineering. Based on this experience, 82% responded that they would use a non-invasive CD-based “live” Linux distribution for their future engineering work if it included the necessary software tools. Some technical problems, notably those involving audio driver compatibility, will be overcome by utilizing non-proprietary hardware which adheres to standards compatible with present open-source capability. In order to provide additional relevant content, lecture will be increased from one 75 minute session to two 50 minute sessions per week with the lab session reduced from three hours to two hours per week. Regularly scheduled lab periods in lieu of independently scheduled sessions were discovered to be critical to student involvement and development. While additional lab activity will be encouraged beyond that scheduled, the near-unanimous conclusion of all involved is that given the time limitations for a 3 credit class, swapping a portion of the scheduled lab to gain a bit more lecture time will be beneficial. A surprising number of students also requested additional assignments on lecture topics above and beyond those presented in lab in order to gain greater familiarity with course material. This request will be accommodated in the next offering. The inprogress results of these refinements will be reported at the conference presentation. REFERENCES [1]
The UNR First Year Engineering Experience, http://www.hewlett.unr.edu/BetaSite/
[2]
Wang, E. et al, “First Year Engineering Experience Initiative”, Proceedings of the 2004 American Society for Engineering Education Annual Conference & Exposition, June 2004, Session 2171.
[3]
The William and Flora Hewlett Foundation, http://www.hewlett.org/ Programs/Education/Opportunity/News/eswiNewsRelease.htm
[4]
Kanotix Linux, www.kanotix.com
[5]
The GNU Image Manipulation Program, http://www.gimp.org/
[6]
GIMP GAP, http://www.gimp.org/tutorials/Using_GAP/
[7]
FFmpeg, http://ffmpeg.sourceforge.net/index.php
[8]
Xoscope for Linux, http://xoscope.sourceforge.net/
[9] The Bootable Cluster CD, http://bccd.cs.uni.edu
0-7803-9077-6/05/$20.00 © 2005 IEEE October 19 – 22, 2005, Indianapolis, IN 35th ASEE/IEEE Frontiers in Education Conference S1E-17