An Active Student Centered Learning (ASCL) Approach to Instruct and Assess a Software Engineering Course
Software Engineering is quite different from traditional engineering because of the intangible nature of software. While software engineering does focus on rigorous methods for designing and building software, more recently, the focus has shifted to building “real-world” large software systems with increased attention to safety-critical applications. A large disconnect is perceived to exist between the skills required by a software industry and the skills acquired by students in an academic setting. In this paper we strive to design a software engineering course (for juniors and seniors in an undergraduate degree program), that will enable students to tackle these challenges. Curriculum development methodologies for teaching software engineering courses range from simulation games to experiential learning methods based on reflective practices. This paper presents a novel innovative methodology based on Active Student Centered Learning (ASCL) to instruct and assess a Software Engineering course.
Keywords: Active Student Centered Learning, ASCL, instruction, assessment, software engineering, computer assisted learning, online instruction, web-based instruction, e-learning, computer science, distance learning, effective learning environment, innovative curriculum development methodology.
Software Engineering (SE), is generally defined as “the discipline of developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. Software engineering was originally introduced to reflect application of traditional ideas from engineering to the problems of building software. Hence software engineering, like other engineering disciplines, has to date tended to focus on rigorous methods for designing and building software. To some extent this parallel continues to hold even as the focus has recently shifted to building “real-world” large software systems with increased attention to safety-critical applications. It is being realized that software engineering is quite different from traditional engineering because of the intangible nature of software. A large disconnect is perceived to exist between the software engineering skills required by a software industry and the skills acquired by students in an academic setting . In order to narrow this divide, many professional societies have helped to define a Software Engineering Body of Knowledge (SWEBOK)  that is intended as a guide to the pertinent subset of generally accepted software engineering knowledge and can assist in the development of a software engineering course curriculum.
In this paper we strive to design a software engineering course for juniors and seniors in an undergraduate degree program based on the above guidelines, that will enable our students to successfully participate in and contribute to a “real-world” software industry.
Current literature includes many curriculum development methodologies for teaching software engineering courses, ranging from simulation games  to experiential learning methods based on reflective practices . Curriculum development methodology in this paper is based on an Active Student Centered Learning (ASCL) paradigm with novel ways to instruct and assess a Software Engineering course. This methodology is explained in detail in the following sections.
As pointed out by Svinicki , the idea of teaching using learner-centered models is not new and has been around since the 1980’s. In 1987, Chickering and Gamson  also emphasized active or collaborative learning in their “Seven Principles of Good Practice” for undergraduate education. Later, Bender  illustrated how technology can be used in various courses to de-center the classroom and facilitate more active student-centered learning. Recently, Boettcher  reported on the Ten Core Principles for Designing Effective Learning Environments, whereby she elaborates on the fundamental design framework for structured learning experience having four elements with the learner at the center. Thus, respecting this shift from teaching to student-centered learning where students are in constant engagement with the context, we decided to align our Software Engineering course with this methodology. To begin with we took a close look at the ten core principles outlined by Boettcher and adopted these in the ASCL framework as elaborated below:
1) Core Learning Principle #1: Every structured learning experience has four elements - the learner (at the center), the mentor/faculty member, the knowledge, and the environment. In the ASCL classroom, we focus on the first element, not only as a single student, but also as a team of students working together, since in the “real-world” students will be expected to work both individually and as part of a team on a large software project. Several group learning activities will be part of the assigned projects with students playing different roles of customer, architect, software developer, system integrator, system tester, etc. The other elements of ASCL classroom would be the faculty member as a designer of the group learning activity, the knowledge being the course content of software engineering skills, and the environment would be the resources our students would be needing such as a computer laboratory, object-oriented design and other SE tools, multimedia resources, etc.
2) Core Learning Principle #2: Every learning experience includes the environment in which the learner interacts. In conformance with this principle, in the ASCL classroom our goal is to accommodate a full range of student needs and learning styles and offer various levels of interactions: between faculty and student, between students, and between student and resources; and offer a range of activities from individual activities and small group activities to large group activities. Examples of such a learning environment include a group SE project whereby each team member participates in the project in several different roles (analyst, developer, tester, etc.) and at several different phases (requirements, design, development, testing, deployment, etc.) of the project.
3) Core Learning Principle #3: We shape our tools and our tools shape us. A corollary of this principle is that as our students become more engaged and active in their learning, we notice a dynamic shift in their learning process; we as faculty are moving towards the periphery while students take center-stage. In the ASCL classroom it is priority to facilitate this shift towards the students taking the center-stage rapidly with the help of various tools such as discussion boards, online forums, blogs, etc.
4) Core Learning Principle #4: Faculty members are the directors of the learning experience. In the ASCL classroom even though our students assume center-stage quickly, we as faculty members continue to play a very crucial role in their learning process. We are responsible for structuring the course by directing and supporting our students through various instructional events, designing effective and efficient learning environments, and, finally assessing the learner outcomes. We are now directing their learning experience, not being the "sage on the stage" simply transmitting knowledge. It is important to note that to assist us in this new role as “director” we have modern technology such as electronic discussion boards and virtual black boards which can be individualized for each student based on their needs.
5) Core Learning Principle #5: Learners bring their own personalized knowledge, skills, and attitudes to the learning experience. This learning principle focuses on the learner as an individual trying to foster individual creativity. We can therefore design a more effective learning experience for our students if we can assess their existing knowledge at the beginning of the course. Again, modern technology provides us with a range of tools for obtaining this information about our students. In the ASCL classroom this pre-assessment is initiated in many different ways – ranging from the traditional in-class discussion to the more private (one-on-one) discussion boards via online forums. In the first meeting we also ask the student to submit a writing sample, which is analyzed to determine if students are placed appropriately and if any referrals need to be made to an Academic Support Center for additional support and help with the writing in the course.
6) Core Learning Principle #6: Every learner has a zone of proximal development that defines the space that a learner is ready to develop into useful knowledge. According to Vygotsky , a student's zone of proximal development (ZPD) is “the distance between the actual developmental level as determined by independent problem solving and the level of potential development as determined through problem solving under adult guidance or in collaboration with more capable peers.” In an ASCL classroom this ZPD principle further reinforces the core learning principle #5 above, and emphasizes the importance of preliminary assessments of student knowledge for effective learning. We need to constantly monitor our students' state of understanding and capabilities by embedding feedback from students throughout our course from the very beginning once again; using modern technology. This is further elaborated in the Assessment section.
7) Core Principle #7: Concepts are not words; concepts are organized and intricate knowledge clusters. This is again based on Vygotsky’s  idea that concept formation is a series of operations instead of a one-time event or as described by Freeman  "a process of successive approximations" to assimilate meaning. In the ASCL classroom we design assignments which build-on progressively, taking the students through all the steps in a Software Engineering process. We start with having our students conduct feasibility studies for their assigned project and generating appropriate requirements based on these studies. Next, we progress them into a design phase whereby they architect the system along with various subsystems and start the modeling and coding phase. Then, they move onto the validation phase whereby they actually conduct tests in the laboratory to determine if their system meets the customer requirements. Finally their system is ready for the evolution phase, where they are able to accommodate any changes and extra features requested by the customers.
8) Core Learning Principle #8: All learners do not need to learn all course content; although all learners do need to learn the core concepts. This learning principle focuses on the knowledge element in the core learning principle #1 above. Software Engineering has a set of basic skills or concepts which every student needs to understand thoroughly. Further, based on the students’ motivation, creativity, and priorities, additional concepts can be developed by the students. To incorporate this principle in the ASCL classroom we provide our students with a database of external web-based links, whereby they can acquire additional knowledge, for example, we provide links for online tutorials  on The Unified Modeling Language™ (UML™)  by Object Management Group (OMG) which is the industry-standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. This language simplifies the complex process of software design, creating a "blueprint" for construction.
9) Core Learning Principle #9: Different instruction is required for different learning outcomes (Gagne, 1965 ). In 2002, Merrill  combined a broad range of instructional theories into a framework for design known as the First Principles of Instruction, which is shown below in Figure 1 as four instructional phases revolving around a problem.
Figure 1 First Principles of Instructional Design
He stressed that learning is facilitated when learners are engaged in solving “real-world” problems and when existing knowledge is activated as a foundation for new knowledge. The ASCL classroom adaptation of core learning principle #5 above already reflects this in part, whereby we included an assessment of existing knowledge at the beginning of our course. Merrill’s first principle of instruction further asserts that learning is facilitated when new knowledge is demonstrated to the learner, which is then applied by the learner. Lastly, learning is facilitated when new knowledge is integrated into the learner's world. In the ASCL classroom, we demonstrate to our students what needs to be learned, rather than merely telling them about what needs to be learned. We do this by sharing object models, behavior models, use-case scenarios, etc. for a real-world system. We also require our students to use their new knowledge to solve a variety of problems thereby providing multiple opportunities for them to use this new knowledge. Lastly, we encourage our students to transfer this newly acquired knowledge into their everyday life by giving them practical real-world problems which they can relate to within their community. This paves a way for students to make a difference in their communities as part of a relevant and meaningful class experience. This principle also promotes diversity and recognizes and respects the individual differences amongst learners, based on their background and cultural perspectives.
10) Core Learning Principle #10: Everything else being equal, more time-on-task equals more learning. This in a way follows from the above principle whereby learning is facilitated if students interact actively with the course material. In the ASCL classroom we use simulated software games and role-playing to offer a more dynamic and interactive learning experience to our students. These experiential learning processes permit students to invest greater amounts of time in their learning development and eventually they are ready to apply and integrate this new knowledge into the real-world.
ASCL Conceptual Context
The encapsulation of above ten core principles in the ASCL framework is best reflected in Figure 2 below in the form of a conceptual context. This may be viewed as a relational model with the Student or Learner in the center, supported by Faculty as well as the environment, resources, and, tools. Background knowledge pre-assessment helps develop an individualized and more effective learning environment, further allowing us to focus on core concepts and any additional specialized concepts needed by the learner. This relational model also stresses on Assessment in ASCL which is an integral part of any learning process and is described in the next section.
Figure 2: ASCL Conceptual Context
Assessment plays an important role both in teaching and learning and is an integral component of any learning process. Almost 30 years ago, Derek Rowntree  expressed an important aspect of assessment to enhance the learning experience of students – “If we wish to discover the truth about an educational system we must look into its assessment procedures.” In their handbook for teachers, Angelo and Cross  report the central purpose of Classroom Assessment is to empower both teachers and their students to improve the quality of learning in the classroom. They further assert how classroom assessment can help teachers refocus their teaching to help students make their learning more efficient and more effective.
We teachers often assume that our students are indeed learning what we intend to teach them. However, often while grading the final exam, we notice huge gaps between what we intended our students to learn and what they have actually learned! In order to avoid such “end-of-the-semester” disappointments, we need effective ways to monitor our students on a constant basis throughout the semester.
According to Atherton , assessment is viewed as integral to every stage of teaching, from minute to minute as much as module to module, rather than as a discrete process. Further, the Committee on Classroom Assessment and the National Science Education Standards  promotes a balanced and integrated system of assessment. This is where different assessment techniques come in handy.
Wright  appropriately describes Assessment as “…a learner-centered, teacher-directed approach designed to improve student learning in the individual classroom.” Also, in , she describes many effective assessment methods. Even though assessment has been defined differently by many authors, there is a common thread in all the definitions - gathering of feedback on the learning process, understanding the meaning of this feedback, and using the feedback to improve the teaching-learning process . Boston  reports that historically most classroom assessment has been summative and often implemented in the form of end-of-term assessments by using final grades and some form of student evaluation.
It should be noted that this summative approach allows for improvement only in subsequent teaching of the course and not the current one. In contrast, formative assessment, defined by Black and William  as, "all those activities undertaken by teachers and by their students [that] provide information to be used as feedback to modify the teaching and learning activities in which they are engaged" would seem to impact the current course by using feedback to adapt teaching to meet student needs. Therefore, our strategy would be to use a combination of summative and formative approaches to make course adjustments during the duration of our Software Engineering course.
After surveying the literature on a variety of assessment techniques, we decided to use the techniques listed below.
1) Background Knowledge Pre-assessment: This directly follows from the Core Learning Principles #s 5 and 6 we outlined in Section 2 above and is a rather common practice in most courses. We use written questionnaires, in-class discussions, and online private discussion boards to pre-assess a students’ knowledge and abilities and come up with an initial estimate for each students’ ZPD. We also take an initial writing sample (as shown in Section 0) from each student in order to determine the level of assistance a student would need with the writing in the course. This background knowledge assessment is repeated at the beginning of each new module in order to fabricate appropriate lesson plans.
2) Goal Ranking and Syllabus Adjustment: In the first meeting we share a preliminary syllabus for the course with several course goals. We then encourage students to rank these goals in a relative order of importance to them. After analyzing this data, we can help students achieve many of the course goals and connect some of these to our course syllabus in the form of special projects. Also there may be some goals which just cannot be accommodated, in which case, we give our students an honest response and prevent future disappointments.
3) The Minute Paper: At the end of each class, we ask our students to answer two questions as in the form shown in Figure 3 below. Firstly, this provides us with a rapid feedback as to whether our main idea coincides with what the students perceived as the main idea. Additionally, students are forced to organize their thinking to rank the two most significant points and then to decide upon a significant question.
Figure 3: Sample Form for the Minute Paper
4) The Muddiest Point: At the end of a new module or topic, we ask our students to write down what was least clear to them in that module. This forces the students to rate their own understanding of the module and will help us decide whether to distribute an additional explanatory handout clarifying the issues, or, initiate a discussion forum, or, eventually organize a tutorial session. This technique of identifying the least understood point is an interesting exercise and there is always room for improving classroom explanations, no matter how experienced a teacher is.
5) Documented Problems: After each module, we assign problems (from that module) to be done outside the class and request our students to clearly document all the steps involved in coming up with a solution. This includes not only writing down the answers, but also providing the reasoning behind their answers as well, which in fact is another way of expressing the “Show all your work” philosophy. This documentation can vary from a simple paragraph of what was done and why, to a detailed explanation of a formal mathematical proof. Sadly, today many students are still focused around getting the correct answer rather than focusing on the process of problem solving. This kind of assignment will force our students to focus on the process irrespective of the answer. We also stress that in most SE problems there is no “right” or “wrong” answer. For example, when we assign a problem whereby students have to select a particular software process model for a system, students may pick any model as long as they can support that selection with valid reasons for choosing that model.
Curriculum Improvements to Overcome Problems with
Goal #1: The student will know the fundamentals of Software Engineering Processes
Objective #1-7: Discuss key challenges in SE
Assignment that demonstrates accomplishment of this objective:
1) Document all the possible challenges in SE
2) From these, identify at least three challenges which you think are critical.
3) Giving different examples discuss (with analysis and your eventual evaluation) the three key challenges you identified in 2 above.
4) Submit a write-up along with any tables you generated.
After defining assessment metrics for our course, we need to decide when and how often to assess. We can collect the data (using varied techniques) at several different points – at the beginning of the semester, at the end of every class, at the beginning of a new topic, at the end of the semester etc. For example, the Background Knowledge Pre-Assessment listed in Section 0 can be conducted at the beginning of the semester by requesting students for an Initial Writing Sample in order to asses their writing skills and to determine the level of assistance a student would need with the writing in the course. This would also reveal if students are placed appropriately in the course and if any referrals need to be made to the Academic Support Center for additional support and help with the writing in the course. Figure 6 below shows a sample.
You are required to write a page: First introduce yourself, then explain the reasons for your participation in this Software Engineering course.
To determine you are placed appropriately. Referrals need to be made to the Academic Support Center for support and help with writing in this course.
Course Instructor, Academic Support Center, Other Faculty Members
Mode of writing
Expressive – focus on your personal motives and experiences
One page (Max)
None. This assignment is not graded.
In Class Writing Assignment – Due today by end of class
In addition to knowing a student’s background, it is equally important to know what kind of learning is occurring at a specific moment in time. We identify our fundamental course concepts, and then assess whether our students fully grasp these, or are simply going on without any solid understanding of these basic concepts. This information also helps to alter the pace of the course and make any adjustments to our syllabus in order to solidify these concepts. Examples of assessment methods which help us gauge the understanding of such concepts can include the minute paper and the muddiest point assessment techniques introduced in Section 0.
Our eventual aim in collecting assessment data is to improve teaching and learning. In order to this, we begin by organizing the data (both quantitative and qualitative) we have collected in Section 0 above. We base our analysis on the guidelines provided in  and Figure 7 below shows a way to organize some of this data. Once the data is organized it is easy to see what action we need to take based on this. Based on this data organization we formulate an action plan  and Figure 8 shows a sample of one such plan. Such a plan can be very useful at the beginning of the semester, or even during the middle of the semester, when we can actually try to correct our instruction method.
Interpretation of data
Student prior knowledge of SE
Background Knowledge Pre-assessment
Initial writing sample
discussion board forum
15% - some pre-knowledge of SE
35% - writing skills inadequate
Cover background and basics of SE
Organize writing and tutorial session with Academic Learning Center support
Surprised about the writing skills
Limited SE pre-knowledge
After implementing the various items in our action plan, we may use the results in several different ways. First of all, we use these results to direct our instruction method towards our students learning needs. Additionally, we may use this assessment information for improving our department’s curriculum and syllabus for this course. This assessment information may also be useful to other faculty members in our department who may be responsible for teaching either a pre-requisite to this SE course, or, simply, a more advanced 2nd level SE course. In order to communicate these results effectively, we link them to our course goals and learning objectives, as shown in a sample matrix  in Figure 9 below.
Steps to be taken
Increase basic knowledge of SE
- Motivate students about SE using real-world examples
- Share interesting anecdotes about the pitfalls of not applying SE principles
- Demonstrate that they have been using SE principles in prior courses, although did not classify them as such
- Ask students with adequate background to share their knowledge with other sin the class
Improve writing skills
- Share writing samples from prior classes showing both good and inadequate samples
- Share writing guidelines in Computer Science based on the standards from the Computer Society
- Explain the importance of writing skills in Computer Science, especially in SE
- Assign simple and progressive assignments to improve writing
- Offer tutorial and help sessions in writing for all
One of the main benefits of our assessment techniques is that they provide an opportunity to openly communicate with our students. To ensure this, we need to engage them in the assessment process. We need to help them understand why assessment is important, how it can help us become more effective teachers, and eventually how this assessment can help them become more efficient learners. According to , we can maximize the positive impact of classroom assessment by sharing the assessment results with our students, showing them how we interpret the results, and letting them know what we intend to do with them. Also, Wright  asserts that as students become more involved, self-reflective learners; classroom assessment increases their interest in learning and changes their attitudes and behaviors. We use an innovative way of engaging our students in assessment by letting them design their own Midterm exam based on the course goals and learning objectives we initially set. We set up a discussion board forum and sought responses from our students in preparing this exam. Each student carefully thought about the learning objectives and came up with some real thought provoking questions. There were some questions which we had to modify based on our perception of a student’s interpretation of a particular learning objective, although overall the questions were meaningful. We will be reporting on the results of such exam preparation ideas in a subsequent paper with further analysis of our results. Another experiment we tried was to let students prepare a grading rubrics for a written assignment and then do a peer evaluation by grading at least 2 other student papers. We introduced rubrics  to our students and demonstrated how to generate a rubric using the Rubistar website . A sample of such grading rubrics (prepared by students with some minimal assistance from us) is shown in Figure 10 below.
Information is very organized with well-constructed paragraphs and subheadings.
Information is organized with well-constructed paragraphs.
Information is organized, but paragraphs are not well-constructed.
The information appears to be disorganized.
Quality of Information
Information clearly relates to the main topic. It includes several supporting details and/or examples.
Information clearly relates to the main topic. It provides 1-2 supporting details and/or examples.
Information clearly relates to the main topic. No details and/or examples are given.
Information has little or nothing to do with the main topic.
Detailed draft is neatly presented and includes all required information.
Draft includes all required information and is legible.
Draft includes most required information and is legible.
Draft is missing required information and is difficult to read.
No grammatical, spelling or punctuation errors.
Almost no grammatical, spelling or punctuation errors
A few grammatical, spelling, or punctuation errors.
Many grammatical, spelling, or punctuation errors.
All sources (information and graphics) are accurately documented in the desired format.
All sources (information and graphics) are accurately documented, but a few are not in the desired format.
All sources (information and graphics) are accurately documented, but many are not in the desired format.
Some sources are not accurately documented.
In this paper we report on an innovative curriculum development methodology based on Active Student Centered Learning (ASCL) with novel ways to instruct and assess a Software Engineering course. We perceive an emergent need to develop such a Software Engineering course whereby we prepare our students to successfully participate in and contribute to a “real-world” software industry. We have tried to encompass many “real-world” and “large-scale” SE problems focused on safety-critical systems. Based on the ASCL methodology along with the assessment techniques discussed here, we are confident that our students will meet the growing demand to narrow the divide between the software engineering skills required by a software industry and the skills acquired by our students in an academic setting. We still have to assess the learning impact of this methodology and hope to publish this shortly after the course is successfully delivered. Meanwhile, we have to focus on the future course offerings whereby we may use this methodology for other courses within the Computer Science department. Also, we need to understand the applications (along with any limitations) of this technique in case we have to scale it for a large class. We also need to explore ways to mechanize many aspects of the course development in order to standardize the use of these methods across several different courses, different faculty members within the department, different departments (for example, Electrical and Computer Engineering, Mathematics, etc.) and eventually university wide.
Neelu Sinha, PhD, is an Associate Professor in the Department of Computer Science, Mathematics and Physics at Fairleigh Dickinson University in Madison, New Jersey. Dr. Sinha earned her MS and PhD in Electrical Engineering from Iowa State University. Prior to joining Fairleigh Dickinson, Dr. Sinha worked with Control Data Corporation in Plymouth, MN and the AT&T/Lucent Bell Laboratories in Whippany, NJ. Her current areas of interest are digital image and audio watermarking, information security, multimedia database indexing & content based retrieval, distance learning and web assisted online course offerings. Dr. Sinha may be reached at email@example.com.
Dr. Neelu Sinha
Fairleigh Dickinson University
Department of Computer Science, Mail Stop: M-AB2-02
285 Madison Ave,
Madison, NJ 07940
Email address: firstname.lastname@example.org
Telephone: (973) 443-8680