A Case Study in an Integrated Development and Problem Solving Environment Article
Fadi Deek, New Jersey Institute of Technologu, United States
Journal of Interactive Learning Research Volume 14, Number 3, ISSN 1093-023X Publisher: Association for the Advancement of Computing in Education (AACE), Chesapeake, VA
This article describes an integrated problem solving and program development environment, illustrating the application of the system with a detailed case study of a small-scale programming problem. The system, which is based on an explicit cognitive model, is intended to guide the novice programmer through the stages of problem solving and program development, from problem formulation, planning, and design, to testing and delivery. Students learn problem solving and the elements of software engineering because of the way in which both methodologies are explicitly embedded in the system. The case study illustrates how systemic, cognitively-based dialogs facilitate the problem solving and program development tasks, while the overall architecture of the system continually re-enforces an understanding of software engineering methodology. An initial version of the system has been integrated into an introductory course on computing, and evaluated in terms of its effect on student learning.
Deek, F. (2003). A Case Study in an Integrated Development and Problem Solving Environment. Journal of Interactive Learning Research, 14(3), 333-359. Norfolk, VA: Association for the Advancement of Computing in Education (AACE).
© 2003 AACE
- Anjaneyulu, K.S.R. (1994, April). Bug analysis of Pascal programs. ACM SIGPLAN Notices, 29(4), 15-22.
- Benbasat, I., & Taylor, R.N. (1982 July/August). Behavioral aspects of information processing for the design of management information systems. IEEE Transactions on Systems, Man, and Cybernetics, Vol. SMC-12(4).
- Bereiter, C., & Scardamalia, M. (1985). Cognitive coping strategies and the problem of inert knowledge. In S.S. Chipman, J.W. Segal, & R. Glaser (Eds.), Thinking and Learning Skills, Current Research and Open Questions, 2, 65-80. Hillsdale, NJ: Lawrence Erlbaum.
- Bertels, K. (1994). A dynamic view on cognitive student modeling in computer programming. Journal of Artificial Intelligence in Education, 5(1), 85-105.
- Boehm, B.W. (1976). Software engineering. IEEE Transactions on Computers, C-25, (pp. 1226-1241). Boehm, B.W. (1988). A spiral model of software development and enhancement. IEEE Computer, 21(5), 61-72.
- Deek, F.P. (1997). An integrated environment for problem solving and program development. Unpublished doctoral dissertation, New Jersey Institute of Technology.
- Deek, F.P. (1999). The software process: A parallel approach through problem solving and program development. Journal of Computer Science Education, 9(1), 43-70.
- Deek, F.P., Hiltz, S.R., Kimmel, H., & Rotter, N. (1999). Cognitive assessment of students' problem solving and program development skills. Journal of Engineering Education, 88(3).
- Deek, F.P., Kimmel, H., & McHugh, J.A. (1998). Pedagogical changes in the delivery of the first course in computer science: Problem solving then programming. Journal of Engineering Education, 87(3), 313-320.
- Deek, F.P., & McHugh, J.A. (1998). A survey and critical review of tools for learning programming. Journal of Computer Science Education, 8(2), 130-178.
- Deek, F.P., & McHugh, J.A. (2000, April). Problem solving and the development of critical thinking skills. Journal of Computer Science Education - ISTE SIGCS, 14, (1/2), 6-12.
- Deek, F.P., McHugh, J.A., & Hiltz, S.R. (2000, June-July). Methodology and technology for learning programming. Journal of Systems and Information Technology, 4(1), 25-37.
- Dijkstra, E. (1976). A discipline of programming. Englewood Cliffs, NJ: Prentice Hall. Duncker, K. (1945). On problem solving. Psychological Monographs, 58(5), 270.
- Ebrahimi, A. (1994). Novice programmer error: Language constructs and plan composition. International Journal of Human-Computer Studies, 41, 457-480.
- Ennis, D. (1994). Combining problem solving and programming instruction to increase the problem solving abilities in high school students. Journal of Research on Computing in Education, 26(4), 488-496.
- Espinasse, B. (1994). A cognitivist model for decision support: COGITA project, a problem formulation assistant. Decision Support Systems, 12, 277-286.
- Gagne, R.M. (1985). The conditions of learning (4th ed.). New York: Holt, Rinehart and Winston. Greeno, J.G. (1978). Natures of problem-solving abilities. In W.K. Estes (Ed.), Handbook of Learning and Cognitive Processes, 5, 239-270. Hillsdale, NJ: Lawrence Erlbaum.
- Greeno, J.G., Collins, A.M., & Resnick, L.B. (1996). Cognition and learning. In D.C. Berliner & R.C. Calfee (Eds.), Handbook of Educational Psychology, (pp. 15-45). New York: Simon & Schuster Macmillan.
- Guzdial, M., Hohmann, L., Konneman, M., Walton, C., & Soloway, E. (1998). Supporting programming and learning-to-program with an integrated CAD and scaffolding workbench. Journal of Interactive Learning Environments, 6(1-2), 143-179.
- Hayes, J.R., & Simon, H.A. (1976). Understanding complex task instruction. In D. Klahr (Ed.), Cognition and Instruction. Hillsdale, NJ: Lawrence Erlbaum.
- Hohmann, L., Guzdial, M., & Soloway, E. (1992). SODA: A computer-aided design environment for the doing and learning of software design. In Proceedings of Computer Assisted Learning 4th International Conference, Nova Scotia, Canada, (pp. 307-319).
- Johnson, W.L. (1990). Understanding and debugging novice programs. Artificial Intelligence, 42, 51-97.
- Mayer, R.E. (1981, March). The psychology of how novices learn computer programming. ACM Computing Surveys, 3(1), 121-141.
- Mayer, R.E. (1983). Thinking, problem solving, cognition. New York: W.H. Freeman.
- Mayer, R.E. (1988). Introduction to research on teaching and learning computer programming. In R.E. Mayer (Ed.), Teaching and Learning Computer Programming, (pp. 1-12). Hillsdale, NJ: Lawrence Erlbaum.
- Mitroff, I.I., & Turoff, M. (1973). Technological forecasting and assessment: Science and/or mythology? Technological Forecasting and Social Change, 5, 113-134.
- Moore, J., & Newell, A. (1973). How can MERLIN understand? In L. Gregg (Ed.), Knowledge and cognition. Hillsdale, NJ: Lawrence Erlbaum.
- Navarat, P., & Rozinajova, J. (1993). Making programming knowledge explicit. Computers and Education, 21(4), 281-299.
- Newell, A., & Simon, H.A. (1972). Human problem solving. Englewood Cliffs, NJ: Prentice Hall. Page-Jones, M. (1988). The practical guide to structured systems design, (2nd ed.). Englewood Cliffs, NJ: Yourdon Press, Prentice Hall.
- Perkins, D.N., Hancock, C., Hobbs, R., Martin, F., & Simmons, R. (1986). Conditions of learning in novice programmers. Journal of Educational Computing Research, 2(1), 37-56.
- Polya, G. (1945). How to solve it. Princeton, NJ: Princeton University Press
- Pressman, R. (1987). Software engineering: A practitioner’s approach, (2nd ed.). New York: McGraw-Hill. Pylyshyn, Z.W. (1984). Computation and cognition. Cambridge, MA: MIT Press.
- Rist, R.S. (1986). Plans in programming: Definition, demonstration and development. In E. Soloway & S. Iyengar (Eds.), Empirical studies of programmers: First workshop, (pp. 28-47). Norwood, NJ: Ablex.
- Rogalski, J., & Samurcay, R. (1990). Acquisition of programming knowledge and skills. In J.-M. Hoc, T.R.G. Green, R. Samurcay, & D. Gilmore (Eds.), Psychology of Programming, (pp. 157-174). London: Academic Press.
- Rogalski, J., & Samurcay, R. (1993). Task analysis and cognitive model as a framework to analyze environments for learning programming. In E. Lemut, B. Du Boulay, G. Dettori (Eds.), Cognitive models and intelligent environments for learning programming, (pp. 6-19). Berlin: Springer-Verlag Rubinstein, M. (1975). Patterns of problem solving. Englewood Cliffs: NJ: Prentice Hall. Scholtz, J., & Wiedenbeck, S. (1992). The role of planning in learning a new programming language. International Journal of Man-Machine Studies, 37, 191-214.
- Scholtz, J., & Wiedenbeck, S. (1993). An analysis of novice programmers learning a second language. In Proceedings of the Fifth Workshop on Empirical Studies of Programmers, (pp. 187205). Palo Alto, CA.
- Shackelford, R., & Badre, A. (1993). Why can’t smart students solve simple programming problems? International Journal of Man-Machine Studies, 38, 985-997.
- Shneiderman, B. (1980). Software psychology: Human factors in computer and information systems. Boston: Little, Brown and Company
- Simon, H.A. (1978). Information-processing theory of human problem solving. In W.K. Estes (Ed.), Handbook of learning and cognitive processes. Hillsdale, NJ: Lawrence Erlbaum.
- Soloway, E., Ehrlich, K., Bonar, J., & Greenspan, J. (1982). What do novices know about programming? In A.N. Badre & B. Shneiderman (Eds.), Directions in human-computer interaction. New York: Ablex.
- Spohrer, J. C. (1992). MARCEL: Simulating the novice programmer. Norwood, NJ: Ablex. Spohrer, J. C., & Soloway, E. (1985). Putting it all together is hard for novice programmers. Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics, (pp. 728-735). Sternberg, R.J. (1985). Beyond IQ: A triarchic theory of human intelligence. Cambridge, MA: Cambridge University Press.
- Weidenbeck, S., Fix, V., & Scholtz, J. (1993). Characteristics of the mental representations of novice and expert programmers: An empirical study. International Journal of Man-Machine Studies, 39, 793-812.
- Weinberg, G.M. (1971). The psychology of computer programming. New York: Van Nostrand Reinhold. Wickelgren, W.A. (1974). How to solve problems. San Francisco: W.H. Freeman.
- Wirth, N. (1971). Program development by stepwise refinement. Communications of the ACM, 14(4), 221-227.
These references have been extracted automatically and may have some errors. If you see a mistake in the references above, please contact firstname.lastname@example.org.