CIS 1847 C Programming
4 Credit Hours
Student Level:
This course is open to students on the college level in either the Freshman or Sophomore year.
Catalog Description:
CIS1847 - C Programming (4hrs.)
An introductory course to give computer science majors an introduction to programming in C. Applications will be created using a structured programming approach. Object oriented topics in C++ will be covered. Various problems will be solved using C.
KRSN: n/a
Course Classification: Lecture
Prerequisites:
NONE
Co-requisites:
NONE
Controlling Purpose:
This course is offered to teach programming skills in C to students. The basic constructs learned in this course will apply to any programming language (with slight modifications).
Learner Outcomes:
Upon completion of the course, the student will:
1. Explain key programming concepts such as variables, data types, control structures, functions, arrays.
2. Design and implement basic algorithms for solving common computational problems. Students will be able to write, test, and debug programs using appropriate syntax and best practices in a programming language (e.g., Python, Java, C++).
3. Demonstrate proficiency in using conditional statements (if-else) and loops (for, while) to control program flow.
4. Demonstrate proficiency in using conditional statements (if-else) and loops (for, while) to control program flow.
5. Create and use functions to organize and modularize code, applying principles of reusability and abstraction.
6. Write programs that handle basic user input and display output, including file I/O operations.
7. Demonstrate knowledge of fundamental data structures, such as arrays and/or lists, and apply them effectively in problem-solving.
8. Use structured problem-solving techniques to decompose complex problems and develop effective, efficient solutions through programming.
Unit Outcomes for Criterion Based Evaluation:
The following defines the minimum core content not including the final examination period. Instructors may add other content as time allows.
UNIT 1: INTRODUCTION TO COMPUTERS, THE INTERNET AND THE WORLD WIDE WEB
Outcomes: Upon completion of this unit, the student will understand what computers are, how they work and how they are programmed. Also, the student will understand the notion of structured programming and why this set of techniques has fostered
a revolution in the way programs are written.
- Understand basic computer concepts.
- Become familiar with different types of programming languages.
- Become familiar with the history of the C programming language.
- Become aware of the C Standard Library.
- Understand the elements of a typical C program development environment.
- Appreciate why it is appropriate to learn C in a first programming course.
- Appreciate why C provides a foundation for further study of programming languages in general and of C++, Java and C# in particular.
- Become familiar with the history of the Internet and the World Wide Web.
UNIT 2: INTRODUCTION TO C PROGRAMMING
Outcomes: Upon completion of this unit, the student will have a concise introduction to writing C programs and understand decision-making and arithmetic operations.
- Be able to write simple computer programs in C.
- Be able to use simple input and output statements.
- Become familiar with fundamental data types.
- Understand computer memory concepts.
- Be able to use arithmetic operators.
- Understand the precedence of arithmetic operators.
- Be able to use simple decision-making statements.
UNIT 3: STRUCTURED PROGRAM DEVELOPMENT IN C
Outcomes: Upon completion of this unit, the student will be introduced to algorithms for solving problems, control statements:
sequence, selection, and repetition.
- Understand basic problem-solving techniques.
- Be able to develop algorithms through the process of top-down, stepwise refinement.
- Be able to use the “if” selection statement and if…else selection statement to select actions.
- Be able to use the while repetition statement to execute statements in a program repeatedly.
- Understand counter-controlled repetition and sentinel-controlled repetition.
- Understand structured programming.
UNIT 4: C PROGRAM CONTROL
Outcomes: Upon completion of this unit, the student will be introduced to more control statements: for and switch. Also, the students will understand the logical operators
- Be able to use the “for” and do…while repetition statements.
- Understand multiple selection using the switch selection statement.
- Be able to use the break and continue program control statements.
- Be able to use the logical operators.
UNIT 5: C FUNCTIONS
Outcomes: Upon completion of this unit, the student will be able to understand the design and construction of program modules.
- Understand how to construct programs modularly from small pieces called functions.
- Introduce the common math functions available in the C standard library.
- Be able to create new functions.
- Understand the mechanisms used to pass information between functions.
- Introduce simulation techniques using random number generation.
- Understand how to write and use functions that call themselves.
UNIT 6: C ARRAYS
Outcomes: Upon completion of this unit, the student will understand the structuring of data into arrays of related data items of the same type.
- Introduce the array data structure.
- Understand the use of arrays to store, sort and search lists and tables of values.
- Understand how to define an array, initialize an array and refer to individual elements of an array.
- Be able to pass arrays to functions.
- Understand basic sorting techniques.
- Be able to define and manipulate multiple subscripted arrays.
UNIT 7: C POINTERS
Outcomes: Upon completion of this unit, the student will understand pointer operators; call by reference, pointer expressions, pointer arithmetic, the relationship between pointers and arrays, arrays of pointers, and pointers to functions.
- Understand pointers and pointer operators.
- Be able to use pointers to pass arguments to functions by reference.
- Understand the close relationships among pointers, arrays and strings.
- Understand the use of pointers to functions.
- Be able to define and use arrays of strings.
UNIT 8: C CHARACTERS AND STRINGS
Outcomes: Upon completion of this unit, the student will understand character and string processing functions available in C’s libraries.
- Be able to use the functions of the character handling library (ctype).
- Be able to use the string and character input/output functions of the standard input/output library (stdio).
- Be able to use the string conversion functions of the general utilities library (stdlib).
- Be able to use the string processing functions of the string handling library (string).
- Appreciate the power of function libraries as a means of achieving software reusability.
UNIT 9: C FORMATTED INPUT/OUTPUT
Outcomes: Upon completion of this unit, the student will understand how to use the powerful formatting capabilities of print f and scan f.
- Understand input and output streams.
- Be able to use all print formatting capabilities.
- Be able to print with field widths and precisions.
- Be able to use formatting flags in the print format control string.
- Be able to use literals and escape sequences.
UNIT 10: C STRUCTURES, UNIONS, BIT MANIPULATIONS AND ENUMERATIONS
Outcomes: Upon completion of this unit, the student will understand how to use structures, unions, bit manipulations and enumerations in a C program.
- Be able to create and use structures, unions and enumerations.
- Be able to pass structures to functions by value and by reference.
- Be able to manipulate data with the bitwise operators.
- Be able to create bit fields for storing data compactly.
UNIT 11: C FILE PROCESSING
Outcomes: Upon completion of this unit, the student will understand how to process text files with sequential access and random access.
- Be able to create, read, write and update files.
- Become familiar with sequential access file processing.
- Become familiar with random-access file processing.
UNIT 12: C DATA STRUCTURES
Outcomes: Upon completion of this unit, the student will understand the techniques used to create and manipulate dynamic data structures.
- Be able to allocate and free memory dynamically for data objects.
- Be able to form linked data structures using pointers, self-referential structures and recursion.
- Be able to create and manipulate linked lists, queues, stacks and binary trees.
- Understand various important applications of linked data structures.
UNIT 13: C PREPROCESSOR
Outcomes: Upon completion of this unit, the student will understand the preprocessor directives.
- Be able to use #include for developing large programs.
- Be able to use #define to create macros and macros with arguments.
- Understand conditional compilation.
- Be able to display error messages during conditional compilation.
- Be able to use assertions to test if the values of expressions are correct.
UNIT 14: OTHER C TOPICS
Outcomes: Upon completion of this unit, the student will cover miscellaneous topics involved in C programming.
- Be able to redirect keyboard input to come from a file.
- Be able to redirect screen output to be placed in a file.
- Be able to write functions that use variable-length argument lists.
- Be able to process command-line arguments.
- Be able to assign specific types to numeric constants.
- Be able to use temporary files.
- Be able to process unexpected events within a program.
- Be able to allocate memory dynamically for arrays.
- Be able to change the size of memory that was dynamically allocated previously.
Unit 15: Debugging and Error Handling in C
Outcomes: Upon completion of this unit, the student will understand debugging techniques and error-handling strategies to write robust and reliable C programs.
- Identify and troubleshoot common syntax, runtime, and logic errors in C programs.
- Utilize debugging tools such as GDB (GNU Debugger) to analyze program execution.
- Implement structured error-handling techniques to improve program reliability.
- Understand how to use assertions and logging for debugging and validation.
- Apply best practices for writing error-resilient code.
Unit 16: Introduction to Embedded Systems Programming in C
Outcomes: Upon completion of this unit, the student will explore the fundamentals of embedded systems programming using C and understand how C is applied in hardware-based applications.
- Understand the role of C in embedded systems and low-level programming.
- Work with memory-mapped I/O and peripheral registers for hardware interaction.
- Develop simple firmware applications for microcontrollers.
- Optimize C programs for resource-constrained environments.
- Implement real-time constraints using timers and interrupts.
Projects Required:
Projects will vary according to the instructor.
Textbook:
Contact Bookstore for current textbook.
Materials/Equipment Required:
On-line Delivery: C Programming Language (free download from internet)
Attendance Policy:
Students should adhere to the attendance policy outlined by the instructor in the course syllabus.
Grading Policy:
The grading policy will be outlined by the instructor in the course syllabus.
Maximum class size:
Based on classroom occupancy
Course Time Frame:
The U.S. Department of Education, Higher Learning Commission and the Kansas Board of Regents define credit hour and have specific regulations that the college must follow when developing, teaching and assessing the educational aspects of the college. A credit hour is an amount of work represented in intended learning outcomes and verified by evidence of student achievement that is an institutionally-established equivalency that reasonably approximates not less than one hour of classroom or direct faculty instruction and a minimum of two hours of out-of-class student work for approximately fifteen weeks for one semester hour of credit or an equivalent amount of work over a different amount of time. The number of semester hours of credit allowed for each distance education or blended hybrid courses shall be assigned by the college based on the amount of time needed to achieve the same course outcomes in a purely face-to-face format.
Refer to the following policies:
402.00 Academic Code of Conduct
263.00 Student Appeal of Course Grades
403.00 Student Code of Conduct
Accessibility Services Program:
Cowley College, in recognition of state and federal laws, accommodates all students with a documented disability. If a student has a disability that will impact their ability to be successful in this course, please contact the Student Accessibility Coordinator for the needed accommodations.
DISCLAIMER: THIS INFORMATION IS SUBJECT TO CHANGE. FOR THE OFFICIAL COURSE PROCEDURE CONTACT ACADEMIC AFFAIRS.
|