0% found this document useful (0 votes)
11 views4 pages

CNG140 Spring 2024 2025 Syllabus

The syllabus outlines the CNG 140 C Programming course, which focuses on advanced programming concepts using C, including data structures, recursion, and dynamic memory management. The course includes lectures, lab sessions, and assessments such as practical assignments, quizzes, and exams, with a strong emphasis on attendance and academic integrity. Instructors and teaching assistants are provided, along with a detailed course outline and grading criteria.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views4 pages

CNG140 Spring 2024 2025 Syllabus

The syllabus outlines the CNG 140 C Programming course, which focuses on advanced programming concepts using C, including data structures, recursion, and dynamic memory management. The course includes lectures, lab sessions, and assessments such as practical assignments, quizzes, and exams, with a strong emphasis on attendance and academic integrity. Instructors and teaching assistants are provided, along with a detailed course outline and grading criteria.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Syllabus

Computer Engineering Program


CNG 140 C Programming (3-2) 4
(MUST Course)

Credits/ECTS:
(3-2) 4 / 4

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

Instructors:
Dr. Yeliz Yesilada Office: S-223 Phone: x-2994 email: [email protected] [Section 1]
Dr. Idil Candan Office: S-135 Phone: x-2963 email: [email protected] [Section 2, 3 & 4]
Dr. Muhammad Toaha Raza Khan Office: S-137 Phone: x-2965 email: [email protected] [Section 5]

Lecture Hours:
Section 1: Monday, 08:40-10:30 [TZ-20] && Wednesday, 13:40-14:30 [I-103]
Section 2: Monday, 08:40-10:30 [TZ-07] && Wednesday, 13:40-14:30 [I-106]
Section 3: Tuesday, 15:40-17:30 [TZ-20] && Wednesday, 12:40-13:30 [I-103]
Section 4: Wednesday, 08:40-10:30 [TZ-07] && Thursday, 12:40-13:30 [I-103]
Section 5: Monday, 08:40-10:30 [T-105] && Wednesday, 13:40-14:30 [I-104]

Laboratory Hours:
Section 1: Friday, 10:40-12:30 [I-103]
Section 2: Friday, 10:40-12:30 [RZ-03]
Section 3: Friday, 13:40-15:30 [I-103]
Section 4: Friday, 13:40-15:30 [I-104]
Section 5: Friday, 13:40-15:30 [I-106]

Teaching Assistant:
Ali Shafique, email: [email protected]
Burak Sarpkaya, email: [email protected]
Sameh Algharabli, email: [email protected]
Suleiman T. Suleiman: email: [email protected]
Zeycan Demirağ: email: [email protected]

Textbook:
• Gary J. Bronson, A First book of ANSI C, Fourth Edition, 2007, ISBN: 9781418835569.
• Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition, 1988, Pearson, ISBN:
0131103628.

Course Prerequisites:
None officially but CNG111 is a must as unofficial prerequisite. Students are strongly not recommended to take CNG140
if they did not pass CNG111.

Learning Outcomes:
At the end of this course, students will be able to:
1. 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.
2. Differentiate computational evaluation of expressions from mathematical evaluation due to concepts such as
overflow, side-effect, and truncation.
3. Understand and apply structured programming concepts by elaborating on sequential, selective, repetitive
structures, such as statements, if/switch/case statements, and for/while statements.
4. 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.
5. Check the correctness of a given program in terms of compile-time and run-time behavior.

1
6. Remember and use widely used C standard library functions, such as input/output functions and string functions,
in a program.
7. Critique on a code’s readability in terms of variable naming, modularity, indentation.
8. Interpret a computational problem specification and algorithmic solution and implement a solution in C to solve
that problem
9. Construct new composite data types such as 3D Point, Vector using struct and union.
10. Modify an existing solution to a problem to accommodate for extension and/or change of problem specifications.
11. Design a modular solution to a problem by decomposing it into smaller sub-problems.
12. Understand and apply pointer operations and dynamic memory management functions effectively.
13. Understand file operations using standard input/output function for reading and writing files.

