Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective
|
|
|
- Ethelbert Davidson
- 10 years ago
- Views:
Transcription
1 Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT Abstraction is recognized as a key concept in Computer Science and Software Engineering. Is it, however, possible to teach abstraction to students? This column discusses the role of abstraction in current curricula and the challenge posed in trying to teach it. We outline of kinds of tasks that may be used to enhance students' abstract thinking during their undergraduate studies. 1. INTRODUCTION Abstraction has been discussed as a core concept of Computer Science (CS) and Software Engineering (SE) ever since the early days of the two disciplines. Its benefits and contributions to professionals in these fields have been acknowledged in different ways. For example, in many keynotes and conference presentations the noun abstraction and the verb to abstract are presented as useful heuristics that may be applied in a variety of situations and as a means to improve practitioners' professional skills in these fields. There are many explanations for the importance of the notion of abstraction. Among others, the intangibility of software systems, the need to abstract in order to deal with complexity, and the ability to examine many topics in CS and SE at different levels of detail and abstraction according to the purpose, are presented as strong justification for the central role of abstraction. Although abstraction is a core concept of CS and SE, it is not an easy concept to teach. This fact can be explained in various ways. First, abstraction is a soft conceptual idea. Unlike rigid concepts that are characterized by strict or formal rules, abstraction is similar to other concepts such as hierarchy, encapsulation and a programming style. Although abstraction can be formalized in specific circumstances (cf. refinement), abstraction in its broad sense does not lend itself to a full, comprehensive and concrete definition, nor are there any specific rules concerned with the application of abstraction. Furthermore, while examples should be given in order to illustrate the nature of abstraction, the danger is that when examples are actually given, the concept itself might be
2 obscured and might be conceived through the lens of the specific examples, thus losing its power which is largely expressed by its generality. On the other hand, if abstraction is presented using only its abstract definition, then students may find it difficult to grasp its meaning and may be unable to apply it in a meaningful manner. Second, abstraction is not connected exclusively to a specific topic in CS or in SE. Rather, it is expressed throughout the curriculum and can, therefore, be illustrated and applied in the context of different topics. Consequently, educators face the question of whether to teach abstraction in a separate course dedicated to this topic, or to integrate the teaching of abstraction throughout the entire syllabus. This issue is addressed later in the column. Third, since abstraction is never applied out of context, its application requires awareness. More specifically, abstraction is always utilized when another topic is at the focus of the discussion. In such situations it constitutes an accompanying, yet important, process that serves and supports the thinking concerning that other topic. Thus, when illustrating abstraction, one must, at the same time, teach that other topic, be aware of the application of abstraction and demonstrate the use of abstraction in problem-solving situations. Clearly, this is not a simple task. Several questions naturally arise at this stage. How have those, who talk about abstraction and use it as a cognitive tool, actually grasped the concept? We believe that this understanding is a result of a long and reflective process that is part of the CS and SE professions. How, then, can we teach the concept of abstraction to students in the early stages of their studies, thus enabling them to conceive abstraction as a powerful technique and facilitate their ability to apply it meaningfully, from the early days of their professional lives? Clearly, such skills are bound to improve further through their professional experiences; however, if we improve students' comprehension of the concept of abstraction from the early stages of their studies, we might improve their professional skills in general and their use of abstraction in particular. Finally, if we indeed agree that it is important to teach students the concept of abstraction as a core concept, the question is asked - How can we do it? This column attempts to provide the beginnings of an answer to this last question. To this end, we suggest that abstraction should be introduced as an identifiable concept throughout the CS and SE curricula. Starting early in the CS and SE programs and continuing throughout, the concept of abstraction, its application and its usefulness in different courses and in different ways, should be highlighted. As an analogy to the concept of abstraction, consider the concept of proof as it is commonly taught in mathematics departments. Traditionally, although proofs are one of the very basic operations performed by mathematicians, the concept of proof itself, of argumentation and refutation, is often not taught explicitly at all. It is assumed that students will grasp its essence and additional related relevant knowledge, such as how to use proofs, what kinds of proofs exist, the limitations of proof and so on. In a similar way, such an assumption exists with respect to abstraction in CS and SE programs. This column suggests a different approach.
3 Section 2 of the column presents the concept of abstraction as it is presented in the CS and SE literature and in the educational literature of these fields. Section 3 presents patterns of questions about abstraction that can be integrated throughout the CS and SE curricula. 2. ABSTRACTION IN CS AND SE 2.1. The Concept of Abstraction in CS and SE Abstraction is a central topic both in CS and in SE. It is a cognitive means according to which, in order to overcome complexity at a specific stage of a problem solving situation, we concentrate on the essential features of our subject of thought, and ignore irrelevant details. Abstraction is especially essential in solving complex problems as it enables the problem solver to think in terms of conceptual ideas rather than in terms of their details. Abstraction can be expressed in different ways. Liskov and Guttag (1986), for example, describe abstraction in program development as a way to do decomposition productively by changing the level of detail to be considered.... The process of abstraction can be seen as an application of many-toone mapping. It allows us to forget information and consequently to treat things that are different as if they were the same. We do this in the hope of simplifying our analysis by separating attributes that are relevant from those that are not. (p. 3). The decision as to what is essential and what is irrelevant depends on the purpose of the abstraction. For a full examination of different kinds of abstraction see Liskov and Guttag (2001). In addition to the use of abstraction, CS and SE practitioners should be aware of the need to think in terms of different abstraction levels and capable of moving between abstraction levels. For example, software developers move from a global view of the system (high level of abstraction) to a local, detailed view of the system (low level of abstraction), and vise versa. When trying to understand customers requirements, developers have a global view of the application (high level of abstraction); whereas when coding a specific class, a local perspective (on a lower abstraction level) is adopted. Obviously, there are many intermediate abstraction levels in between these two levels, which programmers consider during the process of software development. The knowledge of how and when to move between different levels of abstraction does not, however, always come naturally, and requires some degree of awareness and experience. For example, a software developer may remain in too low a level of abstraction for too long, while the problem he or she faces could have been solved more readily had it been viewed at a more appropriate level of abstraction. The shift to that abstraction level might not be a natural move unless one is aware that this might offer a step towards a solution The Concept of Abstraction in CS and SE Education This section examines how abstraction is addressed in the Computing Curricula 2001 documents. The second principle guiding the Computing Curricula 2001 Task Force is 2. Computer science draws its foundations from a wide variety of disciplines. Undergraduate study of computer science requires students to utilize concepts from many different fields. All computer science students must learn to integrate theory and practice, to
4 recognize the importance of abstraction, and to appreciate the value of good engineering design. (p. 12) In practice, it is recommended that the core topic of abstraction mechanisms (PL5) is presented in a minimum core coverage time of three hours. An examination of the suggested teaching topics reveals that abstraction is addressed through its applications, but not with respect to its essence. For example, parameterization mechanisms (reference vs. value) is one such topic. One of the Learning Objectives associated with it is: "Defend the importance of abstractions, especially with respect to programming-in-the-large." (p. 115) In the Software Engineering 2004 Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, which is a volume of the Computing Curricula Series published in August 23, 2004, it is explained that: Software engineering differs from traditional engineering because of the special nature of software, which places a greater emphasis on abstraction, modeling, information organization and representation, and the management of change. An important aspect of this challenge is that the supporting process must be applied at multiple levels of abstraction. (p. 8) Similar to the approach adopted in the CS volume, abstraction is presented as one of the core principles guiding the development of the SE Guidelines volume: [2] Software Engineering draws its foundations from a wide variety of disciplines. All software engineering students must learn to integrate theory and practice, to recognize the importance of abstraction and modeling, to be able to acquire special domain knowledge beyond the computing discipline for the purposes of supporting software development in specific domains of application, and to appreciate the value of good design. (p. 19) Furthermore, Curriculum Guideline 4 states that: Many SE concepts, principles, and issues should be taught as recurring themes throughout the curriculum to help students develop a software engineering mindset. In addition to ethics and tool use, which will be highlighted specifically in other guidelines, the following are types of material that should be presented, at least in part, as recurring themes: Measurement, quantification, and formal or mathematical approaches. Modeling, representation, and abstraction. Human factors and usability: Students need to repeatedly see how software engineering is not just about technology. (p. 38) However, the actual teaching of abstraction suggested by the Software Engineering 2004 Curriculum Guidelines is limited to several hours as follows: In the Object-Oriented Paradigm course - 3 core hours; in the Data Structures and Algorithms course - 2 core hours; in the Introduction to Software Engineering and Computing course - 1 core hour; in the Software Engineering and Computing II course - 1 core hour.
5 The above brief discussion on the nature of abstraction indicates that abstraction is a central concept in CS and in SE and that it should be highlighted throughout the curriculum of these fields. Such an observation leads to the question: How then can we give abstraction the attention it deserves? Is it possible to highlight abstraction throughout these curricula? A possible approach is suggested next. 3. QUESTION PATTERNS FOR ABSTRACTION This section presents a collection of kinds of questions that might serve as a means to teach abstraction throughout the curriculum. Since the questions are presented as question patterns, instructors would be required to instantiate them in the context of the specific course that they teach, i.e. to elaborate the question details according to the subject of the course. With each kind of question, an illustrative example is presented, and the way in which it might enhance students' abstraction skills is explained. Pattern 1: Given two representations of a specific system, students are asked to explain which representation is more abstract and why. These representations could be program code, a UML diagram, a written description, a photo and so on. Example: The following two representations describe the same system. In your opinion, which representation is more abstract? Explain your opinion. A verbal description of a system that reflects a high level of abstraction A detailed drawing of the same system that reflects a lower level of abstraction Explanation: This kind of task requests students to analyze what is abstract and why. In doing so, they must address the essence of abstraction and the features of an abstract object. Pattern 2: As in Pattern 1, but with more than two representations. The students' task is to rank the given representations according to their level of abstraction. Example: To the above two representations add two UML diagrams: A class diagram and a sequence diagram. Explanation: As well as examining these representations as described in the previous pattern of questions, the addition of the two diagrams encourages students to rethink and compare static and dynamic representations of a given system through the lens of abstraction. It also raises the need to consider purpose as part of abstraction. Pattern 3: Categorization of a collection of representations of different systems according to the student's choice of abstraction. Example: Following are eight representations of 3 systems. Group these representations in at least two ways and explain the rationale for your groupings. Explanation: As in the previous questions, these representations can be of different kinds. In this case, in addition to examining the given representations as abstractions of the given systems, students must also analyze similarities and differences across systems, and hence apply a different abstraction mechanism. By doing so, students not only abstract, but also refer to different ways in which abstractions can be expressed.
6 Pattern 4: Description of a specific system, with which the students are familiar, at different levels of abstraction. Example: Describe your cell phone on at least four levels of abstraction. Outline the main considerations that guided you in choosing these descriptions. Explanation: In these tasks students are asked to present a single system in terms of several different levels of abstraction. In order to do so, they must clarify, in that specific context, the meaning and purpose of different abstraction levels and how these levels of abstraction are reflected in their representations. Pattern 5: Given a system representation, students are asked to give one representation that is more abstract than the one given and one representation that is less abstract than the one given. Example: The following representation describes a GPS system. Describe the system in two additional ways: one that describes it in terms of a higher level of abstraction and one that describes it in terms of a lower level of abstraction. Explanation: Similar to the previous question the fact that students are asked to rank representations according to their abstraction levels prompts them to examine these representations through the lens of abstraction and to examine what makes one representation more or less abstract than another. If instructors wish to refer not only to the level of details when examining abstraction, students could also be asked to present descriptions of a different kind than the one given. For example, if the given representation is verbal, students may be asked to add visual representations. Pattern 6: Students are asked to explain some topic X (a system, a machine, and so on) to someone else. They are asked to describe how they would explain X in two cases: when the person they are explaining it to is able to see X and when he or she cannot see X. They are also asked to explain the considerations that guided the formulation of each description and how these formulations relate to different levels of abstraction. Example: Choose an IDE with which you are familiar but your friend is not. Describe this environment to your friend in the two following cases: in the first situation assume that you are sitting with your friend in front of a computer screen; in the second case your task is to explain the IDE to your friend over the phone. Reflect: What elements would you emphasize in each case? Why? What role does abstraction play and how is it expressed in each description? Explanation: This question invites students to examine, from an abstract perspective, how their descriptions are influenced by their interaction level with the other person. Such an examination is important because abstraction, as a means for reducing complexity, also plays a significant role in human communication. Pattern 7: Students are asked to explain some topic X (a system, a machine, and so on) with a certain constraint or constraints. Students are also asked to explain their considerations in choosing their explanations.
7 Example: Choose an IDE with which you are familiar but your friend is not. Describe this environment to your friend without using the mouse. Explanation: This question invites students to examine, through the lens of abstraction, how their ways of communicating are influenced by the tools available to them. Similar tasks can be constructed in different contexts, such as: develop a computer program without using procedures; design a system without using inheritance, and so on. Pattern 8: Students are asked to suggest a metaphor or an analogy to a given system. Example: Find a metaphor for the software system you are developing now. Explanation: Since metaphors capture similarities (to some degree) between two (or more) systems, they naturally can serve as a way to elicit abstraction processes. Pattern 9: Given a problem, ask students to describe two processes for its solution: one that is guided by abstraction and another that makes no use whatsoever of abstraction. Ask the students to compare the two processes and to draw conclusions. Example: Imagine you are asked to develop a system that does X. Describe two processes by which this system can be developed. The first process is constantly guided by abstraction; the second uses no abstraction. After completing the formulation of the two processes, compare them and draw your conclusions. Explanation: Naturally, the more complex the system is, the more crucial is the use of abstraction. Thus, students cannot ignore it. Furthermore, the reflection and the comparison that follow the creation process also enhance students' awareness to the process of abstraction. Pattern 10: Reflection questions: this kind of questions can be used in many situations. They invite students to reflect on their thinking processes and by doing so increase the abstraction level of their mental processes. This reflective practice perspective was introduced by Schön (1983, 1987) and was applied to SE by Hazzan (2002) and by Hazzan and Tomayko (2005). Example: Reflect on the last software project you developed. If you had to repeat the task, would you do it in the same way? Why would you change what you decided to change? Explanation: By asking students to rethink their creative processes, students must increase the abstraction level of the objects they consider. Specifically, instead of thinking in terms of the objects students work with, mental processes and considerations become the central objects of thoughts. A general note about the patterns: The above patterns of questions may address different topics through the lens of abstraction. Instructors can complete the details according to the course contents. It is important to mention that such open questions require careful use so as to avoid a situation in which students give standard answers. We would not want our students, for example, to simply repeat considerations for using abstraction that they have heard in class.
8 4. CONCLUSION This column suggests patterns of questions that would require students to perform abstractoriented analysis. Details of the questions would have to be completed according to the contents of specific courses. Also, they will undoubtedly need further refinement and evaluation. As hinted previously, abstraction is in itself an abstract concept (pun intended). Therefore, as with other abstract concepts, simply lecturing on the topic is unlikely to be comprehensible to students. In order to perceive concepts such as abstraction, students must first see, comprehend and experience the benefit from its use, and only then can they discuss and abstract the concepts' qualifications. In the following, we suggest two processes by which abstraction can be presented to students. The first is based on the assumption that CS and SE educators apply abstraction (sometimes maybe even unconsciously). Thus, instructors can simply illustrate the actual process of abstracting to their students. Indeed, such an illustration requires awareness of one's own mental processes. In practice, while performing this in front of the class, instructors can specifically make statements such as, "I ignore this aspect here because ", "Now, let's go one level of abstraction down and elaborate ", "In a similar way to what we did last week, we can ", "Abstraction is expressed here because ", "If we hadn't used abstraction the solution would ", and so on. This can be done, for example, when instructors develop a solution in stages in front of the class; instead of presenting the students with complete solutions, they can specify how abstraction is expressed and how it guides the solution's progress. The second teaching process integrates reflective processes. Such reflection should be conducted together with the students, and may address, among other issues, topics such as the way abstraction is expressed in different situations, and questions such as: What would have happened had we not used abstraction? Such demonstrations might also increase students' awareness with respect to students' reflective skills. Another pedagogical issue that should be examined is whether to dedicate a full course to abstraction (maybe together with other heuristics) or rather to mention abstraction on different occasions in different courses, whenever appropriate. Although the argument presented in this column indicates a preference for the latter option, a dedicated abstraction course may be appropriate in some circumstances. It would, of course, highlight the importance of abstraction and enable students to concentrate on the topic without the time pressure that characterizes many courses. On the other hand, such conceptual (or philosophical) courses can be very difficult to teach and difficult for students to comprehend without a high degree of maturity in the topic. Further, such a course may even alienate students, giving them the impression that abstraction is not a practical problem solving technique. As in many cases, a good solution would integrate the two options. Specifically, instructors should certainly address abstraction in all courses, when appropriate; and in parallel, an elective course can be offered for those students who find it an interesting topic. Since fewer students usually enroll in elective courses, instructors might be able to facilitate discussions and reflection processes in more supportive manner.
9 It is interesting to consider whether or not the proposals presented in this column will indeed enhance students' abstraction skills. Personal experience, which must of course be subjected to further scrutiny, suggests that such an abstraction-oriented education should increase students' awareness of abstraction and improve their ability to apply it. For example, during a Programming Paradigms course in which the approach described in this column is applied, students are frequently heard making statements such as: "We guess we shouldn't move to lower level of abstraction now", or "It is analyzed from an abstract perspective". It might be added that the tension between code-level instruction and abstract instruction never completely disappears; In fact, on occasion students still tend to reduce abstraction (Hazzan, 2003), focusing on low-level specific details, and are not ready to capture the power and usefulness of abstraction. Such occasions can be used, however, to further highlight the tension between different levels and purposes of abstraction, addressing its source and ways in which it can be bridged. A sequel to the present column might deal with the issue of testing abstraction skills. Kramer (in press) proposes that "the reason that some software engineers and computer scientists are able to produce clear, elegant designs and programs, while others cannot, is attributable to their abstraction skills". Accordingly, Kramer suggests that we need tests to assess those abilities and skills and presents several usages for testing abstraction. One of them is the annual measurement of students' abstraction abilities while at college so as to gain insight into the effectiveness of our teaching techniques; another is the measurement of students' abstraction skills when applying to study CS or SE so as to assess their aptitude. Perhaps such tests could be based on the question patters described in this column, including applications in other contexts, such as mathematics, architecture or art. 5. REFERENCES Hazzan, O. (2002). The reflective practitioner perspective in software engineering education, The Journal of Systems and Software 63(3), pp Hazzan, O. (2003). How students attempt to reduce abstraction in the learning of mathematics and in the learning of computer science, Computer Science Education 13(2), pp Hazzan, O. and Tomayko, J. (2005). Reflection and abstraction processes in the learning of the human aspects of Software Engineering, IEEE Computer 38(6), pp Kramer, J. (in press). Abstraction the key to Computing? Communications of the ACM. Liskov, B. and Guttag, J. (1986). Abstraction and Specification in Program Development, MIT-Press / McGraw-Hill. Liskov, B. and Guttag, J. (2001). Program Development in Java Abstraction, Specification, and Object-Oriented Design, Addison-Wesley. Schön, D. A. (1983). The Reflective Practitioner, BasicBooks, Schön, D. A. (1987). Educating the Reflective Practitioner: Towards a New Design for Teaching and Learning in The Profession, San Francisco: Jossey-Bass.
Human Aspects of Software Engineering: The Case of Extreme Programming
1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel [email protected]
How To Teach Computer Science In High School
Methods of Teaching a Computer Science Course for Prospective Teachers Tami Lapidot and Orit Hazzan Department of Education in Technology and Science Technion Israel Institute of Technology Haifa, 32000
Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)
Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment
IS ABSTRACTION THE KEY TO COMPUTING?
IS ABSTRACTION THE KEY TO COMPUTING? Why is it that some software engineers and computer scientists are able to produce clear, elegant designs and programs, while others cannot? Is it possible to improve
Ontological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
Computer Science Curriculum Revision
Computer Science Curriculum Revision Background Undergraduate programs in computing-related disciplines began to emerge in the 1960s. At that time there were only three kinds of computing-related programs:
Incorporation of an online tutoring tool into programming courses. Abstract
Incorporation of an online tutoring tool into programming courses Ozgur Aktunc Engineering Department St. Mary s University [email protected] Abstract One of the challenges growing institutions face
Real-World Object-Oriented Design Experience for Computer Science Students
Real-World Object-Oriented Design Experience for Computer Science Students Abstract Due to the limitations of time and resources, many undergraduate Software Engineering courses provide a survey of a broad
Introductory Problem Solving in Computer Science
Introductory Problem Solving in Computer Science David J. Barnes, Sally Fincher, Simon Thompson Computing Laboratory, University of Kent at Canterbury, Kent, CT2 7NF, England E-mail: [email protected]
Multi-digit Multiplication: Teaching methods and student mistakes
Cynthia Ashton Math 165.01 Professor Beck Term Paper Due: Friday 14 December 2012 Multi-digit Multiplication: Teaching methods and student mistakes Abstract: Description of the paper. Why is it important/interesting,
Program Visualization for Programming Education Case of Jeliot 3
Program Visualization for Programming Education Case of Jeliot 3 Roman Bednarik, Andrés Moreno, Niko Myller Department of Computer Science University of Joensuu [email protected] Abstract:
A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW
A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW John C. Knight, Jane C. Prey, & Wm. A. Wulf Department of Computer Science University of Virginia ABSTRACT
Executive Summary Principles and Standards for School Mathematics
Executive Summary Principles and Standards for School Mathematics Overview We live in a time of extraordinary and accelerating change. New knowledge, tools, and ways of doing and communicating mathematics
An Investigation into Visualization and Verbalization Learning Preferences in the Online Environment
An Investigation into Visualization and Verbalization Learning Preferences in the Online Environment Dr. David Seiler, Assistant Professor, Department of Adult and Career Education, Valdosta State University,
The Role of Modelling in Teaching Formal Methods for Software Engineering
The Role of Modelling in Teaching Formal Methods for Software Engineering A. J. Cowling Department of Computer Science University of Sheffield Sheffield, England [email protected] Abstract. This
Methodological Issues for Interdisciplinary Research
J. T. M. Miller, Department of Philosophy, University of Durham 1 Methodological Issues for Interdisciplinary Research Much of the apparent difficulty of interdisciplinary research stems from the nature
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
ON ADDING A CRITICAL THINKING MODULE TO A DISCRETE STRUCTURES COURSE *
ON ADDING A CRITICAL THINKING MODULE TO A DISCRETE STRUCTURES COURSE * Michael R. Scheessele 1, Hang Dinh 1, and Mahesh Ananth 2 1 Department of Computer and Information Sciences and 2 Department of Philosophy
Construction of a Professional Perception in the "Methods of Teaching Computer Science" Course
Construction of a Professional Perception in the "Methods of Teaching Computer Science" Course Orit Hazzan and Tami Lapidot Department of Education in Technology and Science Technion Israel Institute of
Nancy Rubino, PhD Senior Director, Office of Academic Initiatives The College Board
Nancy Rubino, PhD Senior Director, Office of Academic Initiatives The College Board Amy Charleroy Director of Arts, Office of Academic Initiatives The College Board Two approaches to alignment: Identifying
Introducing Software Engineering to the Freshman Student
Introducing Software Engineering to the Freshman Student Yi Liu, Wei Wang and Onyeka Ezenwoye Department of Electrical Engineering and Computer Science South Dakota State University Brookings, SD 57007
The Phases of an Object-Oriented Application
The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly
Merging Business and Adult Education to Create an Online MBA Degree Program: Concern over Sustaining the Andragogical Approach
Merging Business and Adult Education to Create an Online MBA Degree Program: Concern over Sustaining the Andragogical Approach Susan Isenberg, Ph.D. Abstract: Merging business and education models for
COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND
COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND Hasmik GHARIBYAN PAULSON Computer Science Department, California Polytechnic State University, 1 Grand Avenue, San Luis Obispo, CA 93407,
Analysis and Design of Software Systems Practical Session 01. System Layering
Analysis and Design of Software Systems Practical Session 01 System Layering Outline Course Overview Course Objectives Computer Science vs. Software Engineering Layered Architectures Selected topics in
Teaching Requirements through Interdisciplinary Projects
Teaching Requirements through Interdisciplinary Projects Deepti Suri, Eric Durant Department of Electrical Engineering and Computer Science Milwaukee School of Engineering 1025 North Broadway Milwaukee,
Programme Specification for the. Cardiff Metropolitan University. Master of Science (MSc) in Information Technology
LONDON SCHOOL OF COMMERCE Programme Specification for the Cardiff Metropolitan University Master of Science (MSc) in Information Technology Contents Programme Aims and Objectives 3 Programme Structure
Articulating Instructional Goals
Janet Russell CNDLS Workshop Goals: 1) Teaching vs. Learning goals Participants will be able to distinguish between teacher-centered and student-centered learning goals. 2) Articulate a set of learning
Prospectus for the Essential Physics package.
Prospectus for the Essential Physics package. Essential Physics is a new textbook and learning package aimed at the College Physics audience, covering the standard introductory physics topics without using
DEFINING, TEACHING AND ASSESSING LIFELONG LEARNING SKILLS
DEFINING, TEACHING AND ASSESSING LIFELONG LEARNING SKILLS Nikos J. Mourtos Abstract - Lifelong learning skills have always been important in any education and work setting. However, ABET EC recently put
AC 2008-1581: A COURSE SEQUENCE FOR INTEGRATING PROBLEM SOLVING AND CRITICAL THINKING IN A HYBRID OUTCOME-BASED IS/IT CURRICULUM
AC 2008-1581: A COURSE SEQUENCE FOR INTEGRATING PROBLEM SOLVING AND CRITICAL THINKING IN A HYBRID OUTCOME-BASED IS/IT CURRICULUM Azzedine Lansari, Zayed University Azzedine Lansari received a Ph.D. from
Report on Game Design and Development Courses Meeting Knowledge Areas
Report on Game Design and Development Courses Meeting Knowledge Areas Brent M. Dingle Summer 2014 Revised Fall 2014 and Spring 2015 Abstract This document approaches a Game Design and Development (GDD)
Exploring Computer Science A Freshman Orientation and Exploratory Course
Exploring Computer Science A Freshman Orientation and Exploratory Course Stephen U. Egarievwe and Vivian J. Fielder Center for Internet Based Education and Research Department of Mathematics and Computer
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
A Comparison of Computer Science and Software Engineering Programmes in English Universities
A Comparison of Computer Science and Software Engineering Programmes in English Universities Farid Meziane and Sunil Vadera School of Computing, Science and Engineering University of Salford, Salford M5
BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4
International Conference 20th EURO Mini Conference Continuous Optimization and Knowledge-Based Technologies (EurOPT-2008) May 20 23, 2008, Neringa, LITHUANIA ISBN 978-9955-28-283-9 L. Sakalauskas, G.W.
C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering
C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering Education & Training, pp. 16-25, New Orleans, Lousiana, USA,
Quotes from Object-Oriented Software Construction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
How To Be A Mathematically Proficient Person
REPRODUCIBLE Figure 4.4: Evaluation Tool for Assessment Instrument Quality Assessment indicators Description of Level 1 of the Indicator Are Not Present Limited of This Indicator Are Present Substantially
Software Engineering from an Engineering Perspective: SWEBOK as a Study Object
Software Engineering from an Engineering Perspective: SWEBOK as a Study Object Alain Abran a,b, Kenza Meridji b, Javier Dolado a a Universidad del País Vasco/Euskal Herriko Unibertsitatea b Ecole de technologie
Chapter 2 Conceptualizing Scientific Inquiry
Chapter 2 Conceptualizing Scientific Inquiry 2.1 Introduction In order to develop a strategy for the assessment of scientific inquiry in a laboratory setting, a theoretical construct of the components
Functional Decomposition Top-Down Development
Functional Decomposition Top-Down Development The top-down approach builds a system by stepwise refinement, starting with a definition of its abstract function. You start the process by expressing a topmost
REGULATIONS AND CURRICULUM FOR THE MASTER S PROGRAMME IN INFORMATION ARCHITECTURE FACULTY OF HUMANITIES AALBORG UNIVERSITY
REGULATIONS AND CURRICULUM FOR THE MASTER S PROGRAMME IN INFORMATION ARCHITECTURE FACULTY OF HUMANITIES AALBORG UNIVERSITY SEPTEMBER 2015 Indhold PART 1... 4 PRELIMINARY REGULATIONS... 4 Section 1 Legal
Program Understanding in Software Engineering
Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert
School of Computer Science for Business Management
ROMANIAN - AMERICAN UNIVERSITY School of Computer Science for Business Management Master in Computer Science for Business Domain: Economic Informatics 2 years, full time Taught in ENGLISH A Master course
Five High Order Thinking Skills
Five High Order Introduction The high technology like computers and calculators has profoundly changed the world of mathematics education. It is not only what aspects of mathematics are essential for learning,
Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
A New MSc Curriculum in Computer Science and Mathematics at the University of Zagreb
A New MSc Curriculum in Computer Science and Mathematics at the University of Zagreb Robert Manger, Goranka Nogo, Mladen Vuković Department of Mathematics, University of Zagreb Bijenička cesta 30, 10000
Chapter 4 Software Lifecycle and Performance Analysis
Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and
Creating an Effective Online Instructor Presence
CREATING AN EFFECTIVE ONLINE INSTRUCTOR PRESENCE / APRIL 2013 Creating an Effective Online Instructor Presence Why Is Instructor Presence Important in Online Courses? Student outcomes in online courses
Institute of Research on Information Systems (IRIS) Course Overview
Department of Supply Chain Management, Information Systems & Innovation Institute of Research on Information Systems (IRIS) Course Overview BACHELOR PROGRAM COURSES... 2 INFORMATION SYSTEMS DEVELOPMENT...
Holistic education: An interpretation for teachers in the IB programmes
IB position paper Holistic education: An interpretation for teachers in the IB programmes John Hare International International Baccalaureate Baccalaureate Organization Organization 2010 2010 1 Language
22C:22 (CS:2820) Object-Oriented Software Development
The University of Iowa 22C:22 (CS:2820) Object-Oriented Software Development Fall 2012 Software Complexity by Cesare Tinelli Complexity Software systems are complex artifacts Failure to master this complexity
Programme Specification and Curriculum Map for BSc Honours Computing, Graphics and Games
Programme Specification and Curriculum Map for BSc Honours Computing, Graphics and Games 1. Programme title BSc Honours Computing, Graphics and Games 2. Awarding institution Middlesex University 3. Teaching
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand
Teaching Software Engineering Through Game Design
Teaching Software Engineering Through Game Design Kajal Claypool Computer Science Department University of Massachusetts 1 University Avenue Lowell, MA, USA [email protected] Mark Claypool Computer Science
Fall 2012 Q530. Programming for Cognitive Science
Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations
A Design Paradigm in Undergraduate Electrical Engineering Curriculum
A Design Paradigm in Undergraduate Electrical Engineering Curriculum Habib Rahman Saint Louis University Department of Electrical and Computer Engineering McDonnell Douglas Hall, 3450 Lindell Boulevard
Monfort College of Business Semester Course Syllabus (2015-2016)
Monfort College of Business Semester Course Syllabus (2015-2016) COURSE PREFIX/TITLE: BACS 387 Object Oriented System Development Sem. Hrs. 3 Ed. Cap: 40 CATALOG DESCRIPTION: Prerequisites: BACS 287. Business
Towards Web Design Frameworks (Wdfs)
14 Towards Web Design Frameworks (Wdfs) Rehema Baguma, Faculty of Computing and IT, Makerere University. [email protected]; Ogao Patrick, Department of Information Systems, Faculty of Computing and
Software Engineering Transfer Degree
www.capspace.org (01/17/2015) Software Engineering Transfer Degree This program of study is designed for associate-degree students intending to transfer into baccalaureate programs awarding software engineering
NATIONAL COMPETENCY-BASED TEACHER STANDARDS (NCBTS) A PROFESSIONAL DEVELOPMENT GUIDE FOR FILIPINO TEACHERS
NATIONAL COMPETENCY-BASED TEACHER STANDARDS (NCBTS) A PROFESSIONAL DEVELOPMENT GUIDE FOR FILIPINO TEACHERS September 2006 2 NATIONAL COMPETENCY- BASED TEACHER STANDARDS CONTENTS General Introduction to
A Meeting Room Scheduling Problem
A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 [email protected] http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
A Study in Learning Styles of Construction Management Students. Amit Bandyopadhyay, Ph.D., PE, F.ASCE State University of New York -FSC
A Study in Learning Styles of Construction Management Students Amit Bandyopadhyay, Ph.D., PE, F.ASCE State University of New York -FSC Abstract Students take in and process information in different ways.
An Internet Course in Software Development with C++ for Engineering Students
An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This
New Faculty Orientation 2012 CLASSROOM MANAGEMENT & LEARNING STYLES
New Faculty Orientation 2012 CLASSROOM MANAGEMENT & LEARNING STYLES LEARNING AND TEACHING This student-centered perspective is a hallmark of the CSUDH approach to teaching. We strive to empower instructors
Supporting the Implementation of NGSS through Research: Curriculum Materials
Supporting the Implementation of NGSS through Research: Curriculum Materials Janet Carlson, BSCS/Stanford University Elizabeth A. Davis, University of Michigan Cory Buxton, University of Georgia Curriculum
Task-Model Driven Design of Adaptable Educational Hypermedia
Task-Model Driven Design of Adaptable Educational Hypermedia Huberta Kritzenberger, Michael Herczeg Institute for Multimedia and Interactive Systems University of Luebeck Seelandstr. 1a, D-23569 Luebeck,
From Logic to Montague Grammar: Some Formal and Conceptual Foundations of Semantic Theory
From Logic to Montague Grammar: Some Formal and Conceptual Foundations of Semantic Theory Syllabus Linguistics 720 Tuesday, Thursday 2:30 3:45 Room: Dickinson 110 Course Instructor: Seth Cable Course Mentor:
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
Chapter 5, Learning to Think
From Derek Bok, Our Underachieving Colleges: A Candid Look At How Much Students Learn and Why They Should Be Learning More, Princeton, New Jersey: Princeton University Press, 2006. Chapter 5, Learning
Industrial Engineering Definition of Tuning
Industrial Engineering Definition of Tuning Tuning is a faculty-led pilot project designed to define what students must know, understand, and be able to demonstrate after completing a degree in a specific
Differences in Perception of Computer Sciences and Informatics due to Gender and Experience
Differences in Perception of Computer Sciences and Informatics due to Gender and Experience Gabriela Marín Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San Pedro, Costa
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
Exploring the Use of Slow Motion Animation (Slowmation) as a Teaching Strategy to Develop Year 4 Students' Understandings of Equivalent Fractions.
Kervin, K. (2007). Exploring the use of slow motion animation (slowmation) as a teaching strategy to develop year 4 students' understandings of equivalent fractions. Contemporary Issues in Technology and
Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit
Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further
An Investigation of Agent Oriented Software Engineering Methodologies to Provide an Extended Methodology
An Investigation of Agent Oriented Software Engineering Methodologies to Provide an Extended Methodology A.Fatemi 1, N.NematBakhsh 2,B. Tork Ladani 3 Department of Computer Science, Isfahan University,
Research into competency models in arts education
Research into competency models in arts education Paper presented at the BMBF Workshop International Perspectives of Research in Arts Education, Nov. 4 th and 5 th, 2013. Folkert Haanstra, Amsterdam School
Recommended Course Sequence MAJOR LEADING TO PK-4. First Semester. Second Semester. Third Semester. Fourth Semester. 124 Credits
ELEMENTARY AND EARLY CHILDHOOD EDUCATION MAJOR LEADING TO PK-4 Recommended Course Sequence 124 Credits Elementary and Early Childhood Education majors will also complete a Reading Education minor within
Bachelor of Bachelor of Computer Science
Bachelor of Bachelor of Computer Science Detailed Course Requirements The 2016 Monash University Handbook will be available from October 2015. This document contains interim 2016 course requirements information.
Research Basis for Catchup Math
Research Basis for Catchup Math Robert S. Ryan, Ph. D. Associate Professor of Cognitive Psychology Kutztown University Preface Kutztown University is a 4 year undergraduate university that is one of 14
Learning Theory and Instructional Design
Learning Theory and Instructional Design Gregory McLeod Introduction Designing effective instruction goes beyond systematically executing various steps within an instructional design model. Among a host
