SODA: A computer-aided design environment for the doing and learning of software design

  • Luke Hohmann
  • Mark Guzdial
  • Elliot Soloway
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 602)


SODA (Software Design Laboratory) is a Design Support Environment (DSE) that supports novice programmers learning software design skills. SODA is based on a formal model of software design derived from studies of expert programmers. SODA explicitly supports students in this model of software design through a series of integrated workspaces and an explicit process model. In addition to supporting students doing software design, SODA also supports students learning software design skills through scaffolding that encourages articulation and reflection on the design process.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Ade-Sol85]
    Adelson, B. and Soloway, E. The role of domain experience in software design. IEEE Transactions on Software Engineering. November 1985.Google Scholar
  2. [Bou-She89]
    Boulay, B., O'Shea, T., Monk, J. The Black Box Inside the Glass Box: Presenting Computing Concepts to Novices, Studying the Novice Programmer, 1989.Google Scholar
  3. [Bra-Cun87]
    Bransford, J., Cunningham, R. BRIDGE: A programming environment for novice programmers. LRDC Technical Report, 1987.Google Scholar
  4. [Bro75]
    Brooks, F. The Mythical Man-Month, Addison Wesley,1975.Google Scholar
  5. [Bro86]
    Brooks, F. No Silver Bullet: Essence and Accidents of Software Engineering, Information Processing, 1986.Google Scholar
  6. [Col88]
    Collins, A. Cognitive Apprenticeship and instruction technology. BBN Technical Report #6899, 1988.Google Scholar
  7. [Cor-Sno86]
    Corno, L & Snow, R. Adapting teaching to individual differences among learners. In Handbook of Research on Teaching. Wittrock, M. (Ed). Macmillan: New York, 1986.Google Scholar
  8. [Fai85]
    Fairley, R. Software Engineering Concepts. Mc-Graw Hill, 1985.Google Scholar
  9. [Far90]
    Farnham-Diggory, S. Schooling, Harvard University Press, 1990.Google Scholar
  10. [Lam84]
    Lampson. B. Hints for Computer System Design. IEEE Software. January, 1984.Google Scholar
  11. [Lan-App86]
    Langer, J.A., Applebee, A.N. Reading and writing instruction: toward a theory of teaching and learning. In Review of Research in Education, 13:171–194. Rothkopf, E. (ed.) Washington, DC: AERA. 1986.Google Scholar
  12. [Par72]
    Parnas, D. On the Criteria to be Used in Decomposing Systems Into Modules, CACM, 15(2) 1053–58, 1972.Google Scholar
  13. [Per88]
    Perkins, D.N., Faraday, M., Hancock, C. Hobbs, R., Simmons, R., Tuck, T., Villa, E. Nontrivial pursuit: The hidden complexity of elementary logo programming. ETC Technical Report. August, 1988.Google Scholar
  14. [Sch90]
    Schank, R. Teaching Architectures. Technical Report #3, Northwestern University Institute for the Learning Sciences. August, 1990.Google Scholar
  15. [Sim69]
    Simon, H.A. The Sciences of the Artificial. The MIT Press: Cambridge, Mass. 1969.Google Scholar
  16. [Spo-Sol85]
    Spohrer, J.C., Soloway, E. Putting it all together is hard for novice programmers. Invited Paper. In Proceedings on the IEEE International Conference on Systems, Man, and Cybernetics. November 12–15, 1985. Tucson, AZGoogle Scholar
  17. [Sol-Ehr84]
    Soloway, E. and Ehrlich, K. Empirical Studies of Programming Knowledge. IEEE Transactions on Software Engineering, September, 1984.Google Scholar
  18. [Sol87]
    Soloway, E., Spohrer, J., Littman, D. E Unum Pluribus: Generating Alternative Designs. Cognitive Sciences Conference. 1987.Google Scholar
  19. [Sol88]
    Soloway, E., Pinto, J., Letovsky, S., Littman, D. and Lampert, R. Designing Documentation to Compensate for Delocalized Plans. Communications of the ACM Vol 31 Number 11. November 1988Google Scholar
  20. [Sol-Guz91]
    Soloway, E., Guzdial, M., Brade, K., Hohmann, L., Tabak, I., Weingrad, P., Blumenfeld, P. Technological Support for the Learning and Doing of Design.Google Scholar
  21. [Sol86]
    Soloway, E., Learning to program = Learning to construct mechanisms and explanations. Communications of the ACM, 29(9):850–858. SeptemberGoogle Scholar
  22. [Swa-Bal82]
    Swartout, W. and Balzer, R. On the Inevitable Intertwining of Specification and Implementation. Communications of the ACM, Vol 25. Number 7, 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Luke Hohmann
    • 1
  • Mark Guzdial
    • 1
  • Elliot Soloway
    • 1
  1. 1.Highly Interactive-Computing Environments Research GroupUniversity of MichiganAnn Arbor

Personalised recommendations