From riedesel@cse.unl.edu Sat Apr 21 18:57:00 2001 Return-Path: Received: (from riedesel@localhost) by cse.unl.edu (8.11.2/8.9.1) id f3LNv0D29177; Sat, 21 Apr 2001 18:57:00 -0500 (CDT) From: Charles Riedesel Message-Id: <200104212357.f3LNv0D29177@cse.unl.edu> Subject: Re: course content In-Reply-To: from Karen Ward at "Apr 20, 2001 03:33:46 pm" To: Karen Ward Date: Sat, 21 Apr 2001 18:57:00 -0500 (CDT) X-Mailer: ELM [version 2.4ME+ PL65 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IMAPbase: 1205869044 1 $NotJunk $Junk Status: RO X-Status: X-Keywords: $NotJunk X-UID: 1 Greetings! I assume the announcement you received is the one I copied below? My interest in this series of workshops (this is the third year) stems from the great range of perceptions and preparedness UNL's incoming computer science and engineering students have. I meet with many of the prospective students and see confusion about what computer science is, the job possibilities for graduates, overemphasis on calculus and underemphasis on logic and related areas of discrete mathematics. There are students who are attracted to the artistic and creative possibilities of web page programming who just might find fine art and/or journalism more interesting than computer science. There is confusion with the term "Information Technology". I have also seen the capabilities and limitations in the range of Nebraska high schools in acquiring and maintaining state-of-the-art hardware and software, in preparing teachers for AP-style computer science (Pascal to C++ and soon to Java), and in attracting students into the program - in particular girls (Only about 10% of our majors are female.) Some programs stem from business, others from math, and administrative support (and understanding) varies considerably. We will soon be raising our standards for enrolling in the first regular computer science course (CSCE 155 - Intro to C.S. I) to require certain math, reasoning, and programming ability. A majority now come in with at least some programming. A few years ago I developed a beginning, science-approach, breadth-type sampler course for both majors and non-majors. Once through the course, students have a much better understanding of what computer science is, and whether or not it is something they want to continue. It is in this course that I present a chapter on algorithms (all pseudocode dealing with language structures, functions and procedures, iteration and recursion) followed by a chapter on programming languages (note the plural!) I want the students to encounter several programming paradigms before focusing on one primary language for routine program development. The languages I currently use are Lisp (functional programming), Forth (stack-based), Prolog (logic). By no means do I present the entire language, rather fundamental pieces that exemplify important computer science concepts. For example, traditional languages typically use infix notation for numeric expressions. Using a stack, Forth uses postfix notation. By placing the operator first, Lisp uses prefix notation. Recursion is almost trivial in Lisp. The best part is that these language processors are free and consume minimal computer power and in some cases are interpreted rather than compiled. This makes the environment extremely simple and students get instant responses to their work. In the workshop I also want to present elements from Tcl and Perl and just old unix Awk. Regular expressions (which these languages can handle) are very important in a hierarchy of language models. Machine models of computation (finite state machines, push down automata, and Turing machines) correspond to these language models and are extremely important in computer science theory. Haskell and/or ML are fascinating languages that develop the concept of "data type" to great educational use. There are major efforts to develop and distribute (free) high school level programming environments for Scheme and Java. I will be working with these also (Dr. Scheme, BlueJ, etc.) In summary, the schedule is flexible. I will conduct a survey of the participants prior to the workshop to better determine background, needs, and interests. The intent is to prepare teachers for getting these high school students interested and ready for college work. I expect participants to have at least some mathematics expertice, some programming preferred, but at least solid computer applications. And remember that I am used to working with hundreds of non-majors encountering the thrill of computer science (ok, some call it agony) for the first time. I hope this helps! Chuck Riedesel > I just received an announcement about a computer science class that will be > offered this summer - specifically for high school teachers. Can you give > me more information about the course content - what languages will be > taught? will the class be very elementary and therefore useful for our > teachers who don't teach any programming? or will it be more "upper level" > and more useful to our teachers who already have some programming > background? > > I want to forward the class announcement to our entire department of 17 but > know I would immediately get "more specifics, please" replies right away. > > Thanks.... > > ----------------------------- > Karen S. Ward > Lincoln Southeast High School > Mathematics Department chair > (402) 436-1304 > ----------------------------- > > Public-Domain Languages for Teaching Computer Science in the High School A Workshop for High School and Community College Teachers of Mathematics and Computer Science June 11-14 on UNL Campus Is teaching programming with C++ the best way to introduce your students to computer science? What about the approaching switch to Java? Are the software and hardware costs becoming excessive? Is remaining with Basic, including Visual Basic, acceptable? Are there aspects of computer science that are being missed? What can be done about the gender gap? What will give your students the greatest advantage when they continue on into computer science or computer engineering in college? UNL welcomes High school and community college teachers from Nebraska to participate in a workshop early this summer at which these questions will be answered, practical options presented, and continuing assistance be made available. There is a treasure trove of lesser known programming languages and supporting materials that is free, easy on the computer hardware support, and yet more useful than traditional languages for teaching the important concepts of computer science. Use of these programming languages is the focus of the workshop. A sample of the languages and tools that will be examined is Forth (great for teaching about stacks and postfix notation), Lisp and its dialect Scheme (extremely simple syntax, functional programming paradigm, great for teaching about recursion), TeachScheme (a comprehensive educational support system utilizing Scheme), Prolog (logic programming paradigm, great for teaching about forms of logic, logic resolution, and recursion), BlueJ (a GUI Java environment ideal for teaching class structures and object orientation). Only a small part of the time will be devoted to studying these languages with their syntax. Most of the time will be available to examining how the breadth of computer science can be presented using these languages as tools. This breadth includes data representation, digital logic, computer organization, networks, algorithms, language structures, data structures, operating systems, computational theory, and much more. Previous Workshops of the Series: The Computer Science & Engineering Department at UNL is seeking to expand its service to Nebraska high schools with a series of summer workshops. The theme of these workshops is how computer science can best be taught at the entry level, considering pedagogy, resource constraints, gender imbalance, curriculum flexibility, perceptions of the subject, and ease of preparation. The focus of previous workshops was balanced coverage of the breadth of computer science and the role of mathematics, in particular discrete mathematics in computer computer science. This summer's workshop will be held the week of June 11-15. Most costs including motel (for those coming from a distance), meals, and materials are covered by a grant from the Nebraska Math & Science Initiative. There will be an option to receive education credit (for the additional cost of tuition.) Space is limited to 30 participants.