Abstract
C++ is rapidly becoming one of the most important programming languages in the world. Yet it is an extremely complex language and, therefore, one that is very difficult to learn. To provide a significant degree of simplification and, thereby, to help alleviate the difficulties of learning the language, a relatively small C++ subset, Essential C++, has been defined. It is proposed for use by the computer science academic community as a suitable first programming language for students as well as for use by other individuals who desire eventually to become software developers using the full C++ language.After supporting the case for the need of a C++ subset and discussing the reasons for developing one, this article presents Essential C++, provides the rationale for selecting its particular constituents from the full C++ language, and then examines the advantages and disadvantages of using Essential C++.
- 1. Abelson, Hal, Kim Bruce, Andy van Dam, Brian Harvey, Allen Tucker, and Peter Wegner, in "Technical Opinion: The First Course Conundrum," Communications of the ACM, Vol. 38, No. 6, June, 1995, pp. 116-117. Google Scholar
Digital Library
- 2. Accredited Standards Committee X3 operating under the procedures of the American National Standards Institute (ANSI), "Working Paper for Draft Proposed International Standard for Information Systems--Programming Language C++," Doc. No. X3J16/95-0087 WG21/N0687, 28 April, 1995.Google Scholar
- 3. ANSI Technical Committee X3J11. American National Standard for Information Systems-- Programming Language C, ANSI 3.159-1989. American National Standards Institute, New York, 1989. (The official current version of standard C.)Google Scholar
- 4. Allison, Chuck, "A Better C," C/C++ Users Journal, April, 1995, pp. 67-78. Google Scholar
Digital Library
- 5. Baldwin, Doug, Greg Scragg, and Hans Koomen, "A Three-Fold Introduction to Computer Science," SIGCSE Bulletin, March, 1994, pp. 290-294. Google Scholar
Digital Library
- 6. Barton, John J., and Lee R. Nackman, "Scientific & Engineering Programming in C++," C++ Report, vol. 5, no. 7, September, 1993, pp. 26-31.Google Scholar
- 7. Berman, A. Michael, and other Panelists Rick Decker, Dung X. Nguyen, Richard J. Reid, and Eugene Wallingford, "Using C++ in CS1/CS2," SIGCSE Bulletin, March, 1994, pp. 383-384. Google Scholar
Digital Library
- 8. Booch, Grady., Object-Oriented Analysis and Design with Applications, Second Edition. The Benjamin-Cummings Publishing Company, Inc., 1994. Google Scholar
Digital Library
- 9. Buzzi-Ferraris, Guido, Scientific C++, Addison-Wesley Publishing Company, 1993.Google Scholar
- 10. Chandra, Kailash, "C++ in Eight Weeks," ACM SIGPLAN Notices, Vol. 28, No. 8, August, 1993, pp. 29-38. Google Scholar
Digital Library
- 11. Clamage, Steve, "Status of ANSI/ISO C++ Standard," a comp.std.c++ newsgroup posting #7383 dated 17 July 1995 16:54:39 GMT. Clamage is Acting Chair, ANSI X3J16.Google Scholar
- 12. Engle, Charles B., "An Educator's Perspective on Ada," AdaIC News, Vol. XII, No. 1, Winter, 1995, pp. 1 and 4.Google Scholar
- 13. Finkel, David, Chet Hooker, Scott Salvidio, Mark Sullivan, and Christopher Thomas, "Teaching C++ to High School Students," SIGCSE Bulletin, March, 1994, pp. 286-289. Google Scholar
Digital Library
- 14. Friedman, Richard P., "Creating Creating," C++ Report, vol. 5, no. 4, May, 1993, p. 4.Google Scholar
- 15. Grout, Jarrell C., and Robert G. Strader, Algorithmic Problem Solving and Programming with Essential C++, in progress, publisher and publication date to be determined.Google Scholar
- 16. Horowitz, Susan, Kenneth Appel, Theresa Cuprak, David Kay, Christopher Nevison, Leon Schram, Mark Stehlik, and Owen Astrachan, in "Technical Opinion: The First Course Conundrum, Why Change?," Communications of the ACM, Vol. 38, No. 6, June, 1995, pp. 117- 118. Google Scholar
Digital Library
- 17. Horstmann, Cay S., "A Strategic C++ Subset for CS1 Instruction," Input: A Newsletter for Computer Science Educators, Number 1, Fall, 1994, pp. 6-7.Google Scholar
- 18. Jagadeesh, J. M., (Product Reviews Editor), "C++ Class Libraries: Part I," Computer, July, 1995, pp. 83-87.Google Scholar
- 19. Jervis, Bob, "All is Flux," C/C++ Users Journal, October, 1994, pp. 39-49. Google Scholar
Digital Library
- 20. Johnson, L. F., "C in the First Course Considered Harmful," Communications of the ACM, Vol. 38, No. 5, May, 1995, pp. 99-101. Google Scholar
Digital Library
- 21. Johnsonbaugh, Richard, and Martin Kalin, Object-Oriented Programming in C++, Prentice-Hall, Inc., 1995. Google Scholar
Digital Library
- 22. Keffer, Thomas, "Why C++ Will Replace Fortran," Supplement to Dr. Dobb's Journal, December, 1992, pp. 39s-47s.Google Scholar
- 23. Koffman, Elliot B., Philip L. Miller, Caroline Wardle, "Recommended Curriculum for CS1, 1984: A Report of the ACM Curriculum Committee Task Force for CS1," Communications of the ACM, Vol. 27, No. 10, October, 1984, pp. 998-1001. Google Scholar
Digital Library
- 24. Mody, R. P., "C in Education and Software Engineering", SIGCSE Bulletin, vol. 23, no. 3, Sept., 1991, pp. 45-46. Google Scholar
Digital Library
- 25. Morton, Larry, and Nicholas Norgaard, "A Survey of Programming Languages in CS Programs," SIGCSE Bulletin, vol. 25, no. 2, June, 1993, pp. 9-18. Google Scholar
Digital Library
- 26. Owens, Barbara B., Moderator, and Panelists Robert D. Cupper, Stuart Hirshfield, Walter Potter, and Richard Salter, "New Models for the CS1 Course: What Are They and Are They Leading to the Same Place?" SIGCSE Bulletin, March, 1994, pp. 364-384. Google Scholar
Digital Library
- 27. Reid, Richard J., "C++ as a First Programming Language," C++ Report, vol. 5, no. 4, May, 1993, pp. 41-44.Google Scholar
- 28. Reid, Richard J., "The Programming Language of the First Computer Science Course," unpublished informal and on-going survey conducted over the Internet, April 11, 1995.Google Scholar
- 29. Sebesta, Robert W., Concepts of Programming Languages, Second Edition, Benjamin/Cummings Publishing Co., Inc., 1993. Google Scholar
Digital Library
- 30. Stroustrup, Bjarne, The C++ Programming Language, Addison-Wesley Publighing Company, 1986. Google Scholar
Digital Library
- 31. Stroustrup, Bjarne, The C++ Programming Language, Second Edition, Addison-Wesley Publishing Company, 1991. Google Scholar
Digital Library
- 32. Task Force of the Pre-College Committee of the Education Board of the ACM, "ACM Model High School Computer Science Curriculum," Communications of the ACM, Vol. 36, No. 3, May, 1993, pp. 87-90. Google Scholar
Digital Library
- 33. The College Board, Advanced Placement Course Description: Computer Science, May 1996," College Entrance Examination Board and Educational Testing Service, 1995.Google Scholar
- 34. Tucker, Allen B. and Bruce H. Barnes, "Flexible Design: Computing Curricula 1991," Computer, November, 1991, pp. 56-66. Google Scholar
Digital Library
- 35. Tucker, Allen B. (Editor and Co-Chair), et al, "Computing Curricula 1991" Report of the ACM/IEEE-CS Joint Curriculum Task Force," ACM Order Number 201910, IEEE Computer Society Press Order Number 2220, Copyright © 1991 by the Association for Computing Machinery, Inc.Google Scholar
- 36. Tucker, Allen B., Andrew P. Bernat, W. James Bradley, Robert D. Cupper, and Greg W. Scragg, Fundamentals of Computing I: Logic, Problem Solving, Programs, and Computers--C++ Edition, McGraw-Hill, Inc., 1995. Google Scholar
Digital Library
- 37. Tucker, Allen B. and Peter Wegner, "New Directions in the Introductory Computer Science Curriculum," SIGCSE Bulletin, March, 1994, pp. 11-15. Google Scholar
Digital Library
- 38. Vilot, Michael J., "An Introduction to the Standard Template Library," C++ Report, October, 1994, pp. 22-28.Google Scholar
- 39. Vilot, Michael J., "The C++ Standard Library," C++ Report, February, 1995, pp. 28-34. Google Scholar
Digital Library
Index Terms
Essential C++






Comments