CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Similar documents
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Pasupula, Nandikotkur Road, Kurnool

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics


Hrs Hrs Hrs Hrs Hrs Marks Marks Marks Marks Marks

CMPE 152 Compiler Design

CS 0449 Intro to Systems Software Fall Term: 2181

Deccan Education Society s FERGUSSON COLLEGE, PUNE (AUTONOMOUS) SYLLABUS UNDER AUTONOMY. FIRST YEAR B.Sc. COMPUTER SCIENCE SEMESTER I

S Y B Voc Software Development Syllabus

PESIT-BSC Department of Science & Humanities

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

CMPE 152 Compiler Design

CMPE 152 Compiler Design

Del Mar College Master Course Syllabus. UNIX System Administration Course Number: ITSC1358

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

MPATE-GE 2618: C Programming for Music Technology. Syllabus

C & Data Structures syllabus

Programming Fundamentals - A Modular Structured Approach using C++ By: Kenneth Leroy Busbee

CS/SE 153 Concepts of Compiler Design

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

CIS* Programming

Syllabus of ENPM 691: Secure Programming in C

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

Compulsory course in Computer Science

IS 331-Fall 2017 Database Design, Management and Applications

CprE 288 Introduction to Embedded Systems Exam 1 Review. 1

ESET 349 Microcontroller Architecture, Fall 2018

Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and

Updated: 2/14/2017 Page 1 of 6

AE Computer Programming for Aerospace Engineers

BLM2031 Structured Programming. Zeyneb KURT

C Programming SYLLABUS COVERAGE SYLLABUS IN DETAILS

Cowley College & Area Vocational Technical School

ITT Technical Institute. IT217P Programming in C++ II Onsite Course SYLLABUS

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization using C

Cleveland State University

CS503 Advanced Programming I CS305 Computer Algorithms I

EECE.2160: ECE Application Programming Spring 2017

EECE.2160: ECE Application Programming Spring 2019

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

IT 341 Fall 2017 Syllabus. Department of Information Sciences and Technology Volgenau School of Engineering George Mason University

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Programming for Problem Solving 105A L T P Credit Major Minor Total Time

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS COSC 1320: INTRODUCTION TO C++ PROGRAMMING COMPUTER TECHNOLOGY & OFFICE ADMINISTRATION DEPARTMENT

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

The University of Jordan. Accreditation & Quality Assurance Center. COURSE Syllabus

Introduction to Computer Systems

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

Class 9 Saturday, Feb 14

Kadi Sarva Vishwavidyalaya, Gandhinagar

COURSE OUTLINE. Prerequisites:

COWLEY COLLEGE & Area Vocational Technical School

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

Computer Science (Informática)

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

CS/SE 153 Concepts of Compiler Design

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Introduction to Programming System Design CSCI 455x (4 Units)

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

ESSEX COUNTY COLLEGE Business Division CIS 152 Internet Concepts Course Outline

IS Spring 2018 Database Design, Management and Applications

ISM 324: Information Systems Security Spring 2014

HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++

CS 3230 Object Oriented UI Development With Java Syllabus

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

ET285 Digital Electronics II [Onsite]

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017

COWLEY COLLEGE & Area Vocational Technical School

Math 2280: Introduction to Differential Equations- Syllabus

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

Review of the C Programming Language

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

COMP-202A: Introduction to Computing 1

ESET 369 Embedded Systems Software, Fall 2017

You must pass the final exam to pass the course.

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

Welcome. Orientation to online CPS102 Computer Science 2 (Java 2)

Big Sandy Community and Technical College. Course Syllabus

Langara College Spring archived

SYLLABUS / FIȘA DISCIPLINEI

Common Syllabus revised

Contents. Preface. Introduction. Introduction to C Programming

Syllabus Revised 08/21/17

Computer Science Technology Department

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015

Syllabus. Computer Science Information Technology 975. Information Storage and Management for Computer Networks

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

Langara College Spring archived

CS120 Computer Science I. Instructor: Jia Song

IT-2670: C/C++ PROGRAMMING LANGUAGE

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: BSc. in Computer Science. Laboratory (Practical) Field or Work Placement

Transcription:

CNG 140 C Programming 2012-2013 Fall Semester Syllabus Course Info 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. Credits 3+2 Category Content Departmental Prerequisites None Lecture Time and Place Thursday 13:40, 14:40, 15:40 [I-103] Tolga Can Lab Time and Place Tuesday 13:40, 14:40 [I-103] Uğur Dönmez Text Book A First Book of ANSI C, G.J. Bronson, 4 th Edition, Thomson Learning, 2007. ISBN: 1418835560 Reference Books Programming in ANSI C, Kumar & Agrawal, WEST Publishing Co., 1992. ISBN: 0-314-89563-9 The C Programming Language, Kernighan & Ritchie, 2 nd Edition, Prentice Hall, 1988. ISBN: 0131103628 Instructor Tolga Can, TZ-30, tcan@ceng.metu.edu.tr Teaching Assistant Uğur Dönmez, office and e-mail to be announced

