CS 240: Programming in C
Spring 2023

Tuesday & Thursday 11:00AM – 12:15PM, Wheatley W02-0158

Fall 2022

Welcome to the exciting world of programming in C!

This page provides information on the CS 240 course for the spring semester of 2023. 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: In-person Tuesdays, Thursdays 12:30 PM to 1:30 PM
Office Location: TA Office, CS department, 3rd floor McCormack
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/spring2023/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 January 24 Introduction Slides #1 HelloWorld.c
2 January 26 Data types, Variables and Constants Slides #2 Sample Code
3 January 31 Data types and Variables Slides #3 Sample Code
4 February 2 Storage Classes Slides #4 Sample Code
5 February 7 Operators Slides #5 Sample Code
6 February 9 Loops Slides #6 Sample Code
7 February 14 Unix Commands, Quiz-1 Slides #7 -
8 February 16 Functions Slides #8 Sample Code
9 February 21 Arrays Slides #9 Sample Code
10 March 2 Arrays and Pointers Slides #10 Sample Code
11 March 7 Strings Slides #11 Sample Code
12 March 9 Strings, Quiz-2 Slides #11 Sample Code
13 March 21 Structures Slides #12 Sample Code
14 March 23 Structures and Memory Allocation Slides #13 Sample Code
15 March 28 Recursion Slides #14 Sample Code
16 March 30 Guest Lecture Slides #15 -
17 April 4 Recursion Slides #14 Sample Code
18 April 6 Recursion Contd. Slides #14 Sample Code
19 April 11 File Handling Slides #15 Sample Code
20 April 13 File Handling Contd. Slides #15 Sample Code
21 April 18 Preprocessor and Error Handling Slides #16 Sample Code
22 April 20 Process Control and Threads Slides #17 Sample Code
23 April 25 Process Control and Threads Slides #18 Sample Code
24 April 27 Threads Contd. Slides #18 Sample Code
25 May 2 Socket Programming Slides #19 Sample Code


Assignments:

Course policies for Homeworks

Homeworks Post Date Due Date
Homework #1 February 16 17:00 February 28
Homework #2 March 11 17:00 March 28
Homework #3 March 31 17:00 April 10
Homework #4 April 11 17:00 April 20
Homework #5 April 21 17:00 May 1



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.