This document can be found in http://www.cs.clemson.edu/~mark/215.html
The department syllabus can be found in
http://www.cs.clemson.edu/html/syllabi/cpsc215.shtml
Objectives: Study software development using an imperative language.
Major Concepts:
Prerequisite: C or better in CPSC 212 (CPSC 241)
Meetings: 12:20-1:10 MW in Daniel Hall room 408
Late Arrival: Please wait up to 15 minutes if I am late to class.
Required Textbooks:
1. H. Deitel, and P. Deitel, C: How To Program, 3rd ed.,
Prentice Hall, 2001, ISBN: 0-13-089572-5.
(book web site)
2. S. Sarwar, R. Koretsky, and S. Sarwar, Unix: The Textbook,
Addison-Wesley Longman, 2001, ISBN: 0-201-61260-7.
(book web site)
Recommended Professional Reference Books:
1. S. McConnell, Code Complete, Microsoft Press, 1993, ISBN: 1-55615-484-4.
(TOC and excerpts)
2. B. Kernighan and R. Pike, The Practice of Programming, Addison-Wesley,
1999, ISBN 0-201-61586-X.
(book web site)
3. B. Kernighan and D. Ritchie, The C Programming Language, 2nd (ANSI-C) ed.,
Prentice Hall, 1988, ISBN: 0-13-110362-8.
(book web site)
4. B. Stroustrup, The C++ Programming Language, 3rd ed., Addison-Wesley
Longman, Inc., 1997, ISBN: 0-201-88954-4.
(book web site)
5. P. Plauger, The Standard C Library, Prentice Hall, 1992,
ISBN 0-13-131509-9.
Instructor:
Mark Smotherman, 441 Edwards Hall, mark@cs.clemson.edu, 656-5878
office hours: 11:00-12:00 M, W, and by appointment
Grading:
Programs:
Attendance: Class attendance is not graded.
Drop Days: Last day to drop without record is January 24; last day to drop without grades is March 2.
Academic Integrity: "As members of the Clemson University community, we have inherited Thomas Green Clemson's vision of this institution as a `high seminary of learning.' Fundamental to this vision is a mutual commitment to truthfulness, honor, and responsibility, without which we cannot earn the trust and respect of others. Furthermore, we recognize that academic dishonesty detracts from the value of a Clemson degree. Therefore, we shall not tolerate lying, cheating, or stealing in any form."
from Academic Integrity Policy
See also the department statement.
Specifically, for this class: Publicly-available code or other material may be freely used if appropriately attributed. Each student is responsible for protecting his or her files from access by others. Work that is essentially the same and submitted without proper attribution is considered to be a violation of the academic integrity policy by all those submitting the work, regardless of who actually did the work.
Spring 2001 Approximate Schedule
month | M | W | class | category | topic (text) | lab | topic (text) |
---|---|---|---|---|---|---|---|
Jan | 10 | Class 01 | C | intro, UNIX, C, C++, Java (DD 1,2) | (no lab) | ||
15 | no class, MLK day | ||||||
17 | Class 02 | C | i/o, functions (DD 2,5) | Lab 01 | UNIX commands (SKS 4,9) | ||
22 | Class 03 | C | arrays, pointers (DD 6,7) | ||||
24 | Class 04 | SW-1 | software development, testing | Lab 02 | editors (SKS 5) | ||
29 | Class 05 | SW-1 | separate compilation, makefiles (SKS 20) | ||||
PROGRAM 1 DUE: array-based stack implementation using a test driver (use handin.215.2 1 filename) grading scheme | |||||||
31 | Class 06 | C | string handling, i/o (DD 8,9) | Lab 03 | email (SKS 6) | ||
Feb | 5 | Class 07 | C | struct, union (DD 10) | |||
7 | Class 08 | C | dynamic memory allocation, linked lists (DD 12) | Lab 04 | UNIX file system (SKS 7,8) | ||
PROGRAM 2 DUE 2/12/01: calculator w/ stack using makefile (use handin.215.2 2 filename) grading scheme | |||||||
12 | Class 09 | C | cpp, va_arg(), command line parameters (DD 13,14) | ||||
14 | Class 10 | C | other standard library routines (DD 14) | Lab 05 | shell, pipe, redirection (SKS 4,12) | ||
PROGRAM 3 DUE 2/23/01: queue manager using doubly-linked lists and test driver (use handin.215.2 3 filename) | |||||||
19 | 11 | ** FIRST EXAM ** study guide | |||||
21 | Class 12 | GUI | GUIs, event-driven programs, GTK+ (web) | Lab 06 | adv. file processing, regex (SKS 10) | ||
26 | Class 13 | GUI | packing boxes, labels, colors (web) | ||||
28 | Class 14 | GUI | key presses, more widgets (web) | Lab 07 | processes (SKS 13) | ||
PROGRAM 4 DUE 3/2/01: calculator using queue manager (use handin.215.2 4 filename) | |||||||
Mar | 5 | Class 15 | SW-2 | debugging | |||
7 | Class 16 | SW-2 | shells (SKS 4,17,18) | Lab 08 | debuggers (SKS 20) | ||
12 | Class 17 | SW-2 | versioning, packaging (SKS 20) | ||||
14 | Class 18 | IO | UNIX files, stream I/O, redirection (SKS 7,8,12) | Lab 09 | shells (SKS 15-18) | ||
PROGRAM 5 DUE 3/16/01: GUI calculator (use handin.215.2 5 filename) grading scheme | |||||||
19 | no class, Spring break | ||||||
21 | no class, Spring break | ||||||
26 | Class 19 | IO | formatted vs. binary I/O (DD 11) | ||||
28 | Class 20 | IO | sequential vs. random I/O (DD 11) | Lab 10 | remote use (SKS 14) | ||
Apr | 2 | Class 21 | IO | low-level (unbuffered) I/O (DD 11) | |||
4 | Class 22 | ** SECOND EXAM ** study guide | Lab 11 | packaging/config/inst (SKS 19) | |||
9 | Class 23 | C++ | intro to C++, classes (DD 15,16) | ||||
11 | Class 24 | C++ | const, friend, new/delete, containers, iterators, STL (DD 17) | Lab 12 | versioning (SKS 20) | ||
PROGRAM 6 DUE 4/13/01: GUI image viewer (use handin.215.2 6 filename) grading scheme | |||||||
16 | Class 25 | C++ | overloading, constructors (DD 18) | ||||
18 | Class 26 | C++ | inheritance, polymorphism (DD 19,20) | Lab 13 | Xwindows (SKS 21) | ||
23 | Class 27 | C++ | streams, templates, exceptions (DD 21,22,23) | ||||
25 | Class 28 | evaluation, review | Lab 14 | ** LAB FINAL ** | |||
(EXTRA CREDIT) PROGRAM 7 DUE 4/27/01: calculator in C++ (use handin.215.2 7 filename) grading scheme | |||||||
30 | Class 29 | ** FINAL EXAM -- Monday, April 30, 1-4 ** study guide |
Learning C after Java... Imagine there's no classes, It isn't hard to do. No objects to send messages No references too Imagine all the methods Static and you've got C. O-ho you might say that that's a nightmare And you're not the only one But the language has its uses And like Java can be fun. by David Arnow (arnow@sci.brooklyn.cuny.edu) (from: http://www.cs.columbia.edu/~evs/songs/othersongs.html)
Web pages on vi
Web pages on C
Web pages on coding guidelines
Web pages on C99
Web pages on C++
Web pages on C++ STL
Web pages on comparing Java and C/C++
Web pages on GUIs and esp. GTK+
Web pages on Scripting Langauges
Web pages on history
[Mark's homepage] [CPSC homepage] [Clemson Univ. homepage]
mark@cs.clemson.edu