Course Conduct 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 professional level C programming skills. The course is structured on the following materials: 1. Text book 2. Lectures 3. Labs 4. Homeworks The followings are to be mentioned: In a classical course the lectures and the text book are functionally equivalent. So, lectures are confined to cover the text book material in a verbal manner. This is not so for CNG 140. Though the intersection of the Text book and Lecture content is non empty, it is also not equal to the union of them. There is a good deal of content which is not covered in the lecture but is expected to be acquired through reading of the book. Also there is a good deal of content which is not stated in the book but introduced in the lecture. When attending lectures, it is expected that the student has read the part of the text book which will be announced weekly. Without having done this reading, it is not possible to follow the lectures and have an understanding of what is going on. Labs: Every week for two hours you will practice that week s subject in the lab under the guidance of the teaching assistant. There will be practice problems which you will solve in the lab. You will not be graded from your lab performance; however, attendance to the lab hours is mandatory. You need to attend 80% of the lab hours to be eligible to take the final exam. Otherwise, you will not be allowed to take the final exam and get a grade of NA from the course, which will also prevent you to take the re-sit exam. Homeworks: There will be 4 Homeworks throughout the semester. All of the homeworks will be C programming tasks and 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 Homework will be a blackbox test, your source code will be investigated for neatness and cheating. All the homeworks will required to be implemented

individually and any code sharing will be considered as cheating and you will get a 0 (zero) grade for that homework automatically. Usually you will have 2 weeks of time to turn your homeworks in. This time shall be used properly. The level of the homeworks are so that a hard work on the last 2-3 days will not suffice. You are strongly advised to start concentrating on the homework right after you received it. Lectures: Attendance to lectures is mandatory. Attendance will be taken at the beginning of each hour. In order to be eligible to take the final exam, you need to attend 70% of the lecture hours. Otherwise, you will get a grade of NA automatically which will not allow you to take neither the final exam nor the resit exam. Course Outline 1. General Overview of Programming 2. Sequential Structure o Data Types and Classes of Data o Arithmetic and Logical Operators and Expressions o Assignment (concept of l-value, r-value) o Statements o Grouping of expressions and statements o Basic I/O o Type Conversion (Dynamic, Explicit) 3. Selective Structure o Conditional Expression and Statements o Nested Conditionals o Multiway Conditional 4. Repetitive Structure o while loop o do while loop o for loop o Nested Loops o Loop Interruption break, continue statements 5. Functions o Function Definition o Function Call o Function Prototypes (header files) o Storage Classes (auto, static variables) o Separate Compilation and Data Abstraction o Recursion 6. Arrays and Pointers o Basics of Pointers o Array Pointer Referencing Duality o Strings o Dynamic Memory Management o Function and Pointers (call-by-reference)

o Multidimensional Arrays and Pointers o Pointers to Pointers 7. Structures and Unions o Basics of Structures o Structures and Functions o Structures and Arrays o Structures Containing Pointers (self-referential structures) o Unions 8. Advanced Use of the Preprocessor o This will be introduced in parallel to the topic of 'Structures'. 9. Operations on Bits o Bitwise Logical Operators o Bitwise Shift Operators o Bit-fields 10. File Processing o File Access (sequential) o Formatted I/O o Characterwise and Bytewise I/O o Random File Access Weekly Coverage Week-1 o Info on course conduct o Where is C in the space of programming paradigms o BNF notation o Basic layout of a C program o Basic types, Identifiers, Variables, 1-Dim arrays, Constants, sizeof() o Simple use of #define macro o Naming conventions o Assignment operator Week-2 (Week-1 continued) o Info on course conduct o Where is C in the space of programming paradigms o BNF notation o Basic layout of a C program o Basic types, Identifiers, Variables, 1-Dim arrays, Constants, sizeof() o Simple use of #define macro o Naming conventions o Assignment operator Week-3 o Operators, Boolean operators o Concept of 'side effect', Church-Rosser property, overflow o Precedence, associativity o l-value, r-value, ++ o Casting (auto, user demanded)

Week-4 o Conditional expression o Statements in C o if statement o Repetitive statements: while, do-while, for o switch statement o Unconditional branching, goto Distribution of Homework #1 Week-5 o Functions o Recursion o Dynamic vs Static binding, auto/static variable o Internals of a function call: Activation record o Modular programming (Header file, external variable and functions) o Separate Compilation and Data Abstraction o 2-Dim arrays Week-6 (Week-5 continued) o Functions o Recursion o Dynamic vs Static binding, auto/static variable o Internals of a function call: Activation record o Modular programming (Header file, external variable and functions) o Separate Compilation and Data Abstraction o 2-Dim arrays Distribution of Homework #2 Week-7 o Arrays, multidimensional arrays o Pointers o Pointer arithmetic o Pointer - Array relation Week-8 o Dynamic Memory Management (malloc, realloc,free) o Function and Pointers (call-by-reference) o Multidimensional Arrays and Pointers Midterm Examination (November 22) (Week 9) Week-10 o Strings o Examples on pointers and strings

Distribution of Homework #3 Week-11 o Structures o Preprocessor, define macro o typedef o [Example: linked lists] Week-12 o More on structures, variable length structures o Union o Bitwise operations Distribution of Homework #4 Week-13 Week-14 o Streams, Files o Sequential, Random access o Raw (binary) mode o Data portability, Persistence o Semester overview o More examples on pointers, strings, functions Grading Policy Homeworks 40% Midterm Exam 30% Final Exam 30% If you are caught cheating in an exam, you will get a grade of 0 (zero) for that exam. You must attend 80% of the labs and 70% of the lectures in order to be eligible to take the final exam. Otherwise, you will get a grade of NA from the course.