We will not use one specific textbook for this class. Rather you will be expected to seek whatever references you need from a bookstore, library or the Internet. I'll give you some pointers, but part of this course will be for you to learn how to find out the things you need to know on your own.
This course is an advanced programming course. The idea is to give you practical, hands-on experience at advanced programming tasks. We'll introduce you to C and C++, under the assumption that you have already mastered Java (if not, then you don't belong in this course). You will learn many UNIX tools, systems-level programming techniques, web-based programming skills and scripting languages. We will cover software engineering concepts, configuration management, systems analysis, software design and documentation.
You need to have taken CS3137 or CS3139 in order to take this class. You should be familiar with the UNIX environment.