CS 240: Programming in C
Fall 2022

Tuesday & Thursday 11:00AM – 12:15PM, M-02-0404

Spring 2023

Welcome to the exciting world of programming in C!

This page provides information on the CS 240 course for the fall semester of 2022. Please come back regularly during and after the course to check for updates on class notes, assignment deadlines, office hours etc. Note that we will have the Piazza for online discussions and announcement.


Instructor:

Aaditya Tamrakar
Email: Aaditya.Tamrakar001@umb.edu

TA: Prarthana Pratap
Email: prarthana.prathap001@umb.edu
Office hours: Mon, Wed 2:30 PM – 3:30 PM;
Zoom Link: https://umassboston.zoom.us/j/2240744800

Course Description:

C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is presented as both ageneral-purpose and machine-level language, mostly used for writing system programs.

Topics covered include: representation of integer and characterdata, bitwise operations, masking, memory allocation methods, pointers, dynamic data structures, file I/O,separate compilation, program development tools and use of debuggers.No courses required by the CS major, minor, or certificate may be taken pass/fail.

Textbook:

Brian Kernighan and Dennis Ritchie, The C Programming Language, 2nd Edition
Kimberly Nelson King, C Programming: A Modern Approach

Getting Ready:

  1. Sign up on Piazza for discussions regarding CS240. Link: piazza.com/umb/fall2022/cs2402
  2. Setup C development on your home PC. DevelopmentSetup (Note: I will update this guide soon).

Evaluation:

Class attendance is not required, but you must take the in-class tests in person. The total score consists of the following:

60%: Six homework assignments, 10% each.

15%: Three Quiz, 5% each.

25%: Final Exam.

We will have total 5 quizzes and 1 final exam. In the final grade the best 3 quiz scores will be used for calculation.

The total score is converted to a letter grade according to the following grades table


Class Sessions :

# Session Dates Topics Slides Sample Code
1 September 6 Introduction Slides #1 HelloWorld.c
2 September 8 Getting Started Slides #2 Programs
3 September 13 Constants, Variables Slides #3 Programs
4 September 15 Control Statements, Operators Slides #4 Programs
5 September 20 Functions, Scope, Storage Classes Slides #5 Programs
6 September 22 Operators, Header Files and Quiz 1 Slides #6 Programs
7 September 27 Pointers and Memory Allocation Slides #7 Programs
8 September 29 Strings Slides #8 Programs
9 October 4 Structures Slides #9 Programs
10 October 6 Input/Output, File Handling Slides #10 Programs
11 October 11 Review - Programs
12 October 13 Recursion, Quiz Slides #12 Programs
13 October 18 Recursion Contd. Slides #13 Programs
14 October 20 Review (HW1-2, Quiz1-2) - Programs
15 October 25 Preprocessors, Error Handling Slides #15 Programs
16 October 27 C Programs - Programs
17 November 1 Process Control Slides #17 Programs
18 November 3 Process Control, Quiz 3 Slides #18 Programs
19 November 8 Socket Programming Slides #19 Programs
20 November 10 Socket Programming, Quiz 4 Programs
21 November 15 Socket Programming Programs
22 November 17 C Programs Programs
23 November 22 Review: Pointers Slides #23 Programs
24 November 29 Review: Strings Slides #8 Programs
25 December 1 Review: Structures Slides #9 Programs
26 December 6 Final Project, Review Final Project Programs
27 December 8 Review, Quiz 5 - -
28 December 13 Git, Version Control, Final Exam Review Slides #28 -
29 December 20 Final Exam Exam Solutions -


Assignments:

Course policies for Homeworks

Homeworks Post Date Due Date
Homework #1 September 15 17:00 September 29
Homework #2 October 6 17:00 October 13
Homework #3 October 20 17:00 October 30
Homework #4 November 1 17:00 November 15
Homework #5 November 22 17:00 December 1
Homework #6 December 1 17:00 December 15
Final Project (Optional) December 6 17:00 December 17



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:life_on_campus/student_conduct

Reserve Clause:

The instructor reserves the right to make changes in the syllabus when necessary to meet the learning objectives, to compensate for missed classes, schedule changes, or hardware, software, and network failures, or for other legitimate reasons.