Session F2E
Work in Progress – A Freshman Course for Engineering and Computer Science Students O. Hayden Griffin, Jr.1, Edward A. Fox2, Calvin J. Ribbens3, Thomas D. L. Walker4, Nathaniel J. Davis IV 5, Richard M. Goff6, Jenny L. Lo7, Vinod K. Lohani8, Michael H. Gregg9, and Dwight Barnette10 Virginia Polytechnic Institute & State University, Blacksburg, Virginia 24061
Abstract – Primarily as a result of the move of Computer Science into the College of Engineering, the first-semester engineering course taken by all first-year engineering students at Virginia Tech was significantly redesigned. The primary goal of the redesign was to switch from an inherently procedural programming language (Matlab) to an object-oriented language (Alice). This object-oriented approach to learning programming was also believed to be better for students bound for computer science and computer engineering. In addition, coverage of ethics, which had been constrained to engineering topics, will be broadened to include software issues. Previously implemented hands-on early design portions of the course will not be significantly modified. The first offering of the new course will be in Fall Semester 2004, with approximately 1,200 students enrolled. Index Terms – freshman engineering, introduction to engineering, computer science, object oriented programming BACKGROUND AND INTRODUCTION In 1968, the Virginia Tech College of Engineering created the Division of Engineering Fundamentals, which was assigned to teach, mentor, and advise freshman engineering students. All freshman students enter as General Engineering students and are transferred to a degree-granting department when they have successfully completed a required set of courses. Over the past seven years, the first-year courses have evolved from somewhat standard problem solving, graphics, and programming courses to a format that emphasizes early design and realization, collaborative learning, and highly interactive classroom environments [1-3]. Virginia Tech engineering (computer science) students have been required to own personal computers since 1984 (1985). In fall 2002 Engineering required laptop computers, which were immediately incorporated into the classroom environment. Faculty and students immediately saw an improvement in the
teaching and learning of software (including Matlab and Autodesk Inventor) in the first-year courses. In summer 2003, the Department of Computer Science joined the College of Engineering, and a decision has been made that entering freshmen interested in computer science should begin as General Engineering students in Fall 2005. Further, students admitted to Computer Science for Fall 2004 will take the first-year GE courses. Total enrollment in the first class is expected to be 1200. The first engineering course must be redesigned to accommodate both engineering and computer science bound students. The primary problem with the existing course was that instruction using Matlab, which is inherently procedural, was viewed as an inappropriate first programming experience for computer science and computer engineering students, who will ultimately program in Java and C++, respectively. Moving directly into an object-oriented programming (OOP) environment was desired [4,5]. Design of the new course involved faculty from all engineering departments, with computer science and electrical & computer engineering being more involved since the primary change was at their request. After considerable discussion a syllabus was arrived at that involves general problem solving, ethics (formerly engineering ethics, now expanded to include software considerations), visualization of 3-D objects and also visualization of information, early design (including realization), graphing and simple analysis of graphs, and OOP. The OOP language Alice (www.alice.org) [6] was chosen because of its inherently syntax-free nature. The new course, designated ENGE 1024, Engineering Exploration, will be offered for the first time in Fall 2004. COURSE DESCRIPTION The course description is: “Introduction to the profession and the College of Engineering; foundation material in: problem definition, solution and presentation; design, including hands-on realization working in teams; modeling and visual representation of abstract and physical objects;
1
O. Hayden Griffin, Jr., Head, Department of Engineering Education,
[email protected] Edward A. Fox, Department of Computer Science,
[email protected] 3 Calvin J. Ribbens, Assistant Head, , Department of Computer Science,
[email protected] 4 Thomas D. L. Walker, Department of Engineering Education,
[email protected] 5 Nathaniel J. Davis IV, Assistant Head, Bradley Department of Electrical & Computer Engineering,
[email protected] 6 Richard M. Goff, Department of Engineering Education,
[email protected] 7 Jenny L. Lo, Department of Engineering Education,
[email protected] 8 Vinod K. Lohani, Department of Engineering Education,
[email protected] 9 Michael H. Gregg, Department of Engineering Education,
[email protected] 10 Dwight Barnette, Department of Computer Science,
[email protected] 2
0-7803-8552-7/04/$20.00 © 2004 IEEE October 20 – 23, 2004, Savannah, GA 34th ASEE/IEEE Frontiers in Education Conference F2E-10
Session F2E scientific computation; algorithm development, computer implementation and application; documentation; ethics; professionalism.” The course is 2 semester hours, meeting twice a week for 50 minutes. In our discussions we considered making the 2credit course a single 50-minute lecture and a 110-minute lab/workshop meeting per week, but we decided that approach represented too much change too quickly. We will evaluate the course after it is offered twice in the coming academic year and then decide whether to introduce the alternate version. LEARNING OBJECTIVES One of the objectives of the course redesign was to retain as much of the existing course as possible, since it has been quite successful. Computer Science was very willing to have their freshman students participate in the hands on activities, which tend to be somewhat mechanically oriented. The official learning objectives of the new course are: Having successfully completed this course, the student will be able to: • demonstrate a basic understanding of the design process; • demonstrate basic facility with hands on design and design evaluation, accomplished by working in teams; • demonstrate a knowledge of the disciplines of the Virginia Tech College of Engineering; • demonstrate an understanding of professional ethics and application to real-life situations; • apply the scientific method to problem solving including use of software where applicable; • graph numeric data and derive simple empirical functions; • develop and implement algorithms that focus on object oriented approaches; • describe basic concepts associated with working in teams. It should be noted that though the list of learning objectives appears quite long for a two-credit course a number of the objectives are actually covered simultaneously in particular exercises and assignments. That became apparent as we broke down the objectives and created the outline of the course syllabus. The topical coverage is shown in Table 1. TABLE 1 OUTLINE OF COURSE SYLLABUS Topic Introduction to and application of the design process • Introduction • Design projects • Hands on work in teams Disciplines of the Virginia Tech College of Engineering Professional Ethics Applying the scientific method to problem solving • Application of basic physical and mathematical concepts • Translation of word problems to mathematical statements • Sketching Graphing numeric data and deriving simple empirical functions Developing and implementing algorithms • Visual representation of abstract objects • Develop object-oriented algorithms • Computer implementation
HANDS ON, COLLABORATIVE LEARNING Considerable work has been done on the first semester course over the past few years with the goal of introducing early design, realization, and collaborative learning. Results, as measured by success rate (in Fall 1997 approximately 50% of students had to repeat the course, but for the last few years approximately 20% have had to repeat), student reaction (students now report that they would give a favorable account of the course to future students), and response of faculty to students in later semesters (faculty in several departments report that the students are now better programmers and more engaged, more creative designers) have all been positive. By the time of the conference, approximately half of the course will have been taught for the first time. Student reactions, requirements for training faculty and graduate students, and partial outcomes will be discussed. SECOND SEMESTER COURSES The second semester follow-on courses for this new firstsemester course have been somewhat more difficult to design. We have actually ended up with a second semester with two “tracks,” one for computer science, computer engineering, and electrical engineering-bound students, and another track for students bound for all other majors in the College. We have also implemented one-credit “transition” courses for students who realize that they want to switch from one track to the other. Discussion of the two tracks is beyond the scope of the current paper. ACKNOWLEDGMENT The authors gratefully acknowledge the contributions of other colleagues, primarily in the Departments of Engineering Education, Computer Science, and Electrical & Computer Engineering, who have helped with the design of this course through brainstorming sessions and helpful discussions in other venues. REFERENCES [1]
Goff,R.M. and Gregg,M.H., “Redesign of a Freshman Engineering Program for the New Millenium,” ASEE Southeastern Regional Conf, April 6-8, 1998, Orlando, FL.
% of course 25
[2]
Goff, R.M. and Gregg, M.H. "Why Hands-on Design? A First Year Hands-on Design & Dissection Laboratory", 1998 Industrial Designers Society of America (IDSA) National Design Education Conference. Long Beach, CA September 21-23, 1998. Proceedings are on CD.
10 10 15
[3]
York, S. C., “Providing early design/build opportunities to Freshman Engineering Students”, ASEE 2002 Annual Conference and Exposition, Montréal, Quebec Canada, June 16-19, 2002
[4]
David J. Barnes & Michael Kölling, Objects First with Java - A Practical Introduction using BlueJ, Second Edition, Prentice Hall / Pearson Education, 2005.
[5]
Cooper, S., Dann, W., and Pausch, R., “Teaching objects-first in introductory computer science,” Technical Symposium on Computer Science Education, Proceedings of the 34th SIGCSE technical symposium on Computer science education, Reno, Navada, pp 191 – 195, 2003.
[6]
Alice – Copyright (c) 1999-2003, Carnegie Mellon University.
10 30
0-7803-8552-7/04/$20.00 © 2004 IEEE October 20 – 23, 2004, Savannah, GA 34th ASEE/IEEE Frontiers in Education Conference F2E-11