CIS 15                   Advanced C Programming                        Spring 2004

 

Eva Cogan     http://www.sci.brooklyn.cuny.edu/~cogan/ Go see links. Subscribe to list.

CIS Office:    2109N (718)951-5657

 

In this course you will become sophisticated software designers and master advanced C.

Go to the lab. Do Assignment 0 Atrium.

 

Two Required Textbooks

1. C Programming: A Modern Approach, King N. N., W.W. Norton

            PREREQUISITE: pages 1-128, 131-146, 155-171, 205-213, 221-230, 239-257

(we do the following sections-order is subject to change)

preprocessor -- #include                     14.1-14.4

            macros -- #define, with args

            conditional #if, #ifdef, #ifndef, #endif

typedef (also Boolean)                        7.6

structures                                             16.1-16.3

            array of, array in, ptr to, and fns

header files, source files                     15.1-15.3

            compiling with -c, -o, -P

            conditional compilation

break, continue, switch, short-circuit

arrays                                                  8

            2-diml                                     8.2

pointers                                               11

            ptrs as args, max, min              11.4

            ptrs as return value                  11.5

pointers and arrays                              12, 22.8(string i/o)

strings                                                  13, 23.5, 23.4, 22.5

            arrays, command line args       13.7, p. 481

exit                                                      9.5

program organization                          10

recursion                                             9.6

dynamic storage allocation                  17.1-17.4

the -> operator                                    17.5

** pointers to pointers                         17.6

pointers to functions                            17.7 (no qsort)

file I/O                                                22.2

streams                                                22.1

formatting                                            22.3

character I/O                                      22.4

string I/O                                             22.8

declarations                                         18.1, 18.4

auto vs. static in block                         18.2

const                                                    18.3

modules                                               19.1-19.3

abstract data structures                        10.2, 19.2, 17.5

libraries(numeric)                               23

assert                                                   24.1

libraries(character)                             26

 

program specification, design, debugging and testing (notes)

           

2. Just Enough Unix , Andersen P. K., McGraw-Hill

            You will learn to run C programs under the Unix Operating System by using it.

            It is very difficult for about two weeks. After that it’s merely frustrating.

            1, 2, 3, 6, 7, 8, 10, 11, 12, 13 or 15, 18, 19 or 20, 21(telnet),

            22(ftp—see handout wsftp), 30, 31, Appendix

 

Also helpful but not required:

Fun With Unix, Landy S. S., Coursepaks- specifically for the system in the atrium

The Practice of Programming, Kernighan B. W. and Pike R., Addison-Wesley

The C Programming Language, , Kernighan B. W. and Ritchie D.M., Prentice Hall

 

Grades

25% each of 2 exams

35% final

Class participation can affect up to 10% of the grade .

There may be quizzes

15% assignments - many short and long programs.

 Never hand in code written by anybody else. Don’t take this course now if you don’t have the time. Penalty for late submissions. Homework is due at the beginning of class.

 

Programs must be

·       complete

·       correct

·       well designed

·       in good style

·       well documented

·

You must include the following at top of the listing and the output:

·       name

·       class and section

·       assignment number

·       date due

·       date submitted

·       Name of file

·       Version number

·       Date of last revision(see pg 287 in text)