Teaching OOP With Financial Literacy

  • Published on

  • View

  • Download

Embed Size (px)



    Short PapersTeaching OOP With Financial Literacy

    Hongwei Zhu

    AbstractStudents lose interest in learning programming when the ma-terials are not related to their lives. A challenge facing most students is thatthey lack the financial literacy necessary to manage their debts. An ap-proach is developed to integrate financial literacy into an object-orientedprogramming (OOP) course. The approach is effective in motivating stu-dents and improving the learning outcomes.

    Index TermsFinancial literacy, learning effectiveness, motivation, ob-ject-oriented programming (OOP).


    Programming is an essential component in the curricula of all fivesubdisciplines of computing: computer science, computer engineering,information systems, information technology (IT), and software en-gineering [1]. Programming courses are offered in most of the 4000colleges and universities in the U.S. While data types, inheritance,software design patterns, and other important programming topicsare being taught, the rest of the world is struggling with the housingbubble, financial crises, job losses, and mounting debts. Despiteefforts to get students attention, their minds drift away from theclassroom because they worry about how to pay off their studentloans. More than two-thirds of college students (i.e., 1.8 million)graduate with significant debts. Lacking the financial knowledgenecessary to manage debts, many students regret their choice of goingto college. Sometimes I think going to school is the worst singlemistake Ive made, commented a recent graduate [2]. Without seeingthe connection between programming and the imminent financialissues they face, students lose interest in learning programming. Thereis a compelling need to transform the programming curriculum.

    Personal finance requires information gathering and data processingto compare various what-if scenarios. It works very well for students touse what they learn in a programming course to develop useful financialapplications. Despite many improvements made in programming edu-cation [3], [4], little has been done to exploit the synergy between pro-gramming and finance in undergraduate education due to disciplinarybarriers. A typical programming course uses many applications to illus-trate key programming concepts. However, these applications are oftendesigned with the concepts in mind, rather than the students or theissues they have in mind. The applications often change from topic totopic as if they were created at random. As a result, they are not effec-tive in helping students learn programming.

    At Old Dominion University (ODU), Norfolk, VA, an object-ori-ented programming (OOP) course has been redesigned to integrate fi-nancial literacy into programming education. Results show that this ap-

    Manuscript received March 13, 2010; accepted May 01, 2010. Date of pub-lication June 28, 2010; date of current version May 04, 2011. This work wassupported by grants from the Office of Research, Old Dominion University.

    The author is with Old Dominion University, Norfolk, VA 23529 USA(e-mail: hzhu@odu.edu).

    Color versions of one or more of the figures in this paper are available onlineat http://ieeexplore.ieee.org.

    Digital Object Identifier 10.1109/TE.2010.2052461


    proach is effective in increasing student interest and improving learningoutcomes.

    II. COURSE REDESIGN AND IMPLEMENTATIONOOP is a software engineering elective in the IT curriculum at ODU.

    Students in the OOP course are usually juniors or seniors majoring inIT, computer engineering, or computer science, most of whom havetaken a prerequisite programming course in C and C++. The OOPcourse uses the Java programming language.

    Prior to the redesign, the course covered OOP concepts, graphic userinterface (GUI) programming, multimedia programming with anima-tion and audio, networking and distributed applications, and databasesusing JDBC. Examples and assignments dealt with problems that were,at best, remotely related to student concerns. Assignments includedtabulated output of sales of a fictitious stadium, calculations of var-ious geometric shapes, and animation of a moving train. A mortgagecalculator program was used, but the focus was on the programminglanguage features. Attendance was dropping, and students were not at-tentive to lectures; it was clear that they were losing interest in pro-gramming. Action must be taken to address this pressing issue.

    A. Redesigned CourseTo make the course more interesting to students, two major changes

    were made: 1) updating the programming content to reflect technologychanges in recent years; and 2) incorporating financial literacy into thecourse.

    1) Programming Content: From the computing education point ofview, the primary objective of the course is for students to learn essen-tial OOP concepts and skills, not a particular programming language.The course was restructured to deemphasize programming languageand to emphasize OOP and problem solving.

    OOP has been used extensively in data-driven Web applications, pro-cessing of semistructured data, and service-oriented computing. Stu-dents will be likely to work on these technologies after graduation, sothey should be exposed to them in the course. The redesigned coursehas three modules to cover the desired contents (see Table I).

    The Java language module serves as a refresher of basic program-ming constructs and can be completed within two weeks. The modulecovers the basic features of the languages. Other advanced featuressuch as interface, exception handling, and generic programming areintroduced later in the course.

    The OOP fundamentals module usually takes five weeks. Studentshave been briefly introduced to OOP in the prerequisite C/C++ course.To help them transition from procedural thinking to object-oriented

    0018-9359/$26.00 2010 IEEE


    thinking, a few procedural programs are used to show how to converta procedural implementation to an OOP implementation.

    Having had a firm grasp of OOP fundamentals, students can applytheir knowledge and practice their skills in the OOP applicationsmodule. Through hands-on exercises of developing applications,students gain experience with software engineering technologies oftenused in practice.

    2) Financial Literacy Content: Based on the statistics of studentloans from the Department of Education, three areas of financial lit-eracy were identified to be helpful to the students and suitable for theOOP course: savings, debt management, and investment.

    Savings. Most students have no habit of saving money. To helpthem form this habit, it is useful to illustrate the compoundingeffects of interest and to introduce different savings products. It isalso good to know about inflation and various inflation-protectedsecurities.

    Debt management. Students need to know whether they can af-ford certain loans based on their expected income. Conversely,given a certain loan, they need to know the necessary incomelevel. Someone having difficulties in making their student loanpayments can choose between forbearance (i.e., payment defer-ence), term extension, and the income-based payment programintroduced in 2009. Students need to know how to compare thesedifferent choices.

    Investment. Students should invest after graduation and need toknow the basics of investing, such as different investment instru-ments, benefits of tax-deferred investment, and analysis of finan-cial statements.

    These financial literacy topics are embedded in programming ex-amples and hands-on exercises, rather than being covered in dedicatedlectures. This approach is effective because students can learn both pro-gramming and financial literacy at the same time. Financial knowledgeis not tested as part of student performance, but is used as backgroundknowledge for developing problem-solving skills using OOP.

    B. Course Implementation

    The redesigned course is implemented using a set of sample pro-grams and programming exercises that integrate OOP and financial lit-eracy. The same problem in the application domain (e.g., modelingsavings bank accounts) is used multiple times in the OOP domain todemonstrate different programming techniques. Through different pro-gramming solutions to the same application problem, students enhancetheir problem-solving skills and learn how to evaluate different solu-tions. This approach provides an effective way for students to see theadvantages of OOP and good software engineering practices. It alsooffers multiple opportunities to blend financial literacy incrementallyinto programming education. See Table II for the programs.

    1) Savings Programs: In the Java language module, students aregiven an assignment to compute and output the monthly balance, in-terest, and accumulated interest for an interest-bearing bank accountat a given interest rate and an initial deposit. In addition to the mainmethod, students are required to use additional methods in their solu-tions. This is a good exercise to learn the basics of the Java languageand to introduce the importance of saving money.

    After learning the basics of object-orientation and Universal Mod-eling Language (UML) class diagram, students are assigned to con-vert the procedural program implemented earlier to an OO implemen-tation. This exercise helps students transition into the OOP paradigm.The modeling of various bank accounts is used to teach the core con-cepts of inheritance and polymorphism.

    2) Mortgage Calculators: Students are often excited about devel-oping GUI applications, which can be implemented using Swing in the


    Fig. 1. Mortgage calculator as a standalone application using MVC.

    Java Foundation Classes (JFC). The complexity of the JFC APIs canbe intimidating to students who have little experience in developingapplications using existing APIs. After using several sample programsto get students familiarized with a small number of APIs, the Savingsexample is used to demonstrate how to convert a console input/outputapplication into a GUI application. Then, students are given an assign-ment to implement a mortgage calculator.

    The Model-View-Controller (MVC) design pattern is then intro-duced. After several examples, including a rewritten Savings example,an assignment is given to rewrite the mortgage calculator programusing the MVC design pattern. A screenshot of the application isshown in Fig. 1.

    Then, students learn how to convert and deploy the application as anapplet. To further demonstrate the benefits of the MVC design patternand code reuse, students learn to reuse the model component in theMVC implementation to create a Web application using JavaBeans andJSP.

    At this point, students should have a deeper understanding of OOPand have begun to develop good problem-solving skills. They are en-couraged to extend the basic mortgage calculator to incorporate ad-ditional features. Fig. 2 shows an example. The screenshot on the leftshows the total interest paid when a 30-year loan is paid off according tothe amortized schedule. The screenshot on the right shows the total in-terest paid when the same loan is paid with an additional $300 monthlypayment. The latter payment arrangement pays off the loan nine years


    Fig. 2. The mortgage calculator is extended to allow comparison of differentpayment arrangements.


    sooner and saves a total of $135 K in interest payment. By imple-menting such additional features, students not only practice their pro-gramming skills, but also learn debt management that will improvetheir lives.

    3) XBRL Processing: Extensible Markup Language (XML) has be-come widely used in many application areas. Thus, it is important toexpose students to XML processing. After the basics, students are intro-duced to eXtensible Business Reporting Language (XBRL). The U.S.Securities and Exchange Commission (SEC) has adopted XBRL forpublic companies to submit their quarterly and annual financials. Atool has been developed to process real-world XBRL files retrievedfrom the SEC repository [5]. Analysis of financial statements is brieflyintroduced when the tool is demonstrated.


    The redesign of the course began in Spring 2008, when debt man-agement topics were included and the mortgage calculator was ex-panded into multiple applications as listed in Table II. In Fall 2008,savings topics and applications were incorporated into the course. InSpring 2009, the investment topic was added. Various forms of stu-dent feedback were used to adjust the content of the course. In eachquiz and homework assignment, students were asked to report difficul-ties encountered and skills and knowledge learned. Dialogs with stu-dents during lectures offered opportunities to learn about their concernsand to plug in personal finance topics as vignettes. A survey was con-ducted at the end of Spring 2009. All 24 students enrolled in the coursecompleted the survey questionnaire. Table III summarizes the surveyresults.

    Questions 13 assess students debt situation and the effects of usingfinancial applications on their learning. The results show that 71% ofthe students had a student loan. Most of them found that the mortgagecalculator application helped them learn programming and debt man-agement. The effects of the other financial applications used in the re-

    Fig. 3. Grades distribution and GPA trend in the redesigned OOP course.

    designed course were not surveyed, but feedback showed that they hadpositive effects on learning both programming and financial literacy.

    The remaining questions assess the interests of students in using theirprogramming skills and computer tools to improve personal financialmanagement. Most students responded positively, indicating that theintegration of financial topics into the course was a good strategy tomake the course interesting and relevant to the students. The resultsof the last two questions were consistent with the expected primaryfinancial concerns of students. The course only touches on investmenttopics.

    The survey results confirmed that the integration of financial topicsinto the OOP course positively contributed to student learning of bothfinancial literacy and programming. The approachs effectiveness isalso reflected in student grades. Fig. 3 shows the grades distributionand GPA trend since the redesign of the course. The same instructorhas been teaching the course since Fall 2006.

    Prior to the redesign, the GPA of the course was between 2.0 and2.4. The grades distribution was similar to that of Spring 2008; therewere students in each letter grade category, and the dominant grade wasB. Since the redesign, the GPA has gone up from 2.48 in Spring 2008to 3.42 in Spring 2009. The grades distribution has also shifted to thehigher end.