CS2110: Programming in C

Basic Information

Term: Spring, 2010      Time: MoWeFr 10 am - 10:50 am   Location: EBW 245

Instructor: Prof. Jianlin Cheng     Office: EBW 109    Office Hours: MoWe 9 am - 10 am     Phone: 882-7306  Email: chengji@missouri.edu

Lab Session (optional): 2 pm - 4 pm, MoWeTh Location: EBW 120

TA: Xin Deng (grader) and Xie Sun (lab instructor)  Office: EBW 239  Email: mu.cs2110@gmail.com   TA Office Hours: Mo 11 am - 12:30 pm and Th 9 am - 10 am

Text Book (required): The C programming language. Prentice Hall, 1988. [available at Amazon].

Syllabus

Class Schedule

Date Content and Reading Materials Assignment Reading Lab Exercise (optional)
May 14 Final project program, report, and peer review form due
May 13 Final exam, 10:30-12:30, EBW 245
May 5 Review for the final exam
May 3 C++ Introduction The content of this lecture won't appear in the final exam.
April 30 Chapter 7 Pages 162-168 Examples discussed in the class
April 28 Chapter 7 Pages 156-161 Examples discussed in the class
April 26 Chapter 7 Pages 151-156 Examples discussed in the class
April 23 Chapter 6 Exercise 6-5 (5 points, optional, bonus), 7-4 (5 points, optional, bonus). Due on May 2. Pages 145-149 Examples discussed in the class
April 21 Chapter 6 Pages 143-145 Examples discussed in the class
April 19 Chapter 6 Exercise 6-4 (30 points, due April 26). Fill out the Peer Evaluation Form to fairly assess the effort of the members of your project group (10 points, due on May 14). You may submit the form electronically or in hard copy. Pages 139 - 143 Examples discussed in the class
April 12 Chapter 6 Pages 127 - 132 Examples discussed in the class
April 9 Chapter 5 Pages 118 - 122 Examples discussed in the class
April 7 Chapter 5 Exercise 5-9 (20 points), Exercise 5-14 (20 points). Due 4/14 Pages 111 - 118 Examples discussed in the class
April 5 Chapter 5 Pages 111 - 115 Examples discussed in the class
March 26 Chapter 5 Pages 109 - 114 Examples discussed in the class
March 24 Chapter 5 Pages 107 - 110 Examples discussed in the class
March 22 Chapter 5 Pages 102 - 106 Examples discussed in the class
March 17 Chapter 5 Exercise 5-2 (20 points. only need to write getfloat program and don't need to answer the "what type" question), 5-3 (20 points), 5-4 (20 points), due March 26 Pages 98 - 103 Examples discussed in the class
March 15 Chapter 5 Pages 95 - 98 Examples discussed in the class
March 12 Midterm Exam
March 10 Midterm Reivew and Chapter 5
March 8 Chapter 4 Chapter 4, Pages 87 - 92 Examples discussed in class
March 5 Chapter 4 Chapter 4, Pages 83 - 88 Examples discussed in class
March 3 Chapter 4 Exercise 4-4 (10 points), 4-7 (10 points), 4-8 (10 points), 4-11 (10 points), 4-13 (optional, bonus points, 5 points), due 11:30pm, March 9 Chapter 4, Pages 80 - 86 Examples discussed in class
March 1 Chapter 4 Chapter 4, Pages 75 - 83 Examples discussed in class
Feb. 26 Project Description Exercise 4-1 (15 points), Exercise 4-2 (15 points), due 11:30 pm, March 2
Feb. 24 Chapter 4: Function and Program Structure Chapter 4, pages 71-75 Examples discussed in class.
Feb. 22 Chapter 4: Function and Program Structure Chapter 4, pages 67-72 Examples discussed in class.
Feb. 19 Chapter 3: Control Flow Exercise 3-1 (10 points, you only need to write a program and you may skip measuring the running time), Exercise 3-2 (20 points), Exercise 3-6 (15 points), due 11:30 pm, Feb. 23 Chapter 3, pages 60-66 Examples discussed in class.
Feb. 17 Chapter 3: Control Flow Chapter 3, pages 55-63 Examples discussed in class.
Feb. 15 Chapter 2: Types, Operators, and Expressions Chapter 2, pages 50-54 Examples discussed in class.
Feb. 12 Class was canceled due to snow
Feb. 10 Chapter 2: Types, Operators, and Expressions Chapter 2, pages 48-54 Examples discussed in class.
Feb. 8 Chapter 2: Types, Operators, and Expressions Exercise 2-3 (10 points), Exercise 2-4 (10 points), Exercise 2-5 (10 points), Exercise 2-6 (10 points), Exercise 2-7 (10 points), Exercise 2-10 (10 points). Due 11:30 pm, Feb. 13. Chapter 2, pages 43-50 Examples discussed in class.
Feb. 5 Chapter 2: Types, Operators, and Expressions Chapter 2, pages 40-48 Examples discussed in class.
Feb. 3 Chapter 2: Types, Operators, and Expressions Chapter 2, pages 35-42 Examples discussed in class.
Feb. 1 Chapter 1: Introduction Exercises 1-12 (10 points), 1-13 (10 points), 1-15 (10 points), 1-17 (10 points), 1-18 (10 points), 1-23 (optional, bonus points 15 points), due at 11:30 pm, Feb. 5 Chapter 1, pages 24-30 Exercises 1-14, 1-16, 1-19, Examples discussed in class.
Jan. 29 Chapter 1: Introduction Chapter 1, pages 28-34 Examples discussed in class.
Jan. 27 Chapter 1: Introduction Chapter 1, pages 17-24 Exercises 1-11, 1-13 and examples discussed in class.
Jan. 25 Chapter 1: Introduction Excise 1-5 on page 14 (10 points); Exercise 1-7 on page 17 (5 points); Exercise 1-9 on page 20 (10 points). Due 11:30 pm, Sun (Jan. 31), Email your programs (one .c file per excise) to mu.cs2110@gmail.com Chapter 1, pages 11-20 Exercises 1-4, 1-6, 1-8, 1-10 and examples discussed in class.
Jan. 22 Chapter 1: Introduction On page 13, Excise 1-3 (10 points). Due 11:30 pm, Wed (Jan. 27). Email your programs (one .c file per excise) to mu.cs2110@gmail.com Chapter 1, pages 5-15 Examples or excises covered so far.
Jan. 20 Syllabus and Chapter 1: Introduction No Chapter 1 exercises and examples in chapter 1

Lab Session

The course provides optional lab sessiions for students to practice programming skills under the supervision of the lab instructor Sun Xie. The programming environment in the lab is Linux.

Project

There is one team project spanning the entire course. Each team has four or five students. The project description is here. Team work is important for the course project and will be counted into final grade (see Syllabus for details). A peer evaluation form is available here.

Project report and program is due May 14, 2010 (Friday).

Exams

Midterm (covering Chapters 1-4): 3/12/2010, Friday.

Final: May 13, 2010, 10:30 - 12:30, Thursday, in EBW 245 according to the registrar's schedule.

Programming Resources

 
1. How to connect to a Linux / Unix server such as babbage.cs.missouri.edu?
   On Unix and Linux computers, use command "ssh".
   On Window, use a tool called "putty". You can download putty here.
   The lab has about 30 Linux computers, where you can do programming exercises and homework. A short Linux tutorial is here. 

2. How to transfer a file between my desktop and a Linux / Unix server?
   Use a ftp tool. On Linux you can use command "sftp". On Windows you can use a tool "WinSCP". You can downlod "WinSCP" here. 

3. How to edit / write a program. Any text editor (TextPad, Visual C++, Emacs, and vi)  will work. My favorite 
  text editor on Linux is vi. Here is a tutorial of vi.

4. How to compile and run a C program on Linux

    Here is an example of compiling and executing a C program (prog.c) on Linux (such as babbage.cs.missouri.edu):

    Compile a program (prog.c): 
    $gcc prog.c -o prog

    The name of the output executable is prog.

    Run a binary program:

    $./prog

    Here is a short tutorial about gcc. 

5. An open-source, cross-platform integrative development environment (IDE): CodeBlock, where you can write, compile, run and debug C/C++ programs.