COMP215

PROBLEM SOLVING WITH C

INSTRUCTOR: Tom Wheeler (Office in Room 208) 941-0430 x5211

twheeler@kc.devry.edu (DeVry e-mail address)

twheeler@tfs.net (HOME e-mail address)

http://www.kc.devry.edu/homepages/twheeler

 

CREDIT HOURS: 3.0

 

TEXT: Lafore, Robert, C Programming using Turbo C++ (Waite Group)

 

Major Topics Covered In Course:

 

  1. C Fundamentals: Problem-solving methodologies, compilers, environment, objects, expressions
  2. Flow Control: Loops, decisions, functions, variable lifetime and scope
  3. Data Handling: Memory models, memory management, pointers, arrays, character array handling, aggregate data types.
  4. Operating System I/O: Files, streams, graphics.
  5. Introduction to OOP: Overview of OOP (C++) features, including classes, construction/destruction, inheritance, polymorphism, overloading, and exception handling . (These topics are covered on a time-available basis and are not part of the terminal objectives of the course.)

 

This course is an introduction to the "C" programming language, with emphasis on building a strong foundation in the subject. The goal is to provide the student with a set of tools that will prove useful in more advanced problem-solving situations. Applications of "C" to technology are emphasized, as well as structured program design and troubleshooting. If time permits, an introduction to OOP concepts will be made.

 

ATTENDANCE

 

Daily class attendance is required. You are responsible for the material presented in all class sessions, regardless of your presence or absence. Absence of more than 6 class sessions is cause for dismissal from the course, with a grade of F. You are expected to be on time for every class meeting. If you will not be able to make it to class on time, please call the instructor in advance to make arrangements.

 

 

HOMEWORK

Homework is due at the beginning of class (xx00 UTC). Late homework is not accepted unless mitigating circumstances are present. If this is the case, bring documentation (court papers, note on doctor's letterhead, etc.) Homework carries the weight of one major exam (100 points) in the course. Failure to do homework will do severe damage to your grade. (UTC=Universal Coordinated Time, or Standard World Time.)

 

GRADING

There are 2 major exams, an unspecified number of quizzes given at random intervals, various homework assignments, and a final examination given in the 15th week of the course.Your grade will be determined as follows:

2 Major Exams @ 100 points each: 200 points

Quizzes/Homework : 100 points

Final Exam (Comprehensive): 150 points

450 points total for course

 

Note: There is no drop test, and makeup exams are not given. Alternate exam arrangements must be made at least 3 business days in advance of the scheduled examination. All examinations will be announced at least 1 week prior to administration. All students must take the final exam.

DETERMINATION OF LETTER GRADE FOR THIS COURSE

90 - 100 % = A 80 - 89 % = B 70 - 79 % = C 60 - 69 % = D

<60 % = F

 

 

PLAGIARISM AND OTHER FORMS OF CHEATING

Copying the work of another, and claiming it to be your own is plagiarism. This includes (but is not limited to) copying others homework, copying from a lab manual or textbook, or collusion. The minimum penalty for cheating in any form is a grade of zero for the element involved; in some cases, failure of the course and/or expulsion from the Institute will also result. All cases of misconduct will be documented and forwarded to Student Services for disciplinary consideration. The DeVry Student Handbook contains complete information on this topic.

MISCELLANEOUS INFORMATION

EMERGENCY PROCEDURES - Each classroom has a plaque (located near the door) with instructions for evacuation in the event of an emergency. The instructor will remain in charge of your class group should the situation arise.

FOOD or DRINK are not allowed in the classrooms and labs at DeVry.

 

HOMEWORK / READING ASSIGNMENTS

 

NOTE: Page references are from the assigned textbook unless otherwise noted.

 

TOPIC or TOPICS CHAPTER and PAGE NUMBERS

--------------------------------------------------------------------------

C FUNDAMENTALS: COMPILERS, FIRST C PROGRAM xv-xxi (Foreword and Intro)

Ch 1 pp 1-26

 

 

DATA OBJECTS: VARIABLES,DATA TYPES,EXPRESSIONS Ch 2 pp 27-67

BITWISE OPERATORS Ch 10 pp 365-378

 

 

FLOW CONTROL: LOOPS Ch 3 pp 67-98

DECISIONS Ch 4 pp 99-134

FUNCTIONS & VARIABLE SCOPE Ch 5 pp 135-178

 

 

DATA HANDLING: ARRAYS, CHARACTER STRINGS Ch 6 pp 179-226

POINTERS Ch 7 pp 227-273

STRUCTURES Ch 9 pp 312-347

 

OP SYSTEM I/O: FILES AND DEVICES Ch 13 pp 536-574

GRAPHICS I/O Ch 12 pp 462-532

 

 

 

 

TERMINAL COURSE OBJECTIVES - COMP215

 

 

At the conclusion of this course, the learner will be able to:

 

  1. List the steps in generating an executeable C program, and explain what is happening at each step.
  2.  

  3. Define each of the following:

 

  1. Source code
  2. Compiler
  3. Preprocessor directive
  4. STDIO.H / IOMANIP.H / IOSTREAM.H
  5. Object code
  6. Linker
  7. Standard Library
  8. Assembly code

 

  1. Describe the parts of a minimal "C" program.

 

  1. MAIN() "public" function
  2. Program blocks
  3. EXIT() "public" function and its effect on operation

 

  1. List the "C" data types and describe the characteristics of each, including the effects of type conversion operations.
  2.  

  3. Explain the operation of the "C" Standard Library functions:

 

  1. PRINTF() b) SCANF()

 

  1. Given a desired print format, write an appropriate PRINTF statement to satisfy the requirement. Or, given a PRINTF statement, evaluate the nature of the output.

 

