EE298 C Programming for Engineers


Wilkes Logo:

Engineering/Physics Department

Instructor:  David R. Carey                                                             

Email: david.carey@wilkes.edu 

Phone: 570-408-4807

Office: SLC-214

Office Hours: By Appointment

Textbook: C for Engineers and Scientists , Harry H. Cheng McGraw Hill, 2010.

Related Textbooks: (will not need to use)
Embedded C Programming and the Atmel AVR, 2nd edition, Barnett, Cox, O'Cull, Thompson, 2007.

Computer Organization & Design, Patterson & Hennessy, Morgan Kaufmann, 1998.
A Programmer's View of Computer Architecture, Goodman & Miller, Oxford University Press, 1993.
Introduction to Computer Systems: A Programmer's Perspective, Bryant & O'Hallaron, Prentice Hall, 2002.
Fundamentals of Embedded Software, Lewis, Prentice Hall, 2002.


C Programming Books: (may find these or similar books useful)

The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie, 2nd edition, Prentice Hall, 1988. This is a famous book (the second author is the original designer of the C language).

C: A Reference Manual, Harbison and Steele, Morgan Kaufmann, 1998. This is a standard reference; better as a reference than as an expository text.

Expert C Programming: Deep C Secrets, Peter Van Der Linden, Prentice Hall, 1994. This explains many of the more confusing aspects of C; helpful for even experienced C programmers.

Lecture Time and Location:  Wednesday 6:00 to 9:00 PM, SLC-216


Prerequisites: EGR 140 Computer Utilization in Engineering 


Objectives: To introduce students to C programming for engineering applications, memory utilization, I/O in the context of an application, elementary design flow/methodology, resource allocation, optimization, state machine based controllers, and real time constraints within the context of an application. This will be accomplished through applications laboratory exercises with computer controlled devices.


Everything in C can be implemented on typical processors in a fairly straightforward manner, and it is thus often considered a high-level assembly language. Similarly, it exposes some details of the underlying machine, e.g., how data is stored in memory. It is important to get experience in a variety of programming paradigms and languages. In order to emphasize the importance of code documentation, good code must be written so that others can understand it. This requires extensive documentation. In higher-level languages, code is usually easier to understand.


Lectures: You are responsible for all material covered in the textbook and in lecture, including any announcements made or special handouts distributed in lecture. If you must be absent during a given lecture, check with a friend to make sure you know what was covered.


Reading Assignments: Students are expected to read the relevant textbook chapters and all handouts by the assigned class period.  <o:p></o:p>


Computer Use:  Students are expected to use computers to do programming, analyses, to prepare reports, and to conduct out-of ¡Ìclass assignments. Computers will be used to analyze data, prepare engineering graphs for reports, and perform analytic studies. Knowledge of word-processing, spreadsheet, and analysis software (i.e., Word, Excel, Matlab, etc.) is required.


Homework: The weekly assignments represent by far the most important element of the course, and where you will learn the most. I encourage you to work on them in groups if you like; the assignments will occasionally be difficult and may require more than one head! However, be convinced in the depths of your soul that letting others do the work for you will lead to disaster at test time. A good technique for many students is to try the assignment individually, then to get together with a friend or in a group for the tough ones. Many years of experience have shown that students who do not work the assignments thoroughly do not really understand the material and perform poorly at test time. Reading the text is never sufficient! You are expected to do your homework assignments by their due dates and have them available in class. 





Introduction to C; elements of a C program; preprocessor directives; statements and expressions; examples of commonly used functions; assignment; formatting; data types; input/output redirection; programming.  Project Assignment


Simple data types; constants and variables; conversion between different data types.


Conditions; relational operators; logical operators; precedence rules; if, if-else, and switch statements.


Repetition and loops; while statement; for statement; increment and decrement operators; loop termination; nested loops; do-while statement; testing and debugging loops.


Top-down design approach; modular programming; user functions; library functions; function declaration and definition; pointers; interaction between functions; scope rules; programs with multiple functions.


Exam 1


Pointers and addresses; pointers and arrays; pointers and function arguments; pointer arithmetic.


Arrays; declaration and initialization of arrays; multi-dimensional arrays; searching and sorting arrays, passing arrays to functions.


String arrays; string library functions; substrings; concatenation; strings vs. characters, file input, file output.


Exam 2


Engineering applications, matrix manipulations, numerical integration and differentiation, numerical solution of equations, representing and computing with polynomials.


Recursion; recursive functions with array parameters.


Basics of structures; structures and functions; arrays of structures; assigning values to structure variables; linked lists, other dynamic structures, application to databases.


Exam 3


Project Presentation


Grading: You are welcome to discuss the assignments with other students or with the instructor after you have made an effort by yourself. However, you must turn in your own work, not work identical to that of another student. Be sure to credit at the top of your assignment anyone with whom you discussed ideas. It is an honor code violation to simply copy someone else¡Ùs work or refer to solutions from previous years.


If you miss an assignment or exam for a valid, verified emergency, see your instructor.  Letter grades will not be based on a curve but rather on the following fixed scale: 93% or higher 4.0, 92-87 3.5, 86-80 3.0, 79-70 2.5 69-60 2.0 . The advantage of the fixed scale is that you are not competing with other students to ¡∫get ahead of the curve.¡Ö  Everyone who works hard can do well in the class.  It is possible that the entire class can receive A¡Ùs (all scores would be 93% or better).  Those who do not do the work will score accordingly. There are five exams and the lowest 2 grades will be dropped. The following grading scheme will be used (* denotes group work):

Homework: 15%

Regular Laboratory Exercises: 25%

Laboratory Project*: 15%

Exam 1: (March 3, 2010), 15%

Exam 2:  (April  7, 2010), 15%

Exam 3: (May 5, 2010), 15%

TOTAL: 100%


This Page was last update: Monday, August 11, 2014 at 5:13:07 PM
This page was originally posted: 10/2/03; 10:00:08 AM.
Copyright 2017

This site is using the Adult Contemporary (red) theme.



This is a Manila Site