ECE 2400 - Computer Systems Programming
Spring 2018
MoWeFr 11:15am-12:05pm 216 Upson
[Home | References | Piazza | CMS]
SCHEDULE (subject to change)
Part I: Basics
TOPIC | [HB] READING | ||
---|---|---|---|
Transition to C (Rec. reading: [K][R]) | |||
Reading C programs | Ch. 2 | ||
Types | Ch. 3 | ||
Arrays and strings | 9-9.6 | ||
Pointer basics; the heap | 8-8.7 | ||
Uses of pointers; memory management | 10-10.4; 12-12.2 | ||
Basic algorithmic techniques (Rec. reading: [S]) | |||
Recursive algorithms | 7-7.6 | ||
Computational cost | 20-20.1 | ||
N-squared sorting | 26-26.1 | ||
N-log-N sorting | 26.2-26.3; notes | ||
Basic data structures in C (Rec. reading: [S]) | |||
Lists | Notes | ||
Stack and FIFO ADTs | Notes | ||
Map ADT | Notes |
Part II: Data Structures and Object-oriented Programming
TOPIC | [HB] READING | ||
---|---|---|---|
Transition to C++ (Rec. reading: [LLM]) | |||
Transition to C++ | 14-14.6 | ||
Object creation and destruction | 15-15.4 | ||
Templates | 17-17.4 | ||
Inheritance and polymorphism | 18-18.8 | ||
Data structures (Rec. reading: [We]) | |||
Binary search trees | 22-22.5 | ||
Priority queues | 24-24.3 | ||
Hashing | 23-23.4 | ||
Graphs | 25-25.3 | ||
Spanning trees | 25.4 |
REFERENCES
Required textbook
[HB] A. Hilton and A. Bracy. All of Programming. Ed. 0, 2015
Recommended textbooks
[K] K.N. King. C Programming: A Modern Approach. W.W. Norton & Co., 2nd Ed., 2008
[R] R. Reese. Understanding and Using C Pointers. O'Reilly Media, 1st Ed., 2013
[S] R. Sedgewick. Algorithms in C, Parts 1-4. Addison-Wesley, 3rd Ed., 1998
[LLM] S.B. Lippman, J. Lajoie, and B.E. Moo. C++ Primer. Addison-Wesley, 5th Ed., 2013
[We] M. Weiss. Data Structures and Algorithm Analysis in C++. Pearson, 4th Ed., 2013
[SR] W.R. Stevens and S.A. Rago. Advanced Programming in the UNIX Environment. Addison-Wesley, 1st Ed., 2013
[Wi] A. Williams. C++ Concurrency in Action: Practical Multithreading. Manning Publications, 1st Ed., 2012