================================================================ 08/15/99 to 08/14/00: - Workshop: Students attending our one-week summer workshop receive 5 half-day lectures on theory and implementation details, and then spend afternoons in the lab acquiring hands-on skills. Students are led through some lab exercises by a senior graduate student, and then supervised by lab instructors on more open-ended assignments. They work from individual workstations, and can see the lab instructor's work on a projection system at the front of the class. This format has been very successful for training students on our software. ================================================================ 08/15/98 to 08/14/99: Students working on this project develop skills in four major areas: - core technology: speech recognition In the first year of this project, students have been exposed to all major components of a speech recognition system: search algorithms, acoustic modeling, training, and lexicon development. - software engineering: concurrent software development Our students are trained to use a state-of-the-art concurrent development package (CVS). We make heavier us of this than most, and students quickly learn to grapple with the realities of merging code from several developers. Students are also exposed to a strict procedure for software design and development that includes design reviews, code reviews, diagnostic testing, memory and format checking, multiple platform portability testing, documentation, and release. - programming languages: C++, perl, and Tk/Tcl Since our primary programming language is C++, students are quickly trained to be experts in C++. While we emphasize that code be clean, simple, and easy to read, students nevertheless learn about subtle issues of the language, including memory management and compiler optimization. Students also perform some of their work in perl and Tk/Tcl. Tk/Tcl is particularly useful for developing high performance GUI-oriented applications. Perl is used primarily to massage data into our standard formats. - web programming languages: HTML and Java All students must deliver documentation and presentations in html, and hence quickly become proficient web programmers. A significant portion of our project involves the development of Java applets. Our undergraduates, in particular, get a heavy exposure to Java.