| Semester: | Fall 2011 |
| Room: | King 221 |
| Class Time: | Mon/Wed/Fri 1:30pm-2:20pm |
| Office Hours: | Tuesday, 3:00-4:30pm Wednesday, 2:30-4:00pm or by appointment |
| Professor: | Benjamin Kuperman |
| email: |
benjamin.kuperman AT oberlin edu Please include "cs241" in the subject. |
| AIM: | ProfKuperman |
| Office: | King 223B |
| Phone: | x58556 |
| WEEK | DAY | ANNOUNCEMENTS | READING | HW |
|---|---|---|---|---|
| 1 | Sep 05 | Labor Day | ||
| Sep 07 | Introduction and course overview | HW 0 | ||
| Sep 09 | Chapter 1 - Quick intro to C Makefiles |
|||
| 2 | Sep 12 | Chapter 2 - Types and operators | HW 1 | |
| Sep 14 | Last Day to Add/Drop (Sep 15) | |||
| Sep 16 | ||||
| 3 | Sep 19 | Chapter 3 - Control flow | HW 2 | |
| Sep 21 | GDB and Valgrind | |||
| Sep 23 | Chapter 4 - functions and scope | |||
| 4 | Sep 26 | |||
| Sep 28 | Chapter 5 - arrays, strings, and pointers | |||
| Sep 30 | HW 3 | |||
| 5 | Oct 03 | |||
| Oct 05 | Chapter 5 - command line arguments Chapter 5 - Multi-dimensional arrays |
|||
| Oct 07 | HW 4 | |||
| 6 | Oct 10 | Misc stuff about the homework | ||
| Oct 12 | Exam review | |||
| Oct 14 | Midterm Exam #1 [topics] | |||
| 7 | Oct 17 | Chapter 6 - structures | HW 5 | |
| Oct 19 | ||||
| Oct 21 | ||||
| Oct 24 | October Break (Oct 22-30) | |||
| Oct 26 | ||||
| Oct 28 | ||||
| 8 | Oct 31 | Chapter 7 - Input and Output | HW 6 | |
| Nov 02 | Midterm grades available (Nov 03) | |||
| Nov 04 | ||||
| 9 | Nov 07 | Last Day for P/NP, CR/NE, or Withdraw (Nov 08) |
Huffman compression | HW 7 |
| Nov 09 | Unix and Shell scripting | |||
| Nov 11 | ||||
| 10 | Nov 14 | |||
| Nov 16 | ||||
| Nov 18 | ||||
| 11 | Nov 21 | HW 8 | ||
| Nov 23 | ||||
| Nov 25 | Thanksgiving Break (Nov 24-27) | |||
| 12 | Nov 28 | Unix systems programming (i.e., system calls)
|
||
| Nov 30 | HW 9 | |||
| Dec 02 | ||||
| 13 | Dec 05 | |||
| Dec 07 | Midterm Exam #2 [topics] | |||
| Dec 09 | Kuperman out-of-town | |||
| 14 | Dec 12 | Wrap-up and other Unixy goodness | ||
| Dec 19 | Final Exam (7-9pm King 221) [topics] | |||
From the Oberlin catalog course description:
This course will consider the C programming language and its relationship to the Unix operating system. It will also introduce the C++ language and focus on differences between the Java and C++ applications. Some Unix system programminig issues will also be included. The course will require a significant amount of programming.
My goals and objectives for students taking this course are as follows:
We'll be using the canonical K&R C textbook for this class.
|
The C Programming Language by Kernighan and Ritchie
|
You might also be interested in the following books as personal references:
I'll try to make a copy of these available in one of the labs for your use.
There are a number of tools that may be useful to you.
Both of these can be incorporated into Vim or Emacs.
There is quite a bit of useful information on C, C++, Unix, and shell scripting available online. If you find something interesting, let me know and I'll add it here. Most of these links have been recommended by past students.
Grades will be calculated based on the following distribution:
The distribution might be adjusted based on the progression of the course.
Regular class attendance and participation is expected. Please talk to me if regular class attendance is going to be a problem.
There will be a number of assignments made in this class. I expect every student to attempt each assignment and turn in the results. You are encouraged to complete every assignment as this is one of the most effective ways to learn the material.
If you know that for some reason you will not be able to submit the assignment before the deadline, you should contact me in advance of the deadline. Extensions are only granted in exceptional circumstances, but need to be done in advance.
Late submissions of homework assignments will be penalized up to 10% per day. Extra credit will not be accepted after the initial deadline.
If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made. Support is available through Student Academic Services, specifically Jane Boomer. You will need to contact them to get your disability documented before accommodations can be made.
I have very low tolerance for academic dishonesty, and will vigorously pursue available remedies for any incidents. All work in this class is to be performed according to the Oberlin Honor Code. Specifically I expect that:
Illustrative examples:
/* based on insertion sort from Weiss 3rd Ed, p. 306 */
All assignments must include the following signed statement:
"I have adhered to the Honor Code in this assignment."
Electronic submissions should include the honor statement in either the README file or header comments and must include your name.
Contact me if you are interested in a Student Academic Services approved tutor.
The CSMC might hold walk-in tutoring sessions as well.
Last Modified: November 15, 2011 - Benjamin A. Kuperman