CENG229 C PROGRAMMING

Course Code:5710229
METU Credit (Theoretical-Laboratory hours/week):4 (3.00 - 2.00)
ECTS Credit:6.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Prof.Dr. GÖKTÜRK ÜÇOLUK
Offered Semester:Fall Semesters.

Course Objectives

At the end of this course, the students will be able to learn and use the C programming language to design and implement advanced computer programs.

 

To be more specific, at the end of this course, students will be able to:

  • Understand basic data types such as int, float and arrays and understand how different types of data can be represented and used in computational expressions.
  • Differentiate computational evaluation of expressions from mathematical evaluation due to concepts such as overflow, side-effect, and truncation.
  • Understand and apply structured programming concepts by elaborating on sequential, selective, repetitive structures, such as statements, if/switch/case statements, and for/while statements.
  • Understand the run-time behavior of a program in terms of memory management and function execution and apply their knowledge on run-time behavior of a program for effectively determining the outcome of a program.
  • Check the correctness of a given program in terms of compile-time and run-time behavior.
  • Remember and use widely used C standard library functions, such as input/output functions and string functions, in a program.
  • Critique on a code’s readability in terms of variable naming, modularity, indentation.
  • Interpret a computational problem specification and algorithmic solution and implement a solution in C to solve that problem.
  • Construct new composite data types such as 3D Point, Vector using struct and union.
  • Modify an existing solution to a problem to accommodate for extension and/or change of problem specifications.
  • Design a modular solution to a problem by decomposing it into smaller sub-problems.
  • Understand and apply pointer operations and dynamic memory management functions effectively.
  • Understand file operations using standard input/output function for reading and writing files.

Since this course is offered exclusively to other departments, the link to the program education objectives (PEO) is omitted.


Course Content

C Programming; constants, variables, expressions, statementes; selective structures; repetitive structures and arrays; functions and recursive programming; pointers, strings and multi-dimensional arrays; structures and unions; dynamic memory management&linked-lists; bit-wise operations; file processing. (Offered to non-CENG students only)


Course Learning Outcomes

The course is going to support the following student outcomes defined in ABET General Criterion 3 for engineering programs:

 

a) an ability to apply knowledge of mathematics, science, and engineering

b) an ability to design and conduct experiments, as well as to analyze and interpret data

c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health, and safety, manufacturability, and sustainability

d) an ability to function on multidisciplinary teams

e)  an ability to identify, formulate, and solve engineering problems

f) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice


Program Outcomes Matrix

Contribution
#Program OutcomesNoYes
1An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
2An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
3An ability to communicate effectively with a range of audiences
4An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
5An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
6An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
7An ability to acquire and apply new knowledge as needed, using appropriate learning strategies