Contribution of Course to Meeting the Professional Components:


CNG 140 is a non-introductory course for programming in C. So, both material wise and conduct wise it is structured as
an advanced course. C is the foundation stone of today's professional programming and there is no indication that this
will change in the near future. The purpose of this course is to equip our students with a professional level C programming
skill.
Relationship of Course to Student Outcomes:
Satisfies the following student outcomes (SOs) via the following Performance Indicators:
• SO (e) – PI-e1.
o Construct mathematical or logical models of computational problems.
• SO (k) – PI-k3.
o Use a well-known machine-oriented programming language, e.g. C and assembly languages, effectively.

Grading:
Practical Assignments: 10%
Quizzes: 20%
Midterm Exam: 35%
Final Exam: 35%

Course Outline (Tentative):


Week# Week Topic Assignments/Quizzes
1 17/02 Introduction: Introduction to programming fundamentals and
algorithms; introduction to C programming: Basic layout of a C
program, basic types, identifiers, variables, constants, naming
conventions, operators.
2 24/02 Flow of control: Statements, conditional expressions, if-statement,
if-else statements and Switch statements.
3 03/03 Repetition: While loop, for loop, do-while loop.
4 10/03 Algorithms with Loops: Nested Loops, solving problems with Quiz-1 (flow of
nested loops. control/repetition)
5 17/03 Functions I: Function and parameter declaration, returning a value, Practical Assignment – 1
standard library functions, internals of a function call, activation (Flow of control/Repetition
record. & Functions)
6 24/03 Functions II: Scope rules, variable storage classes, dynamic vs.
static binding, recursion.
7 31/03 31/03 -01/04 Bayram Holiday
8 07/04 Arrays: Array initialization, multi-dimensional arrays. Quiz-2 (Functions I/
Functions II)
9 14/04 Pointers: Pointers and addresses, pointer arithmetic, pointers and Midterm (Tentative Date:
arrays. 17 April 2025)

10 21/04 Pointers II: Dynamic memory management (malloc, realloc, free),


function and pointers (call by reference), multidimensional arrays
and pointers.
11 28/04 Strings: String fundamentals, library functions, examples on Quiz-3 (Arrays / Pointers I
pointers and strings. & Pointers II)

2
12 05/05 Data files: Declaring, opening and closing file streams, reading and
writing text, binary files.
13 12/05 Structures: Basics of structures, structures and functions, arrays of Practical Assignment – 2
structures. (Pointers, Functions,
Structures, Dynamic
Memory Allocation/Files)
14 19/05 Files, Arrays, Pointers, Structures: More on structures, variable Quiz-4 (Structures and
length structures, files, pointers to structures, arrays and Dynamic Memory
structures and bitwise operations. Allocation)
15 26/05 Revision
Final Exam Week (11 June – 23 June, 2025) Final

Development Environment:
You can use a simple text editor and a C compiler, for example GCC C or you can use an Integrated Development
Environment (IDE). You are strongly recommended to use CLion:
• Further details about CLion is available here: https://www.jetbrains.com/clion/
• For Free Educational Licenses, you need to fill in this form: https://www.jetbrains.com/shop/eform/students

Teaching Format – Face to Face:


