CS240: Programming in C

Summer 2018

Monday Tuesday Thursday 7:30 - 9:00 PM, M01-0417


Instructor

Ramin Dehghanpoor

Student Instructor

Office:
S-3-134
Office Hours:
Tuesday, Thursday 5:00-6:30PM or by appointment

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

The C Programming Language
The C Programming Language

2nd Edition, Kernighan & Ritchie, Prentice Halls

LINUX for Programmers and Users
LINUX for Programmers and Users

1st Edition, Graham Glass & King Ables, Prentice Hall


Grade Evaluation

Homework Assignments:
40% (7 homework assignments will be given)
Exams:
60% (2 exams and a final exam)
June 25th  ,        July 17th  ,        Final : July 24th Morning

Homework assignments

Assignment (PDF) Posted/Given on Due Date
HW1 May. 29, 2018 June. 4, 2018
HW2 June. 4, 2018 June. 12, 2018
HW3 June. 12, 2018 June. 19, 2018
HW4 June. 22, 2018 July. 2, 2018
HW5 July. 2, 2018 July. 10, 2018
HW6 July. 10, 2018 July. 17, 2018
HW7 July. 15, 2018 July. 23, 2018

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/