CS240: Programming in C
Summer 2018
Instructor

Ramin Dehghanpoor
Student Instructor
Course Description
C programming for programmers already knowledgeable in some high-level language (e.g., having taken one semester of introductory programming in Pascal, Java, Smalltalk, Lisp, etc.) . C is presented as both a general-purpose and machine-level language. Topics covered include representation of integer and character data, bitwise operations, masking, memory allocation methods, pointers, dynamic data structures, file I/O, separate compilation, program development tools and use of debuggers.
See the course syllabus and the Grading Criteria.
Prerequisites are CS110 (Introduction to Computing) or CS115L (Introduction to Java Part II)
Recommended Textbooks

2nd Edition, Kernighan & Ritchie, Prentice Halls

1st Edition, Graham Glass & King Ables, Prentice Hall
Grade Evaluation
Homework assignments
Lecture
Session | Topic | Reading | Dates | Slides |
---|---|---|---|---|
1 | Course overview, Syllabus, Introduction |
G&A ch. 2 K&R ch. 1.1 |
Tuesday, May 29 |
Lecture 1 |
2 | Variables, Symbolic Constants, for loop, Character I/O |
G&A ch. 1, 2 K&R ch.1.2- 1.5 |
Thursday, May 31 |
Lecture 2 |
3 | Arrays/Strings, Functions, Arguments, Pseudo Code, ASCII code |
K&R ch. 1.5.3 - 1.8 | Monday, June 4 |
Lecture 3 |
4 | ASCII code, Numbering Systems, GDB Debugger |
K&R ch. 1.9 | Tuesday, June 5 |
Lecture 4 |
5 | Scope of Variables, Names |
K&R ch. 1.10, 2.1 |
Thursday, June 7 |
Lecture 5 |
6 | Data types, Number systems, Arithmetic and Bit Operations |
K&R ch. 2.2, 2.3, 2.6 |
Monday, June 11 |
Lecture 6 |
7 | const, enum Operators |
K&R ch. 2.4, 2.5, 2.6 |
Tuesday, June 12 |
Lecture 7 |
8 | Type conversions, Increment and Decrement Operators |
K&R ch. 2.7- 2.11 | Thursday, June 14 |
Lecture 8 Sample exam 1 |
9 | Control flow, Functions |
K&R ch. 3, 4.1 | Monday, June 18 |
Lecture 9 |
10 | Multimodule Programs, MAKE |
G&A ch.12 K&R ch. 4.2 -4.6 |
Tuesday, June 19 |
Lecture 10 |
11 | Registers, Macros, Conditionals, Recursions |
K&R ch. 4.7- 4.11 | Thursday, June 28 |
Lecture 11 |
12 | Introduction to Pointers | K&R ch. 5.1- 5.4 | Monday, July 2 |
Lecture 12 |
13 | Pointers to Pointers, Memory Allocate /Free, Command Line Arguments |
K&R ch. 5.5- 5.10 | Tuesday, July 3 |
Lecture 13 |
14 | Pointers to Functions, Struct Array of struct, Pointers to struct |
K&R ch. 5.11, 6.1 - 6.4 |
Thursday, July 5 |
Lecture 14 |
15 | Self Referential structures, Table Look Up |
K&R ch. 6.5 - 6.6 | Monday, July 9 |
Lecture 15 |
16 | hw6, typedef, union, bit fields, multi- dimensional arrays, Review Declarations /Definitions/Memory Allocations |
K&R ch. 6.7 - 6.9, ch. 5.7 - 5.9, ch. A.8 |
Tuesday, July 10 |
Lecture 16 |
17 | UNIX grep/Pipes, Formatted I/O File Access, Error handling |
K&R ch. 7.1 - 7.8 | Thursday, July 12 |
Lecture 17 Sample exam 2 |
18 | HW7 and sample exam 2 | Monday, July 16 |
Lecture 18 | |
19 | sample final | Thursday, July 19 |
Sample final |
Resources
Accommodations
Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services, Campus Center, UL Room 211, (617-287-7430). The student must present these recommendations and discuss them with each professor within a reasonable period, preferably by the end of Drop/Add period.
Student Conduct
Students are required to adhere to the University Policy on Academic Standards and Cheating, to the University Statement on Plagiarism and the Documentation of Written Work, and to the Code of Student Conduct as delineated in the catalog of Undergraduate Programs. The Code is available online at: http://www.umb.edu/life_on_campus/policies/code/