Asee peer logo

Utilizing Programming Projects In A Freshmen Programming Course

Download Paper |

Conference

2007 Annual Conference & Exposition

Location

Honolulu, Hawaii

Publication Date

June 24, 2007

Start Date

June 24, 2007

End Date

June 27, 2007

ISSN

2153-5965

Conference Session

FPD8 -- Introductory Courses

Tagged Division

First-Year Programs

Page Count

13

Page Numbers

12.1579.1 - 12.1579.13

DOI

10.18260/1-2--2308

Permanent URL

https://peer.asee.org/2308

Download Count

536

Request a correction

Paper Authors

biography

Steven Lehr Embry-Riddle Aeronautical University

visit author page

Masters in Aerospace Engineering and Masters in Software Engineering. Associate Professor in Freshmen Progam at Embry Riddle Aeronautical University College of Engineering and software consultant.

visit author page

biography

Christopher Grant Embry-Riddle Aeronautical University-Prescott

visit author page

Program Chair for the Freshmen Program Embry Riddle Aeronautical University College of Engineering

visit author page

Download Paper |

Abstract
NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

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).

Programming Projects

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. 10.18260/1-2--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