CENG140 C PROGRAMMING

Course Code:5710140
METU Credit (Theoretical-Laboratory hours/week):4 (3.00 - 2.00)
ECTS Credit:4.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Prof.Dr. İSMAİL SENGÖR ALTINGÖVDE
Offered Semester:Spring 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.


Course Content

Advanced programming with C: storage and control structures, recursion and programming with dynamic data structures. Homeworks are required to run on Unix environment.


Course Learning Outcomes

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 predicting 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.

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