File - Shannon Hart

advertisement
Proposal to Create a Beginner’s Manual to Programming in C
for Students New to Programming
Executive Summary
Computer science students of UNT have struggled greatly in the course CSCE 1030, causing
many to drop the course. Although some of these students do retake the course, many students
change their major from computer science due to the class’s difficulty. This lowers the number
of possible UNT computer science major graduates, which in turn decreases the amount of
funding that the UNT College of Engineering receives annually.
I am proposing a manual that will aid students who are taking the course CSCE 1030. This
manual will cover each of the main concepts and functions that are covered in the course. Each
point will have an explanation as well as examples of code in which the concept or function is
utilized.
I can complete a draft of the manual by April 21. If you are satisfied with the manual, I will have
the final draft of the manual by April 23. The total cost for the manual, including the price of
labor, binding, and printing costs, is estimated to be about $926.99. However, I am willing to
donate the labor put into the creation of the manual, which reduces the cost of the manual to
$126.99.
Problem Definition
As a student who recently completed CSCE 1030, I witnessed firsthand the shockingly large
dropout rate that commonly occurs in the course. In my section of CSCE 1030, the class size
decreased to little more than 50% of its original size by the end of the semester. This course is
intended to simply introduce prospect computer science engineers to the basics of programming
in C. Thusly, this class covers only the fundamentals of programming; yet, many students cannot
succeed in the course. Having such high levels of dropout rates in such a foundational class is
detrimental to the number of computer science graduates at UNT.
Due to the large subject matter that is included in the course, the professors are forced to present
great amounts of new information to the students in a small amount of time. Consequently,
professors tend to unintentionally explain new concepts or functions too quickly for students to
understand completely. Additionally, students often complained that the professors spent too
much time explaining easily understood concepts and not enough on the more challenging
concepts. Appropriately, the students had a very difficult time completing labs and homework
and doing well on quizzes and tests. This eventually causes many students to fail the course
entirely, motivating many students to retake the course or drop the major entirely.
The purpose of this manual is to meet the learning needs of new programmers, give further
explanations and examples of concepts, emphasize on the more challenging material, and act as a
reference to the reader as they study the fundamentals of programming in C. Although the
manual is specifically aimed at mentoring students of UNT’s CSCE 1030 course, the manual will
also be useful to anyone wishing to learn the basics of programming in C. In relation to the
CSCE 1030 course, when a student is having a hard time understanding a specific concept, they
can refer to the manual’s explanation. The professors are, understandably, well-versed and
highly experienced professionals. In some situations, this makes it difficult for the professor to
recognize how detailed yet simplistic they must be in the explanation of new concepts. Thusly,
the manual will be written in oversimplified, easily understood terms along with many visual
examples of implementations for each concept.
Problem Solution
The manual will be aimed specifically at students who are new to the programming world and
may not have much, if any, previous experience on the subject. However, those who are not
enrolled in CSCE 1030, or an equivalent course, but wish to learn the basics of C programming
will be able to learn the basics of C from this manual as well. The manual will explain each
concept and function in C programming that is covered in CSCE 1030. Each concept and
function will have examples of implementations and visual aids (for the difficult concepts) that
the reader can refer to when studying or working on a program. Engineering professors typically
use complicated scientific terms that, although relevant and necessary in the class, usually
confuse students who are unfamiliar with the terminology. Thusly, as previously stated, the
manual will contain very simple language, with key terms explicitly defined, that the reader will
be able to easily understand. This alone will sharply reduce the student’s struggle in the course.
The manual will include the following sections:
1. Variables in C
a. Basic types
b. Variable declaration
c. Variable scope
d. Type conversion
e. typedef
2. Basic Input/Output
a. printf
b. scanf
c. getchar
d. putchar
3. C Preprocessor
a. #include
b. #define
4. Arithmetic Operators
a. Addition, subtraction, division, multiplication
b. Compound assignment operator
c. Increment and decrement
5. Comparison Operators
a. Equal to
b. Less than/less than or equal to
c. Greater than/greater than or equal to
6. Logical Operators
a. And
b. Or
c. Not
7. Conditionals
a. if, else if, and else statements
b. ? operator
c. switch statements
8. Loops
a. for loops
b. while loops
c. do-while loops
d. break
e. continue
9. Arrays
a. single dimensional arrays
b. multi-dimensional arrays
10. Strings
a. strlen
b. strcmp
c. strcat
d. strcpy
e. gets
f. puts
11. Functions
a. Calling function
b. Command line arguments
c. Function prototypes
d. Function parameters
e. Function return values
f. Multiple files
12. Other Data Structures
a. Structures
b. Unions
13. Pointers
a. Pointers and variables
b. Pointers and single dimensional arrays
c. Pointers and multi-dimensional arrays
d. Pointers and strings
e. Pointers and functions
f. Pointers and structures
e. Pointers and unions
14. File Input/Output
a. Opening/closing files
b. File handles
c. fprintf
d. fscanf
15. Dynamic Memory Allocation
a. sizeof
b. malloc
c. calloc
d. realloc
e. free
Qualifications
I took CSCE 1030 at UNT last semester (Fall of 2013). Therefore, I have recently experienced
the difficulty of the course myself; consequently, the challenges I faced with my peers are fresh
and easily recallable, which allows me to accurately focus my manual on the points that the
students greatly struggle with.
I passed the course with a high A and deeply enjoyed the course. As I further my computer
science education, I continue to take courses that utilize what I have learned in CSCE 1030. I
constantly use the functions and concepts taught in the course; consequently, I am very confident
in my knowledge of the implementation and definition of the points introduced in the course. I
am also in Technical Communications 2700, having already completed Technical
Communications 1700, and highly capable of creating a manual for public use.
Cost Estimate
The following table reflects the estimated cost of writing and printing the manual:
Tasks
Writing and Editing the Manual
Binding Costs
Printing Costs
Total Cost
Quantity
Cost
100 hours at $8.00 per
hour
1 manual
$800.00
250 pages at $0.49 per
page (front and back)
________
$122.50
$4.49
$926.99
I would not be able to construct this manual if it had not been for the wonderful instruction of my
engineering professors and TA’s. I would like to donate my time (the “Writing and Editing the
Manual” factor) put into the manual to show my appreciation for the UNT College of
Engineering program. This reduces the cost of the manual to just the $126.99 needed for the
actual printing and assembly of the manual.
The projected cost for this manual is merely a rough estimate. As the manual has yet to be
completed, the number of pages the manual will be is unknown. Therefore, the final cost may
vary from the price given above.
Conclusion
I am excited about the possibility of sharing this useful manual for future students. This manual
will encourage and aid students through the difficulties of learning such a challenging new
concept. I would deeply enjoy the opportunity to discuss this proposal with you at your
convenience. Please email me at shannonhart@my.unt.edu or call or text me at 817-308-4859.
Download