Call for Articles: C++ Toolbox, SIGPLAN Notices HTML: http://www.cs.rpi.edu/~wiseb/sigplan/toolbox-call.html TEXT: http://www.cs.rpi.edu/~wiseb/sigplan/toolbox-call.txt Call for Articles for C++ Toolbox Articles on all aspects of C++ are being sought for publication in C++ Toolbox, a new column on C++ programming that premiered in the January 1996 issue of SIGPLAN Notices. SIGPLAN, the ACM's special interest group on Programming Languages, focuses on programming languages. In particular, SIGPLAN explores programming language concepts and tools, focusing on design, implementation and efficient use. Its members are the programming language users, developers, implementers, theoreticians, researchers and educators. The main publication of SIGPLAN is the monthly publication, SIGPLAN Notices. More information about SIGPLAN is available from the SIGPLAN homepage at: http://www.acm.org/sigplan/. Interested authors are invited to submit articles about their experiences using C++ for possible publication in a future issue of SIGPLAN Notices. A variety of topics are suggested below, however, other topics are certainly welcome. It is suggested that authors intending to submit an article contact the C++ Toolbox editor, G. Bowden Wise, by e-mail at wiseb@cs.rpi.edu as early as possible to confirm their topic selection and verify submission deadlines. Suggested Topics The focus of C++ Toolbox is, of course, C++. However, the focus is not restricted to code and implementation details. Articles on other topics, so long as they have a strong connection to C++ are also encouraged. Articles on real-world, practical experiences with C++ -- both in industry and academia -- are particularly welcome. Below are several themes for articles which may be submitted for publication in C++ Toolbox. This list is not meant to be exhaustive. Should your topic not fall into one of these categories, do not hesitate to contact the C++ Toolbox Editor at wiseb@cs.rpi.edu to discuss your topic further. Experiences Although, C++ is a a general-purpose programming language, it is not suitable for every problem. Some problems are better solved using another language, such as LISP or Prolog, for example. You have chosen to use C++ in your project for one reason or another, presumably, for its strengths. You are stuck with whatever weaknesses the language brings to your project. C++ Toolbox welcomes reports on your experiences with practical implementations using C++, whether in a real-world product or a research prototype. Where did C++ shine? Where did it fail or cause you hardship? What have you done to overcome any of C++'s shortcomings? You may have used C++ in a problem domain where object-orientation has not yet been fully applied. Your experiences will show other developers how to apply C++ to these areas and may even spark interest in applying C++ to other problem domains. Programming Techniques C++ is a powerful language with many features. However a complex and feature-rich language is also a two-edged sword! When the language is used inappropriately, it leads to poor efficiency or worse it does not do what the programmer intended! Experienced C++ programmers develop their own style of programming, use programming idioms, and apply debugging techniques when developing their code. Techniques, such as these, help to defeat the two-edged sword, and prevent subtleties of the language from permeating their programs. Perhaps you have been using some idioms of your own? Do you have a particular canonical class-template you use for developing your classes? You may even have a set of classes that help you debug or analyze the performance of your C++ programs. C++ Toolbox invites you to share your novel programming styles, techniques, and idioms. Design Techniques Most developers use C++ in order to reap the benefits of object-oriented development. In industry, and less often in academia, projects go through an intensive design phase. The design phase is crucial for it determines what the actual objects are, there relationships, and how they will interact. Once the design is completed the implementation can be carried out. The beauty of object-orientation is that it accommodates an iterative development process more easily than earlier development methods, such as the waterfall method. In addition, there are several object-oriented design methodologies in use today. The more common ones are the OMT and Booch methodologies. Designing software that is object-oriented and reusable is a very difficult task. You must identify the objects in your problem domain, their relationships, and interfaces. Over time, however, you may also develop other objects whose purpose is only to allow you to reuse aspects of your design in other applications. These design aspects have come to be called design patterns. There is an ever-growing number of researchers attracted to this area as can be evidenced by glancing at the material from the patterns home page on the Web at http://st-www.cs.uiuc.edu/users/patterns/patterns.html. C++ Toolbox invites developers to share their design experiences, patterns, and how they helped or hindered their implementation in C++. Education C++ is finding its way into the undergraduate computer science curriculum at schools throughout the country. Many computer science curriculums include C++ in introductory courses. What concepts are the most difficult for students to grasp? What topics should be avoided in an introductory C++ course? What can be done to make it easier to learn? What topics are better discussed in a more advanced course? C++ Toolbox welcomes your insights and experiences with teaching C++. Standards As a major programming language, the specification C++ is maintained by an international standards body which proposes, debates, and eventually votes on changes and additions to the language. The standard is very important because it promotes portability, reliability, maintainability, and efficient execution of C++ programs across a variety of computing platforms. Most major compiler vendors try to abide by the current standard, and many choose to implement new features before they have become an official part of the standard. Proposed features are introduced in drafts called working papers. New features can take several months, sometimes years, to be officially incorporated into the standard, however, when they do, most major compiler vendors begin to incorporate them into their products, if they have not already done so. Recently, the C++ standards body has adopted the Standard Template Library as part of the C++ Standard Library. This means that every major compiler vendor will be providing an STL implementation soon, if they have not already done so. As new features are incorporated into the language, C++ programmers will have to become familiar with them in order to use them correctly. C++ Toolbox invites you to contribute your experiences and insights with the incorporation of new C++ features into your projects. Reviews As a popular programming language, C++ finds itself published in many forms. There are many books, journals, and proceedings devoted to C++ programming. However, print media is not the only resource for C++ programmers. There is a wealth of C++ software available in the form of compilers, debuggers, performance analyzers, design tools, frameworks, and libraries of source code. C++ Toolbox welcomes reviews of any media -- print and software -- related to C++ development. However, be warned! Your reviews must demonstrate practical, usable, and beneficial results for C++ programmers. You should provide examples that demonstrate how the principles in the book, the software, or the library was applied in your project. C++ Toolbox is not the place for general reviews of C++ books. Submissions Format The preferred format for article submissions is ASCII or Latex. You should contact the C++ Toolbox Editor at wiseb@cs.rpi.edu to determine if any electronic templates are available for your use. Submissions should also include a short biography of the authors and contact addresses, including e-mail. Images You may also include images with your article. Acceptable image formats are: Postscript. Other image formats may also be acceptable. Please contact the C++ Toolbox Editor for further details. Transmission Please submit your articles to the C++ Toolbox Editor via e-mail at: wiseb@cs.rpi.edu Any binary files (such as images) should be packaged (using a utility such as zip/gzip, uudecode, or MIME) into an ASCII format prior to sending. C++ Toolbox Editor The Editor of C++ Toolbox is G. Bowden Wise | http://www.cs.rpi.edu/~wiseb Department of Computer Science | http://www.cs.rpi.edu Rensselaer Polytechnic Institute | http://www.rpi.edu The Editor prefers to be contacted via e-mail at wiseb@cs.rpi.edu Correspondence may be sent via US mail to: G. Bowden Wise Department of Computer Science Rensselaer Polytechnic Institute Troy, NY 12180 Correspondence may also be sent by FAX: Fax: (518) 276 4033 -------------------------------------------------------------------- G. Bowden Wise Computer Science Dept, Rensselaer Polytechnic Inst, Troy, NY 12180 Email: wiseb@cs.rpi.edu WWW: http://www.cs.rpi.edu/~wiseb/