7. List the "C" operators and give an example of proper usage for each one.

 

8. Given a "C" expression:

 

a) Describe the action of each operator and operand

b) Predict the result

 

 

9. Design or evaluate programs that use FOR, WHILE, and DO WHILE control structures.

 

10. Demonstrate how to declare and use a "C" function.

 

11. Give the scope and lifetime for each of the following variable types:

 

a) Global

b) Local

c) Static

d) Auto

e) Register

f) Extern

 

12. Explain how variables are passed to and from functions.

 

13. Write a prototype for a C function; and given a prototype for a C function, properly use it.

 

14. Explain the basic operation of pointers, including:

 

a) How a pointer is computed

b) How pointers may be used to pass arguments to and from functions

c) How the compiler interprets the * and & operators.

 

15. Explain the operation of arrays in "C," including:

 

a) The significance of the array name

b) How character strings are stored in arrays

c) Precautions for using local arrays in functions

d) The effects of using increment and decrement on pointers to arrays

e) How to use multidimensional arrays

f) How to calculate the memory usage of an array

 

16. Define what a "C" structure is, and:

 

a) How a structure may be initialized

b) How a structure may be accessed (direct)

c) How a structure may be passed to a function

1. Pointer

2. Copy

d) How a structure array is used

 

 

17. Define:

 

a) Operating System b) Disk Operating System

c) File d) File Size Indicator

e) File Pointer f) EOF (End-of-file)

g) Sequential Access h) Random Access

i) Record j) File Position Indicator

 

18. Design a program that uses sequential access to a file or group of files.

 

19. Design a program that uses random file access techniques.

 

20. Given the appropriate information about a "C" graphics library, utilize the library to create a simple video display graphic, such as a line drawing, function plot, or bar graph.

 

21. Given a problem statement, identify the steps required to solve the problem using an engineering design methodology.

 

22. Given a problem statement, develop an algorithm for a computer programming based solution to the problem using pseudocode or other tools.

23. Given an integrated C programming environment such as Borland Turbo C++, demonstrate an understanding of the environment by describing the basic functions of each of the integrated development tools.

24. Given a pseudocode program, compare and contrast the characteristics and functions of the three control structures used to write a structured program.

 

25. Given a programming algorithm written in pseudocode, modify the algorithm so that all functions are separated into independent and reusable modules.

26. Identify and describe the elements of a C program, including preprocessor directives, library/include files, data and variable types.

27. Given a simple but bug-ridden C program and a listing of the compiler errors generated, utilize the capabilities of the debugging environment provided with the C compiler in order to analyze and correct the "bugs."

 

28. Given a problem statement of moderate difficulty, develop an algorithm to solve the problem, organize the data using structures with multiple data types and/or arrays and then write, test and debug the corresponding C program implementing the solution.

29. Given the program solution of objective 8, redesign the program such that all data is passed to functions using pointer constants, pointer variables and structure pointers.

30. Given a problem statement of moderate difficulty, use a linked-file approach in order to demonstrate modular project management techniques.

31. Given a problem statement of moderate difficulty, incorporate a linkable function/file that will perform advanced input/output capability, such as file I/O, high-resolution multi-colored graphics and graphics mode text display of selected data and text.