Abstract

Introduction Modern software practices call for the active involvement of business people in the software process (Shaw, 2000). Apart from the crucial role of end users in eliciting precise user requirements, business people are intimately involved in all stages of software development (Jacobson, 1999). At present, software is commonly adapted, composed from reusable components and frameworks, and even created by business people rather than information systems (IS) developers (Shaw, 2000). Therefore, programming has become an indispensable part of the IS component of the core curriculum at business schools. The traditional curriculum design offers four IS courses in the following succession: (1) Using databases; (2) Systems analysis and design; (3) E-Business applications development; and (4) Management support systems. At our school, E-Business applications development (a.k.a. Client-server, Web-based programming, Ecommerce) is the only programming course mandatory for all business students. E-Business applications development is the basic hands-on-experience course, where students develop Web-based e-commerce applications. A major constituent of the course is programming in JavaScript. Introduction to programming in JavaScript is the topic of this research work. The underlying assumption of this work is that adopting a model-based approach to teaching programming will enhance the students' ability to think and reason formally about programs, develop software rigorously, and program better. Bloom's taxonomy of cognitive skills is widely recognized as a basis for classifying skills in education and ordering material (Bloom, 1956). Bloom's taxonomy divides cognitive skills into six levels where factual knowledge, theory comprehension and theory application come before analysis, synthesis and finally evaluation. In our approach we strictly adhere to Bloom's hierarchy of cognitive skills. We start with simple, yet precise, facts about (formal model of) the notion of computation. Then, we gradually enrich the basic model with data types and computational objects, thus generalizing the facts into a consistent theory. Next, we repeatedly ask learners to apply the concepts (theory) introduced to predict initially the behavior of snippets of code and later of middle-size programs. After students have acquired the skills to predict the behavior of programs of any size, we proceed with program analysis and synthesis, or what is commonly referred to as programming. The rest of the paper is structured as follows. Section 2 attends to the presentation of the model-based approach used in teaching programming. Next, Section 3 discusses preliminary results about the advantages of adopting such an approach. The final section summarizes the experience gained and concludes. Teaching Programming: Model-Based Approach The novelty of our approach lies in teaching the lower-order cognitive skills. We use models to introduce the basic programming constructs. To introduce the notion of state and thus help students appreciate the environment model of evaluation, we begin by modeling with labeled transition systems, a subset of statecharts (Harel, 1987; Booch, 1999). Our experience confirmed the findings of Davis (1988) that the introduction of this model takes an hour on average. Students are given classical examples from the theory of labeled transition systems, such as, vending machines, flying robots, and multi-user games. The exercises are a prelude to program state and objects with interesting statecharts. Building large software-intensive systems requires a methodology that would allow structuring the systems into modular components that could be independently developed and maintained. To avoid a semantic gap between the domain of interest and the designed system, we base the structure of the latter on the structure of the physical system that is represented in the computing system (Abelson & Sussman, 1996). …

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.