June 24, 2007
June 24, 2007
June 27, 2007
12.1579.1 - 12.1579.13
topic was taught again using MATLAB. We eliminated the time consuming, complex elements of C – like base conversion, pointers, sorting algorithms, etc; and focused on the fundamental constructs common to all programming languages. To fill the gaps in teaching, we utilized programming projects. We no longer believed a student could become an expert C programmer in one semester, but rather believed in one semester we can introduce software engineering fundamentals, fundamentals of programming, and expose students to C and MATLAB. The course became nine weeks of programming concepts with C, two weeks of individual programming projects, and four weeks of MATLAB (the projects spanned six calendar weeks, though consumed two weeks of class time).
We used two programming projects to solidify the fundamentals taught throughout the semester. The first project is a project called introduction to structures. Students had to analyze, describe, and then modify a C program that was coded for them. The other project was an individual programming project where the student had to come up with the problem, solve it, and document the complete solution.
Programming Project 1 – Modification of Existing Code Base
After teaching arrays and strings, we introduced the first programming project, introduction to structures. Students were given code that was very modular and reinforced all the concepts taught prior in the semester. The program read data from a file into an array of structures of the student type defined, and provided menus to add, delete, and sort the array of students. Each time the data in memory was modified, the program wrote all the data back out to disk, allowing the program to save its state. Students were asked to download and run the program, print out the source code, and to write out the pseudo code for what that program did.
This was the first “big” program the students were exposed to. Prior to discussing the operations of the program, the students analyzed the program and submitted the pseudo- code. After discussing the operations of the program, we then asked the students what was missing from the program, allowing them to think about all the features that could be added to the program. Each student was then assigned to document one feature to add to the code, then write the test cases to verify that the feature was added correctly, and then write the code and verify the code was written correctly.
The project introduced an important concept of modifying existing code and “adding a feature” to an existing code base. Additionally it provided an opportunity for them to see a large program that actually performed something meaningful; and contained all the constructs previously taught in the class (loops, arrays, files, functions, strings, and structures). Exposing the students to structures helped the transition from procedural to object oriented for those students moving on to JAVA and pursuing a computer science minor or a software engineering degree. Additionally, many students utilized the code base and/or concepts for their course project.
Lehr, S., & Grant, C. (2007, June), Utilizing Programming Projects In A Freshmen Programming Course Paper presented at 2007 Annual Conference & Exposition, Honolulu, Hawaii. https://peer.asee.org/2308
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2007 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015