COC 3110 sec. 0735 (Fall 91) Enrollment: 117
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 2.36 (1.24) 2.03 (1.15) 1.93 (1.07)
Course Evaluation 2.47 (1.20) 2.34 (1.23) 2.38 (1.24)
COT 6325 sec. 0737 (Spring 92) Enrollment: 19
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 1.31 (0.55) 1.93 (1.06) 1.92 (1.09)
Course Evaluation 1.82 (0.97) 2.25 (1.18) 2.34 (1.24)
CAP 4410 sec. 0750 (Fall 92) Enrollment: 12
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 1.27 (0.47) 2.00 (1.19) 1.95 (1.11)
Course Evaluation 1.79 (0.99) 2.34 (1.25) 2.40 (1.24)
COC 3110 sec. 0732 (Spring 93) Enrollment: 62
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 1.99 (1.07) 1.96 (1.09) 1.86 (1.05)
Course Evaluation 2.35 (1.17) 2.29 (1.24) 2.26 (1.21)
COP 3212 sec. 0809 (Fall 93) Enrollment: 47
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 2.01 (1.03) 2.01 (1.12) 1.95 (1.10)
Course Evaluation 2.45 (1.24) 2.29 (1.22) 2.38 (1.24)
COP 3212 sec. 0810 (Fall 93) Enrollment: 62
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 1.99 (1.10) 2.01 (1.12) 1.95 (1.10)
Course Evaluation 2.51 (1.30) 2.29 (1.22) 2.38 (1.24)
CIS 4930 sec. 0842 (Spring 94) Enrollment: 23
Course Mean(Sdev) Dept. Mean(Sdev) College Mean(Sdev)
Teacher Evaluation 1.38 (0.62) 2.02 (1.13) 1.91 (1.07)
Course Evaluation 1.43 (0.57) 2.43 (1.27) 2.38 (1.24)
I redesigned the course around the text Structure and Interpretation of Computer Programs (Abelson and Sussman) used in the introductory programming course at MIT. I found the text to be ideal at introducing procedural abstraction, data abstraction, and other fundamental concepts of computer programming and computer science.
I outlined a new approach to evaluation of students as well, requiring students to complete two to three small programming assignments per week. This forced the students to master many small concepts and interact with computers on a regular basis. I believe that this has a two-fold benefit: it encourages students to keep current with material that otherwise might be ignored until later due dates, and further such encouragement makes it easier for students to face the many hours of programming required in courses they take later in their undergraduate CIS curriculum.
I developed a comprehensive set of course notes that I have updated regularly and that have been employed by each professor teaching the course since my Fall 1991 offering of the course. In semesters in which I have taught the course, I've made the notes available for photocopying in the Engineering Library.
I set forth a policy requiring that all programs be graded by human beings. I believe that it is naive to imagine that students can learn to write excellent programs if they are not given feedback on their creations by human evaluators. Since such grading is a time consuming activity, I developed software to assist teaching assistants in grading student programs and recording their scores. I have continued to improve and update this software and it is still being used in support of the course.
I developed the laboratory materials and supporting
software (a robot programming environment and simulator)
and have taught it every Fall and Spring since it has been offered. The
course combines a brief lecture (ten minutes) with a hands-on laboratory
in which students program the robot simulator. The documentation I
developed for the course employs theories developed in
The Nurnberg Funnel: designing minimalist instruction
for practical computer skill, John Carroll, MIT Press,
1990. The Guided Exploration Handbook I developed is available as a
hypermedia document browsable with Mosaic via the uniform resource
locator http://www.cis.ufl.edu/~jnw/Karel/
.
The difficulty in teaching this course is to do justice to the area while aiming the course at undergraduates. For many of CIS students, this is the first course in which concepts taught in Calculus and Linear Algebra are actually applied to a variety of problems. I try to achieve a balance between qualitative and quantitative presentation, providing the fundamental concepts in a formal way and then discussing specific methods without developing the entire theories supporting them. As with all other CIS courses, hands-on experience is essential. Providing equipment to allow students to develop computer vision application programs and test them on real data is what led to the original NSF equipment request.
The fundamental teaching strategy in this course is to illuminate the subject. Texts in this area are typically quite dry and require significant assistance from a teacher to show the simplicity of the underlying concepts (which seem quite complex on the surface).
I chose to provide on-line course
materials to students via the Mosaic browsing tool for
WorldWide Web multimedia hypertext documents. This choice allowed me to
provide the syllabus, homework assignments, project descriptions, and
other reference materials on an up-to-the-minute basis, but allow
students to retrieve the information at their convenience. I found this
to be an effective way of providing a wide variety of detailed
information to them. The documents for this course are still browsable
from the uniform resource locator
http://www.cis.ufl.edu/~jnw/CIS4930/
.
I also asked students to develop their system designs using the same multimedia document preparation system. This reinforced the system design principles taught in the course by requiring multiple representations of each design element. It also introduced them to cutting-edge information presentation techniques and tools.
In addition to using the C++ programming language, I had students
complete projects using the Dylan language recently developed by Apple
Computer (Dylan: an Object-Oriented Dynamic
Language, Shalit 1992, Apple Computer). I found that
the only Dylan implementation available that would work on our system
was a public domain interpreter known as Marlais. I found a variety of
problems with the Marlais interpreter, took over the development of this
piece of software, and have been the author of this software product
since version number 0.3. It is now in revision 0.5.4. Not only did this
benefit students in the course, but Apple Computer Corp.
distributes the software I developed for this course and
it has been employed by people around the world. This can be found on
their ftp site,
cambridge.apple.com in
/pub/dylan/Marlais or via
their WorldWide Web page
http://www.cambridge.apple.com/
.
As an example, consider the introductory course. The reorganization of COC3110 I instituted in the Fall of 1991 embarked on the use of the Scheme programming language rather than a more traditional language such as Pascal. I knew that students would resist this change, therefore, I did my best to motivate them by pointing out the novelty of their activities. Previous to this semester, it had oft been the case that the Data Structures course would use a programming language different from COC3110, but students did not typically worry about such differences. Realizing that students would become more sensitive to such issues, I proposed a group of one-hour courses designed to provide rapid introduction to particular programming languages. These could be taken by students to help them gain familiarity with languages to be used in other parts of the curriculum. Unfortunately these classes were initially taught by graduate students. I believe they too needed a firm foundation and need to be taught in a uniform way from semester to semester. I failed to insure that this step was taken.
I have discussed the multiple-course dissonance problem with the faculty who have taught the introductory course in the last few semesters. Drs. Crummer, Dankel, Bermudez, and I are considering the issues involved in coordinating the introductory course with the several courses that follow it including Data Structures and Software Engineering and are currently engaged in discussions about how we can better support the needs of these courses in the introductory course's curriculum. I believe that this kind of joint work can provide the biggest improvement in my instructional efforts.
My primary difficulties in presentation and lecture style are with pacing of my speech. My natural tendency is to speak rather quickly. This tends to place a hardship on students who are not up to date on material and on foreign students. I have attempted to address this in the last few semesters, and student comments about this issue are tapering off.
I need to improve my course planning in offerings of non-introductory courses to improve the homework assignments. In the Object Oriented Programming course, several students noted that more homework and programming assignments would be helpful. I hope to balance this desire against the difficulty students face in completing homework assignments. Merely increasing numbers of homework assignments would probably tend to increase student frustration.
In short, I believe there are several areas for improvement in my course offerings. I think that coordinating coursework across the board is the most important issue to be addressed, as it will have the biggest impact on a student's world view.
I was one of the twelve investigators on the NSF SUCCEED project Freshman Interdisciplinary Laboratory, headed by Marc Hoit of Civil Engineering, which led to the development of the laboratory version of the EGN1002 course.
I was voted ACM Professor of the Year in April of 1994. I believe that the fact I received this award at the end of the three year period of this TIP indicates my excellence in teaching over the entire period.
I was the candidate nominated for the 1993-94 Teaching Award by the CIS Teaching Awards Committee. This underscores the fact that it is not only students who understand and appreciate my teaching efforts.
I have encouraged students to publish their work and have jointly written papers with them, giving them credit in authorship as appropriate. This include the following recent papers:
Undergrad Course semester enroll. %responsibility TA?
COC 3110 Introduction to CIS F 91 117 100% Y
COC 3110 sec. 0732 Introduction to CIS Sp 93 62 100% Y
EGN 1002 Freshman Engineering Sp 93 * 8% Y
COP 3212 sec. 0809 Introduction to CIS F 93 47 100% Y
COP 3212 sec. 0810 Introduction to CIS F 93 62 100% Y
EGN 1002 Freshman Engineering F 93 * 8% Y
CIS 4930 Object Oriented Programming Sp 94 23 100% Y
EGN 1002 Freshman Engineering Sp 94 * 8% Y
Graduate Course semester enroll. %responsibility TA?
COT 6325 Formal Lang & Automata Theory Sp 92 19 100% N
* Approximately 12 different students per week each week of the semester.
See description of this course in Teaching Philosophy Statement
in Section 4.
Credit Hours F91-Sp94 Contact Hours F91-Sp94
Undergraduate 1322.5 16.7
Graduate 203.2 27
Getting students to carry out their work using hypermedia documents also allowed them the opportunity to break into hypermedia document creation at a time when it is in its infancy. Consider that the English department (through the IBM Writing Project) is now touting the use of this type of medium as being ``pioneering.''
ftp and WorldWide
Web. During the month of September alone, over 44 colleges and
businesses obtained copies of this software from the University of
Florida and many others obtained copies directly from Apple
Computer.
This document is copyright 1994 by Joseph N. Wilson.