Revised 4/2020
ITP 130 - C Programming I (4 CR.)
Course Description
Stresses instruction in fundamentals of structured programming using C. Course content emphasizes program construction, algorithm development, coding, debugging, and documentation of console applications. Lecture 4 hours per week
General Course Purpose
This course provides a comprehensive foundation sufficient for a student to write C programs from scratch in order to meet the minimum programming goals of students who which to learn structured programming techniques.
Course Prerequisites/Corequisites
None.
Course Objectives
Upon completion of this course, the student will be able to:
- Design, develop, code, and test simple C Programs
- Define primitive data types and use flow control statements
- Demonstrate the basics of structural coding techniques
Major Topics to Be Included
Basic Program Structure- Describe the sequential processing of programs by the computer
- Describe and code the main function
- Send output to the monitor
- Describe and define variables, data types, and character arrays (to store string data) in the program
- Receive input from the keyboard
- Describe and define C operators and precedence and how the computer evaluates expressions in program statements
- Write statements to declare and initialize integer, long, float, double, char, and Boolean variables
- Write statements to assign values to variables using expressions containing mathematical and Boolean operators
- Describe the sequential processing of programs by the computer
- Describe and code the main function
- Write code to send output to the monitor
- Describe and define variables, data types, and character arrays (to store string data) in the program
- Write code to receive input from the keyboard
- Describe and define C operators and precedence and how the computer evaluates expressions in program statements
- Describe and define decision logic (IF ELSE) to determine the next programming statement
- Describe and define looping logic (DO WHILE, WHILE, FOR) to perform repetitive programming statements
- Write functions that return values
- Describe and define the scope and duration of variables
- Write code that uses arrays of structures
- Write code to define and use multidimensional arrays defining, assigning values, and referencing individual elements.
- Describe the difference between pointer constants and pointer variables.
- Use pointer arithmetic and pointer arrays to reference multidimensional arrays.
- Use structures as programmer defined data types (Records).
- Write code to define and assign values to structure variables.
- Write statements to declare, create, and initialize a one dimensional array
- Describe the memory allocation for a one dimensional array including both the array reference and the memory for the array elements
- Write statements to fill an array with values
- Write statements to print out the contents of an array
- Write statements to copy one array to another array
- Write statements to access every element in an array for analysis for the data
- Describe the concept of parallel arrays
- Write statements to declare, create, and initialize multi-dimensional arrays
- Write code to pass arrays to functions
- Write statements to open a text file for reading
- Write statements to read data from a text file
- Write statements to close a text file
- Write statements to open a text file for writing
- Write statements to write data to a text file
- Write statements to create arithmetic expressions following order of precedence rules
- Write statements using Boolean operators: and (&), or (|), not (!), exclusive or (^)
- Write statements using the relational operators to include greater than, greater than or equal to, less than, less than or equal to, is equal to, and not equal to
- Write statements using the arithmetic operators to include add, subtract, multiply, divide, and modulus
- Write statements using the increment and decrement operators
- Write statements using pre and post increment and decrement operators
- Write statements using the short cut arithmetic assignment operators to include post and pre increments and decrements.
- Write statements incorporating cast operators for primitive data types in arithmetic expressions appropriately
- Write statements to declare named constants
- Write statements to complete console input and output using scanf and printf
- Write statements to validate input of data from the keyboard
- Describe the difference between value and variable parameters
- Write statements to pass simple variable types
- Write statements to pass pointers and structures into functions.
- Write statements to pass information back from a function
- Describe how to work with both global and local variables
- Describe the difference between length indicated and null terminated strings
- Write code to string to search for a substring
- Write code to string to replace a substring
- Describe how to change the case of a string
- Write code to read and write string variable to and from text files.
- Describe the difference between static and dynamic memory allocation.
- Write code to dynamically allocate and free memory for structures
Required Time Allocation Per Topic
In order to standardize the core topics of ITP 130 so that a course taught at one campus is equivalent to the same course taught at another campus, the following student contact hours per topic are required. Each syllabus should be created to adhere as closely as possible to these allocations. Of course, the topics cannot be followed sequentially. Many topics are taught best as an integrated whole, often revisiting the topic several times, each time at a higher level. There are normally 60 student-contact-hours per semester for a four credit course. (This includes 15 weeks of instruction and does not include the final exam week so 15* 4 = 60 hours. Sections of the course that are given in alternative formats from the standard 16 week section still meet for the same number of contact hours.)
Topic | Hours | Percentage |
Basic Program Structure and Flow | 10 | 16.7% |
Structures, Arrays and Pointers | 12 | 20.0% |
File Input and Output | 6 | 10.0% |
Primitive data types and operators | 8 | 13.3% |
Functions and Parameter Passing | 8 | 13.3% |
Strings | 4 | 6.7% |
Memory Allocation | 4 | 6.7% |
Exams | 8 | 13.3% |
Total | 60 | 100.0% |