EE 360C - Introduction to Algorithms and Data Structures Using C++
Unique Number: 76710
Days: MTWTh
Time: 1-2:30
Room: ENS 302
Course Objective
To enable you to think about solutions to computational problems in an object-oriented manner, learn how to define, analyze and apply suitable data structures and algorithms, and become proficient at implementing (using C++) the common data structures and algorithms used by professional software engineers.
Prerequisites
EE 312 and EE 319K with a grade of at least C in each. Minimally, you should be able to reason logically to do simple algebraic and inductive type mathematical proofs, and have some prior programming experience, preferably using C. Previous C++ programming experience will make the first part of the course a review, but prior knowledge of C++ is not required.
Required Course Material
- Mark Allen Weiss. Algorithms, Data Structures and Problem Solving with C++, Addison-Wesley, 1996. Available from the UT Co-op Bookstore.
- Alexander Stepanov and Meng Lee. The Standard Template Library, Hewlett-Packard Laboratories, July 1995. Available from the Texas Union Copy Center.
C++ References
- Bjarne Stroustrup. The C++ Programming Language, Second Edition. Addison-Wesley, 1991
- Scott Meyers. Effective C++: 50 Specific Ways to Improve Your Programs and Designs, Addison-Wesley, 1992.
- M. Cline and G. Lomow. C++ FAQs, Addison-Wesley, 1994.
- David R. Musser and Atul Saini. STL Tutorial and Reference Guide, Addison-Wesley, 1996.
Office Hours
Office hours will be held just before class daily. I also try to respond to all email in a prompt manner. The TA will also hold regular office hours. You may request an appointment in person after class, by telephone, or via e-mail. My primary office is located off-campus in the UT Austin Technology Incubator located at the MCC building near the J.J. Pickle Research Center (PRC) in northwest Austin, which is accessible via the campus shuttle to PRC.
Attendance
It will be to your advantage to attend every lecture.
Grading
Grades are calculated on the following scale A: 90-100; B: 80-89; C: 70--79; D: 60-69; F: 0-59. The final grade you earn in the course will be determined based on your performance in a range of opportunities that allow you to demonstrate your knowledge of course material.
Quizzes
There will be unannounced in class quizzes that will allow you to demonstrate your improving day-to-day knowledge of Data Structures and C++. Quizzes will be based on course lecture material, reading from the course text, or homework, as assigned during the previous one or two lectures.
Homework
Homework exercises will be assigned and will usually be due within 3 class days from the date of assignment. Late homework will not be accepted unless there are extenuating circumstances (see below).
Programs
There will several programming assignments that require you to program in C++. Assignments will usually allow you to program using a C++ compiler on Unix, Windows NT/95, or MacOS using a suitable C++ compiler. The ANSI C++ standard is now being finalized, but some compilers do not yet fully implement standard C++ features, such as templates and exceptions. Most assignments will require that your compiler support templates.
Examinations
There will be two one-and-a-half hour in-class exams. If you miss an exam due to an approved absence (see below), the other exam grade will be counted twice.
Drop Dates
The last day to drop this course without academic penalty is defined in the Summer schedule of classes.
Extenuating Circumstances
If you have difficulty meeting the requirements of this course, fail to hand in an assignment, or miss an exam because of extenuating circumstances, please advise your instructor at the earliest possible date so that your situation can be discussed. If you encounter an unexpected medical or family emergency or a random act of Nature that causes you to miss the due date for homework or a program, or miss a quiz or exam, you must present suitable documentation to the instructor before special consideration will be given.
Guest Lectures
During the semester, I am likely to be out of town for three consecutive days the first week of July. I will arrange for someone to teach the class and so it is to your advantage to be sure to attend those lectures as a C++ Question-Of-The-Day quizzes may still be given.