This course will run as follows:
• Weekly two-hour lectures will be held in the lecture hall to first solve questions related to the topic covered in the
previous class and then introduce the new weekly theoretical concepts. These two-hour lectures will then be followed
by a one-hour lecture in the Computer lab, where we have a worksheet to practice (odd-numbered worksheets will
be used during lectures).
• Weekly two-hour labs will be held in a Computer lab, where worksheets will be available to practice the topics covered
in the class (even-numbered worksheets will be used during the labs).
Course Requirements and Policies:
• Attendance: We will take attendance in three ways:
1. Lecture sessions: Each section has two sessions of lectures (2 hours + 1 hour). We will take attendance
twice a week, once in each session. Students have to attend 70% of all the weekly lectures.
2. Lab sessions: Students have to attend at least 70% of all weekly lab sessions.
In order to be admitted to the final exam, students have to attend at least 70% of all of the above required
sessions. Students whose attendance is below 70% will not be admitted to the final exam and will get a grade of
NA from this course which will prevent them to the end-of-semester make-up exam. Valid medical leave with a
medical certificate from the METU NCC Health Center will count towards this attendance requirement.
• Assignments: There will be two practical assignments throughout the semester. All of the assignments will be C
programming tasks and some of them will be graded automatically (by means of a “grader” program). So, you
need to strictly adhere to the input/output specifications given in the homework description. Though the
input/output testing of an assignment will be a “blackbox test”, your source code will be investigated for neatness
and cheating. All the assignments will be required to be implemented individually and any code sharing will be
considered as cheating and you will get a 0 (zero) grade for that practical assignment automatically. We provide
the description of cheating below. Usually you will have 2 weeks of time to turn your assignments in. This time
shall be used properly. The level of the assignments is so that a “hard work on the last 2-3 days” will not suffice.
You are strongly advised to start concentrating on the assignment right after you received it. For all assignments,
oral test could also be performed with students to confirm their knowledge and assess their grades.
• Examinations/Quizzes: Exam details will be announced on ODTUCLASS. For all exams, oral test could also be
performed with students to confirm their knowledge and assess their grades. If students do not attend both
midterm and final exams, they will automatically receive NA grade. Please refer to makeup exam policy below
for makeup exams.

3
Makeup Exam Policy:
There will be no make-up exams unless the student has a valid medical leave approved by the METU NCC Health Center.
Students who provide a valid medical leave approved by the METU NCC Health Center will be eligible for a makeup
examination, subject to the following regulations:
a. There will be a single makeup exam.
b. The makeup examination will be conducted after the final exams at the end of the semester.
c. The makeup examination will be comprehensive and can cover all topics addressed throughout the semester,
regardless of the specific exam missed (e.g., quizzes, midterm, final).
d. The grade obtained in the comprehensive makeup examination will replace the grade of the missed assessment.
e. In the unlikely cases where a student missed multiple exams with valid medical documentation, the grade of the
makeup exam will replace the grades of all the missed elements.
Cheating:
Full description of cheating, please refer to https://ncc.metu.edu.tr/res/academic-code-of-ethics, but here we provide a
description for assignments/exams/quizzes in this course. The following will be considered as cheating:

1. Providing information to or receiving information from others in the exams/quizzzes,


2. Working with other students in assignments/exams/quizzes where teamwork is NOT allowed (Working together
is limited to brainstorming only. The “effort” in the assignments should belong completely to the student),
3. Submitting homework/exam/quizzes, taken partially or entirely from others or from a source (book, internet,
paper, etc),
4. Submitting assignment/exam, taken partially or entirely from a previously graded work,
5. Using generative AI tools to generate solutions and/or presenting generative AI solutions as one's original work
will also be considered cheating.

Professionalism and Ethics:


Students are expected to complete the assignments/exams on their own. Sharing your work with others, uploading the
assignment/exam questions to the online websites for seeking solutions, and/or presenting someone else's
work/solution as your own work will be considered cheating. In addition, using generative AI tools to generate solutions
and/or presenting generative AI solutions as one's original work will also be considered cheating.
For a comprehensive cheating definition, please refer to: https://ncc.metu.edu.tr/res/academic-code-of-ethics. When a
breach of the code of ethics occurs (cheating, plagiarism, deception, etc.), the student will be added to the BLACK list,
and the instructor can apply one of the following.
1. Perform an oral or written test for the students to confirm their knowledge and assess their grades. If the
follow-up exam (oral/written) results in failure, the instructor can apply one of the other items below.
2. Give a "zero" grade directly for the relevant exam/assignment,
3. Give a "zero" grade for a larger part or all of the assignments,
4. Give a failing letter grade for the course,
5. Forward the case to the discipline committee.

Prepared by: Yeliz Yesilada, Idil Candan and Muhammad Toaha Raza Khan Date: February, 2025

You might also like