Learn By Doing

A Lifelong Learner Shares Thoughts About Education

  • http://www.washingtonpost.com/wp-dyn/content/video/2006/08/01/VI2006080100794.html

    Welcome to the washingtonpost.com Video Mash-Up, where
    our readers have the opportunity to create their own interview clips
    opposite Post political reporter Dana Milbank. We provide the
    questions, you provide the answers!

    First, download the MPEG2 video clip you see playing at
    the top of this page, using the “Download Clip” button below. Using
    your own editing software, cut it up any way you like and splice in
    your own video, according to the rules below. Then attach your finished
    mash-up clip to an e-mail and send it to the address below.

    In a few weeks washingtonpost.com will post all videos
    submitted that meet the requirements below and will give viewers the
    opportunity to comment and rate the videos. That’s not a deadline,
    though — we’ll keep posting new videos if we keep getting them from
    you.

    The Rules:

    1. Submissions must be in Quicktime (.mov) or Windows
    Media (.wmv) format and no more than three (3) minutes in length. You
    do not have to include all of the Dana Milbank clip we have provided,
    but your submission must include at least a part of it.

    2. Submissions will be disqualified if they violate
    copyright or are determined to be offensive, threatening, defamatory or
    libelous. You must have full rights to any material you include in your
    submission.

    3. Submitters must provide contact information (name
    plus e-mail or phone number). No e-mail addresses or phone numbers will
    be published.

    Right-click (on PCs) or option-click (on Mac) below to save the clip:

    washingtonpost.com

    Submit your finished video here, SendVideo@washingtonpost.com. By submitting a video, you acknowledge that you have read and agreed to the submission agreement here.
    You must include your name and an e-mail address or phone number where
    you can be reached. Only your name will be posted along with your
    video; your contact information will not be published.

  • Lexisum – Lexicon Wikipédia Summary
    Browse wikipédia as you type and impress your colleagues with excellent prints.

  • Arts and Entertainment

    Getting the Whole Picture, in and Out of Class

     

    Alan Zale for The New York Times

    LIFE IN THE FILM LANE Michael Goldstein teaches
    students in film classes at Eastchester High School. He says he covers
    “all factors from pre- to postproduction.”

     

    Published: March 2, 2008
        RESPONDING to the film classes and clubs proliferating in high schools around the county, the Westchester International Film Festival has added a Future Filmmakers Division this year. The student submissions in grades 9 through 12 will be screened at the City Center 15: Cinema de Lux in White Plains on March 9 and, through the support of the Matthew S. Hisiger Film Foundation, the student capturing first prize will win $1,000 and the student’s school will receive a professional high-definition camera package valued at $5,000.
    In the Region 
    Long Island, Westchester, Connecticut and New Jersey
    Iris Stevens is the director of both the Westchester County Office of Film and Television and the film festival. When she and members of her staff called every high school in the county to promote their new competition, they discovered what she called a “staggering statistic.” “Of the 63 public and private high schools in Westchester,” she said, “only 12 do not have some form of film education!” At Hastings High School, the English department chairman, Michael Mahony, has been teaching two film courses — analyzing Hollywood films and creating nonfiction films — since 1994. Recent annual enrollment has been as high as 90 students. The school has had a Film Society for more than 10 years and a film festival for three. As part of a new senior alternative last spring, 15 students worked on a documentary under Dr. Mahony’s direction and several current seniors have already approached him to sponsor their individual filmmaking efforts. “Film is one medium that students seem to intrinsically value, maybe more than any other, and students from both ends of the academic spectrum thrive in the classes,” Dr. Mahony said. “Recently, I’ve had many more who are seriously considering the film industry.” A number of his former students have gone on to film school, and Benh Zeitlin, a 2000 Hastings High School graduate, won the award for Best Animated Short at the 2005 Slamdance Film Festival in Park City, Utah. Byram Hills High School offered only one film media class when David McMichael began teaching in its art department 10 years ago. Now, he and another teacher work with about 150 students each year in Film I, Film II and Advanced Film Workshop. The school has two film clubs — one for watching and one for making movies — and a yearly screening of the best student films. “Kids are watching a ton more films these days in so many different ways — on iPods, computers, pay-per-view, DVDs — and it has become technically much easier to make a film because extremely sophisticated tools are less expensive and easier to acquire,” Mr. McMichael said. “And since students are able to make movies in school and be involved in so many aspects of filmmaking — operating the camera, directing, acting and editing — they can get a better idea of the whole picture.” Six years ago, Eastchester High School’s director of technology, Anita Better, recognized the need for a full-time person to take charge of the school’s TV studio and Michael Goldstein was hired as a teaching media specialist. After converting the simple studio to a media production center, he began teaching two levels of film courses in which, he said, he covers “all factors from pre- to postproduction, including concept ideas, screenplay writing and formatting, storyboard design, filming, lighting, sound and computer-based editing.” Mr. Goldstein anticipates that the Eastchester Film Festival, complete with its own version of the Academy Awards, will screen close to three hours of student films this spring. “I don’t think this increased interest in film is a blip or an aberration,” Ms. Stevens said. “It’s something that’s very real within the teen and young adult community. Education is changing in response to the kinds of careers young people want to go into and filmmaking is becoming a major player.”

  • By Jessica Hupp

    The Internet being what it is, web designers do not have a hard time
    finding resources. However, there are times when you have to call in
    the big guns. That’s right, we’re talking about university courses, and
    they cover everything from design theory to Internet culture.

    Introductory Courses

    With these courses, you’ll get a beginner’s look at web design technology.

    1. Introduction to Computers: This course covers the basics of programming, software, and the Internet. [Berkeley]
    2. Introduction to Web Design: This course will take you from basic HTML to CSS and multimedia. [Indiana University]
    3. Multimedia & World Wide Web: In this course, you’ll learn how to create user-centered documents using HTML, CSS, JavaScript, and Flash. [DePaul]
    4. Webpage Authoring: Get a hands-on introduction to HTML in this course.[Sofia]
    5. Web Design: Learn about design for the web with this hands-on course. [Miami Dade College]
    6. Introduction to WWW/HTML: Create a basic HTML page and get an overview of style and elements of a good web site. [University of Minnesota]
    7. Basic HTML: Delve into HTML tags, basic structure, and more in this course. [University of Washington]

    Visuals

    These courses cover graphics, visual communication, and more.

    1. Computer Graphics: This introductory graphics course will walk you through visual design. [MIT]
    2. Historical Foundations of Visual Technology: Learn about the history and details of visual technolgies worldwide. [DePaul]
    3. Fundamentals of Computational Media Design This course discusses digital art and offers hands-on design exercises. [MIT]
    4. Graphic Design: Learn about the basic theories and skills of visual communication. [Miami Dade College]
    5. Information Visualization: Consider space, order, focus, context, and more in this course. [University of British Columbia]
    6. Art of Color: In this course, you’ll learn the basic principles of color in visual arts. [MIT]
    7. Three-Dimensional Modeling, Animation and Rendering Using Blender 3D Software: Get into 3-D modeling and animation with this course. [Tufts]
    8. Survey of 3-D Animation: Learn how to create animations with Maya in this course. [DePaul]
    9. Algorithms for Computer Animation: Learn about the algorithms that make animations possible. [MIT]
    10. Illustration: Learn how to create and manipulate full-color graphics in Adobe Illustrator. [Miami Dade College]

    User Design

    Take these courses to learn how to make your design work for real people.

    1. Accessibility in Interaction Design: Understand how to design for the disabled with this course. [The Open University]
    2. User Inferface Design and Implementation: Follow this course to get a look at usability, user-centered design, and more. [MIT]
    3. People-Centered Design: Consider how you can design for people with this course. [The Open University]
    4. Social Visualization: In this course, you’ll learn how to visualize people and their interactions. [MIT]
    5. Human-Computer Interaction Seminar: This seminar offers weekly speakers on human-computer interaction design. [Stanford]
    6. Human Computer Interaction: Understand usability, user studies, and cognitive models with this course. [University of Washington]
    7. Common Sense Reasoning for Interactive Application: Use this course to discover how you can use common sense knowledge in your design. [MIT]
    8. Designing the User Interface: Consider text, color, moving images and sound in your design. [The Open University]

    Design

    Get hands-on instruction in design with these courses.

    1. Software Engineering for Web Applications: In this course, you’ll learn how to create a site with a database, cookies, and more. [ArsDigita University]
    2. Creating Interactive Multimedia:
      Learn about the significant characteristics and elements of multimedia,
      and create examples of interactive multimedia in the web browser.
      [Queensland University]
    3. Introduction to Macromedia Flash: Learn how to make animation, sound, and graphics with Macromedia Flash. [Sofia]
    4. Introduction to Multimedia Programming: This course covers information design, navigation, programming, and more. [Monash University]
    5. Creating Home Pages on the World Wide Web: Create a complex HTML site with this course. [University of Minnesota]
    6. Designing Sociable Media: This course discusses creating a design that works with social cues. [MIT]
    7. Digital Typography: Learn the history and manipulation of typography in this course. [MIT]

    Programming

    These courses offer an in-depth look at a variety of programming languages and methods.

    1. Java: This class will teach you how to write Java applets and applications. [University of Minnesota]
    2. XML Foundations: Consider why you should use XML, and learn about CSS, syndication, user interfaces, and beyond. [Berkeley]
    3. Web Programming: Learn how to program web pages for interactive content with this course. [University of Washington]
    4. Web Based Information Systems: This course covers protocols, forms, cookies, and much more. [University of Alberta]
    5. XML with Java: Take a look at XML and Java, specifically technologies like XQuery and JavaServer. [Harvard]
    6. Server-Side Web Development Distributed Lectures: Take a look at server-side programming, specifically Apache, PHP, and beyond. [Indiana University]
    7. JavaScript Programming: Get an advanced look at JavaScript in this course. [University of Minnesota]
    8. Java Programming: Learn about the Java programming langage with applets, object-oriented programming, and integration with HTML. [Sofia]

    E-Commerce

    Check out these courses that focus on web design for sales.

    1. Transaction Processing for E-Commerce: Learn how to process transactions online with this course. [University of Washington]
    2. An Introduction to E-Commerce and Distributed Applications: Take a look at online retailing with this course. [The Open University]
    3. E-Commerce and the Internet in Real Estate and Construction: Take a look at how e-commerce has shaped the real estate industry. [MIT]
    4. E-Marketing: This Spanish course will teach you how to market your site. [UC Irvine]
    5. Networking Infrastructure for E-Commerce: Learn about the capabilities and limitations you’ll have to work with in e-commerce. [NC State]
    6. Economics and E-Commerce: You’ll learn about the growth and future of e-commerce in this course. [MIT]

    Content

    Consider what your design should be made of with these courses.

    1. Dynamic Content Development: Look at server-side technologies, Dreamweaver, ASP, and lots more. [Purdue]
    2. Communicating in Cyberspace: Take a look at digital communication with this course. [MIT]
    3. Electronic Media: Hear from a variety of lecturers on new media in this podcast. [Abilene Christian University]

    History & Culture

    Learn about the Internet’s history and culture through these courses.

    1. The Anthropology of Computing: Consider computers as meaningful tools for society and culture in this course. [MIT]
    2. History of New Media: Find out exactly what new media is, and discuss it in networks, art, and technology. [LeMill]
    3. Media in Cultural Context: Popular Readerships: Here you’ll get a look at the history of popular reading and media. [MIT]
    4. The Future of the Internet: You’ll learn about Internet architecture as well as current issues like network neutrality. [Stanford]
    5. Foundations of American Cyber-Culture: Consider new media, demographics, open source, and lots more in this course. [Berkeley]

    Supplemental Courses

    Take your web design education a step further with these supplemental courses.

    1. Web 2.0: Get a good look at web 2.0 as it relates to users, online business models, and new technologies. [Weber State University]
    2. A New Era?: This course takes on the new economy and innovation. [The Open University]
    3. Advanced Internet and Web Services: Get a good look at the design of search engines, secure web services, and more. [University of Washington]
    4. Ethics and the Law on the Electronic Frontier: This course will educate you on some of the legal and ethical issues concerning the Internet. [MIT]
    5. Computer Networks: Consider the global network infrastructure and its design principles in this course. [MIT]
    6. Information Security: Learn about cryptography, single sign-ons, e-commerce, and other topics in security. [University of Bristol]
    7. Search Engines: Technology, Society and Business: Get an introduction to search engines, intellectual property in searches, advertising, spam, and more. [Berkeley]
    8. Introduction to Copyright Law: This course discusses copyright law as it relates to the Internet and beyond. [MIT]
    9. Data Mining: Learn how to capture and use data to improve web design. [MIT]
  • CrossTalk - The Journal of Defense Software Engineering Jan 2008 Issue

    Computer Science Education: Where Are the Software Engineers of Tomorrow?

    Dr. Robert B.K. Dewar, 
    AdaCore Inc.
    Dr. Edmond Schonberg, 
    AdaCore Inc.

    It
    is our view that Computer Science (CS) education is neglecting basic
    skills, in particular in the areas of programming and formal methods.
    We consider that the general adoption of Java as a first programming
    language is in part responsible for this decline. We examine briefly
    the set of programming skills that should be part of every software
    professional’s repertoire.


    It
    is all about programming! Over the last few years we have noticed
    worrisome trends in CS education. The following represents a summary of
    those trends:

    1. Mathematics requirements in CS programs are shrinking.
    2. The
      development of programming skills in several languages is giving way to
      cookbook approaches using large libraries and special-purpose packages.
    3. The
      resulting set of skills is insufficient for today’s software industry
      (in particular for safety and security purposes) and, unfortunately,
      matches well what the outsourcing industry can offer. We are training
      easily replaceable professionals.

    These
    trends are visible in the latest curriculum recommendations from the
    Association for Computing Machinery (ACM). Curriculum 2005 does not
    mention mathematical prerequisites at all, and it mentions only one
    course in the theory of programming languages [1].

    We
    have seen these developments from both sides: As faculty members at New
    York University for decades, we have regretted the introduction of Java
    as a first language of instruction for most computer science majors. We
    have seen how this choice has weakened the formation of our students,
    as reflected in their performance in systems and architecture courses.
    As founders of a company that specializes in Ada programming tools for
    mission-critical systems, we find it harder to recruit qualified
    applicants who have the right foundational skills. We want to advocate
    a more rigorous formation, in which formal methods are introduced early
    on, and programming languages play a central role in CS education.

    Formal Methods and Software Construction

    Formal
    techniques for proving the correctness of programs were an extremely
    active subject of research 20 years ago. However, the methods (and the
    hardware) of the time prevented these techniques from becoming
    widespread, and as a result they are more or less ignored by most CS
    programs. This is unfortunate because the techniques have evolved to
    the point that they can be used in large-scale systems and can
    contribute substantially to the reliability of these systems. A case in
    point is the use of SPARK in the re-engineering of the ground-based air
    traffic control system in the United Kingdom (see a description of
    iFACTS – Interim Future Area Control Tools Support, at
    <www.nats.co.uk/article/90>). SPARK is a subset of Ada augmented
    with assertions that allow the designer to prove important properties
    of a program: termination, absence of run-time exceptions, finite
    memory usage, etc. [2]. It is obvious that this kind of design and
    analysis methodology (dubbed Correctness by Construction) will add
    substantially to the reliability of a system whose design has involved
    SPARK from the beginning. However, PRAXIS, the company that developed
    SPARK and which is designing iFACTS, finds it hard to recruit people
    with the required mathematical competence (and this is present even in
    the United Kingdom, where formal methods are more widely taught and
    used than in the United States).

    Another
    formal approach to which CS students need exposure is model checking
    and linear temporal logic for the design of concurrent systems. For a
    modern discussion of the topic, which is central to mission-critical
    software, see [3].

    Another
    area of computer science which we find neglected is the study of
    floating-point computations. At New York University, a course in
    numerical methods and floating-point computing used to be required, but
    this requirement was dropped many years ago, and now very few students
    take this course. The topic is vital to all scientific and engineering
    software and is semantically delicate. One would imagine that it would
    be a required part of all courses in scientific computing, but these
    often take MatLab to be the universal programming tool and ignore the
    topic altogether.

    The Pitfalls of Java as a First Programming Language

    Because
    of its popularity in the context of Web applications and the ease with
    which beginners can produce graphical programs, Java has become the
    most widely used language in introductory programming courses. We
    consider this to be a misguided attempt to make programming more fun,
    perhaps in reaction to the drop in CS enrollments that followed the
    dot-com bust. What we observed at New York University is that the Java
    programming courses did not prepare our students for the first course
    in systems, much less for more advanced ones. Students found it hard to
    write programs that did not have a graphic interface, had no feeling
    for the relationship between the source program and what the hardware
    would actually do, and (most damaging) did not understand the semantics
    of pointers at all, which made the use of C in systems programming very
    challenging.

    Let
    us propose the following principle: The irresistible beauty of
    programming consists in the reduction of complex formal processes to a
    very small set of primitive operations. Java, instead of exposing this
    beauty, encourages the programmer to approach problem-solving like a
    plumber in a hardware store: by rummaging through a multitude of
    drawers (i.e. packages) we will end up finding some gadget (i.e. class)
    that does roughly what we want. How it does it is not interesting! The
    result is a student who knows how to put a simple program together, but
    does not know how to program. A further pitfall of the early use of
    Java libraries and frameworks is that it is impossible for the student
    to develop a sense of the run-time cost of what is written because it
    is extremely hard to know what any method call will eventually execute.
    A lucid analysis of the problem is presented in [4].

    We
    are seeing some backlash to this approach. For example, Bjarne
    Stroustrup reports from Texas A & M University that the industry is
    showing increasing unhappiness with the results of this approach.
    Specifically, he notes the following:

    I
    have had a lot of complaints about that [the use of Java as a first
    programming language] from industry, specifically from AT&T, IBM,
    Intel, Bloomberg, NI, Microsoft, Lockheed-Martin, and more. [5]

    He noted in a private discussion on this topic, reporting the following:

    It
    [Texas A&M] did [teach Java as the first language]. Then I started
    teaching C++ to the electrical engineers and when the EE students
    started to out-program the CS students, the CS department switched to
    C++. [5]

    It
    will be interesting to see how many departments follow this trend. At
    AdaCore, we are certainly aware of many universities that have adopted
    Ada as a first language because of similar concerns.

    A Real Programmer Can Write in Any Language (C, Java, Lisp, Ada)

    Software
    professionals of a certain age will remember the slogan of old-timers
    from two generations ago when structured programming became the rage:
    Real programmers can write Fortran in any language. The slogan is a
    reminder of how thinking habits of programmers are influenced by the
    first language they learn and how hard it is to shake these habits if
    you do all your programming in a single language. Conversely, we want
    to say that a competent programmer is comfortable with a number of
    different languages and that the programmer must be able to use the
    mental tools favored by one of them, even when programming in another.
    For example, the user of an imperative language such as Ada or C++ must
    be able to write in a functional style, acquired through practice with
    Lisp and ML1, when manipulating recursive structures. This
    is one indication of the importance of learning in-depth a number of
    different programming languages. What follows summarizes what we think
    are the critical contributions that well-established languages make to
    the mental tool-set of real programmers. For example, a real programmer
    should be able to program inheritance and dynamic dispatching in C,
    information hiding in Lisp, tree manipulation libraries in Ada, and
    garbage collection in anything but Java. The study of a wide variety of
    languages is, thus, indispensable to the well-rounded programmer.

    Why C Matters

    C
    is the low-level language that everyone must know. It can be seen as a
    portable assembly language, and as such it exposes the underlying
    machine and forces the student to understand clearly the relationship
    between software and hardware. Performance analysis is more
    straightforward, because the cost of every software statement is clear.
    Finally, compilers (GCC for example) make it easy to examine the
    generated assembly code, which is an excellent tool for understanding
    machine language and architecture.

    Why C++ Matters

    C++
    brings to C the fundamental concepts of modern software engineering:
    encapsulation with classes and namespaces, information hiding through
    protected and private data and operations, programming by extension
    through virtual methods and derived classes, etc. C++ also pushes
    storage management as far as it can go without full-blown garbage
    collection, with constructors and destructors.

    Why Lisp Matters

    Every
    programmer must be comfortable with functional programming and with the
    important notion of referential transparency. Even though most
    programmers find imperative programming more intuitive, they must
    recognize that in many contexts that a functional, stateless style is
    clear, natural, easy to understand, and efficient to boot.

    An
    additional benefit of the practice of Lisp is that the program is
    written in what amounts to abstract syntax, namely the internal
    representation that most compilers use between parsing and code
    generation. Knowing Lisp is thus an excellent preparation for any
    software work that involves language processing.

    Finally,
    Lisp (at least in its lean Scheme incarnation) is amenable to a very
    compact self-definition. Seeing a complete Lisp interpreter written in
    Lisp is an intellectual revelation that all computer scientists should
    experience.

    Why Java Matters

    Despite
    our comments on Java as a first or only language, we think that Java
    has an important role to play in CS instruction. We will mention only
    two aspects of the language that must be part of the real programmer’s
    skill set:

    1. An understanding of concurrent programming (for which threads provide a basic low-level model).
    2. Reflection,
      namely the understanding that a program can be instrumented to examine
      its own state and to determine its own behavior in a dynamically
      changing environment.

    Why Ada Matters

    Ada
    is the language of software engineering par excellence. Even when it is
    not the language of instruction in programming courses, it is the
    language chosen to teach courses in software engineering. This is
    because the notions of strong typing, encapsulation, information
    hiding, concurrency, generic programming, inheritance, and so on, are
    embodied in specific features of the language. From our experience and
    that of our customers, we can say that a real programmer writes Ada in
    any language. For example, an Ada programmer accustomed to Ada’s
    package model, which strongly separates specification from
    implementation, will tend to write C in a style where well-commented
    header files act in somewhat the same way as package specs in Ada. The
    programmer will include bounds checking and consistency checks when
    passing mutable structures between subprograms to mimic the
    strong-typing checks that Ada mandates [6]. She will organize
    concurrent programs into tasks and protected objects, with well-defined
    synchronization and communication mechanisms.

    The
    concurrency features of Ada are particularly important in our age of
    multi-core architectures. We find it surprising that these
    architectures should be presented as a novel challenge to software
    design when Ada had well-designed mechanisms for writing safe,
    concurrent software 30 years ago.

    Programming Languages Are Not the Whole Story

    A
    well-rounded CS curriculum will include an advanced course in
    programming languages that covers a wide variety of languages, chosen
    to broaden the understanding of the programming process, rather than to
    build a résumé in perceived hot languages. We are somewhat dismayed to
    see the popularity of scripting languages in introductory programming
    courses. Such languages (Javascript, PHP, Atlas) are indeed popular
    tools of today for Web applications. Such languages have all the
    pedagogical defaults that we ascribe to Java and provide no opportunity
    to learn algorithms and performance analysis. Their absence of strong
    typing leads to a trial-and-error programming style and prevents
    students from acquiring the discipline of separating design of
    interfaces from specifications.

    However,
    teaching the right languages alone is not enough. Students need to be
    exposed to the tools to construct large-scale reliable programs, as we
    discussed at the start of this article. Topics of relevance are
    studying formal specification methods and formal proof methodologies,
    as well as gaining an understanding of how high-reliability code is
    certified in the real world. When you step into a plane, you are
    putting your life in the hands of software which had better be totally
    reliable. As a computer scientist, you should have some knowledge of
    how this level of reliability is achieved. In this day and age, the
    fear of terrorist cyber attacks have given a new urgency to the
    building of software that is not only bug free, but is also immune from
    malicious attack. Such high-security software relies even more
    extensively on formal methodologies, and our students need to be
    prepared for this new world.

    References

    1. Joint
      Taskforce for Computing Curricula. “Computing Curricula 2005: The
      Overview Report.” ACM/AIS/ IEEE, 2005 <www.acm.org/education
      /curric_vols/CC2005-March06 Final.pdf>.
    2. Barnes, John. High Integrity Ada: The Spark Approach. Addison-Wesley, 2003.
    3. Ben-Ari, M. Principles of Concurrent and Distributed Programming. 2nd ed. Addison-Wesley, 2006.
    4. Mitchell,
      Nick, Gary Sevitsky, and Harini Srinivasan. “The Diary of a Datum: An
      Approach to Analyzing Runtime Complexity in Framework-Based
      Applications.” Workshop on Library-Centric Software Design,
      Object-Oriented Programming, Systems, Languages, and Applications, San
      Diego, CA, 2005.
    5. Stroustrup, Bjarne. Private communication. Aug. 2007.
    6. Holzmann Gerard J. “The Power of Ten – Rules for Developing Safety Critical Code.” IEEE Computer June 2006: 93-95.

    Note

    1. Several
      programming language and system names have evolved from acronyms whose
      formal spellings are no longer considered applicable to the current
      names for which they are readily known. ML, Lisp, GCC, PHP, and SPARK
      fall under this category.

    About the Authors
    Dr. Robert B.K. Dewar

    Robert B.K. Dewar, Ph.D., is
    president of AdaCore and a professor emeritus of computer science at
    New York University. He has been involved in the design and
    implementation of Ada since 1980 as a distinguished reviewer, a member
    of the Ada Rapporteur group, and the chief architect of Gnu Ada
    Translator. He was a member of the Algol68 committee and is the
    designer and implementor of Spitbol. Dewar lectures widely on
    programming languages, software methodologies, safety and security, and
    on intellectual property rights. He has a doctorate in chemistry from
    the University of Chicago.

    AdaCore
    104 Fifth AVE 15th FL
    New York, NY 10011
    Phone: (212) 620-7300 ext. 100
    Fax: (212) 807-0162
    E-mail: dewar@adacore.com



    Dr. Edmond Schonberg

    Edmond Schonberg, Ph.D.,
    is vice-president of AdaCore and a professor emeritus of computer
    science at New York University. He has been involved in the
    implementation of Ada since 1981. With Robert Dewar and other
    collaborators, he created the first validated implementation of Ada83,
    the first prototype compiler for Ada9X, and the first full
    implementation of Ada2005. Schonberg has a doctorate in physics from
    the University of Chicago.

    AdaCore
    104 Fifth AVE 15th FL
    New York, NY 10011
    E-mail: schonberg@adacore.com

    Powered by ScribeFire.