Professional Documents
Culture Documents
1. INTRODUCTION
1.1 Purpose
I propose instructors teaching the C programming language more thoroughly explain computer
memory addressing before introducing pointers.
1.2 Background
I started my Computer Engineering degree at Iowa State University by taking Intro to Problem
Solving (using C), which I will refer to as CPRE 185. According to the course calendar, CPRE
185 covers the basics of the C programming language, starting from a basic introduction and
ending with memory pointers.[1] Interestingly, despite learning memory pointers in CPRE 185, I
did not go in-depth with memory until Embedded Systems I: Introduction, which I will refer to
as CPRE 288. Many of my peers and I struggled with pointers during our time in CPRE 185, and
struggled greatly with exams and homework surrounding the topic. Although the things we learn
about memory in CPRE 288 are crucial to the class and would not be replaced by introductory
knowledge in CPRE 185, I believe it is still important knowledge for learning pointers and
should therefore be taught in CPRE 185 as well as CPRE 288.
1.3 Scope
This proposal covers which aspects of memory addressing are important to learning pointers, as
well as why those aspects are important. It covers why and how these instructions can be taught
during half of a single CPRE 185 lecture. This proposal will not cover in-depth instruction of
how to teach pointers specifically, as the instruction being proposed is only an addition to, and
not a replacement of, the actual teaching of the pointers.
2. DISCUSSION
2.1 Approach
My proposed teaching of memory concepts will give introductory students more background
information that will help them better understand pointers. I would add a single half-lecture of
detailed information on the layout of memory in a computer and how that memory is addressed.
This half-lecture will take place immediately before students are introduced to memory pointers
to make the students aware that these two topics are relevant to each other. The focus of this
lecture will be on CPU registers, as registers are easier to define than general-purpose memory,
while being an almost identical concept. On top of this, there are fewer registers within a CPU
then there are memory addresses in a computer. This will help students become less confused
with the new concept. Once the concept of registers is taught, the professor can go on to explain
how the knowledge the students just gained can be applied to general-purpose memory, and
finally explaining how pointers can be used to manipulate that memory.
2.2 Result
This solution will provide students with knowledge that is not normally gained until their second
year, but can be very beneficial to know during their first year. In addition, giving this basic
instruction during their first year will make it less foreign to students when they enter CPRE 288
in their second year. Although not the main goal of this proposal, helping students succeed in
CPRE 288 is a legitimate and useful side effect of this knowledge.
Since the material for a lecture such as this is already available from other courses at Iowa State
University, all of the work will take place during the actual lecture and not during preparation.
The proposed half-lecture would introduce the basics of memory by:
Following this 22-minute introduction, the professor can transition into his normal instruction on
memory pointers.
3. RESOURCES
3.1 Personnel
According to the Iowa State University Schedule of Classes, Introduction to Problem Solving
(using C) is taught by two different professors, Thomas Earl Daniels and Swamy Dhoss
Ponpandi [2]. Both Daniels and Ponpandi are Ph.D. recipients, Daniles from Purdue
University[3] and Ponpandi from Iowa State University[4].
The proposed instruction does not require any additional facilities nor does it require any
additional equipment. It can be done in the same lecture hall as normal instruction using the
same presentation equipment. Programs using memory pointers can be compiled and run on
Windows and UNIX using GCC, the primary C compiler used at Iowa State University.
4. COSTS
4.1 Time
According to the Iowa State University Schedule of Classes, Ponpandi is currently teaching 35
credits worth of classes; 12 credits of those 35 are CPRE 185 sections. The Iowa State University
Academic Calendar shows that a class with 3 lectures weekly will meet approximately 44 times
during the semester. Using half of a lecture would take approximately 1.1364% of a courses
time. Since 34.3% of Ponpandi’s classes are CPRE 185, in total this half-lecture would account
for .3896% of his teaching time. Applying this same math to Daniles shows that 45.7% of his
teaching is CPRE 185 classes, so this instruction would account for .5188% of his teaching time.
4.2 Fiscal
According to The Des Moines Register’s Database of State Employee Salaries, Ponpandi is paid
$63,750.00 annually by the University. Taking .3896% of this salary shows that the University
would pay Ponpandi $248.37 for this instruction. Applying this math to Daniels’ $91,196 annual
salary, we see that the University would owe Daniles $567.87 for the instruction. In total, this
instruction would cost the University $816.24.
5. CONCLUSION
5.1 Summary
Memory pointers are an important part of the C programming language, but most of my peers
struggled to learn them effectively during our first exposure to them in CPRE 185. It was not
until CPRE 288 that my peers and I gained a complete understanding of the use and effectiveness
of memory pointers. Due to this, I propose that some instruction from CPRE 288 is to be taught
in CPRE 185 to give students a better understanding of the theory behind what they are being
taught.
5.2 Contact
For more information on this proposal and the topic being discussed, contact me at
atristan@iastate.edu, or call (651)-592-5863.
[1] http://www.ece.iastate.edu/~alexs/classes/2012_Fall_185/schedule.pdf.
[2] http://classes.iastate.edu/
[3] http://www.ece.iastate.edu/seminars-and-events/faculty-candidate-seminar-swamy-ponpandi/
[4] http://home.eng.iastate.edu/~daniels/
[5] http://www.registrar.iastate.edu/calendar
[6] http://db.desmoinesregister.com/state-salaries-for-
iowa/?searchterms%5Bcol3%5D=daniels+thomas+earl&searchterms%5Bcol2%5D=&searchter
ms%5Bcol6%5D=&searchterms%5Bcol11%5D=
[7] http://db.desmoinesregister.com/state-salaries-for-
iowa/?searchterms%5Bcol3%5D=PONPANDI+SWAMY+DHOSS&searchterms%5Bcol2%5D=
&searchterms%5Bcol6%5D=&searchterms%5Bcol11%5D=