skip to content

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

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

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


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