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: | Assist.Prof.Dr HAKAN YILDIZ |
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 Outcomes | No | Yes | ||
1 | An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics | ✔ | |||
2 | An 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 | ✔ | |||
3 | An ability to communicate effectively with a range of audiences | ✔ | |||
4 | An 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 | ✔ | |||
5 | An 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 | ✔ | |||
6 | An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions | ✔ | |||
7 | An ability to acquire and apply new knowledge as needed, using appropriate learning strategies | ✔ |