ECE-C 301: Advanced Programming for Engineers




Grading Policy







The textbook for the course is:

  • Big Java by Cay Horstmann, 3rd edition, John Wiley and Sons, 2008. ISBN: 978-0-470-112090.
The above ISBN number is for the version of the book that comes packaged with access to WileyPlus, an online resource for the book. Please make sure to use the above ISBN number when you order the textbook (the online access to WileyPlus is free with the purchase of the book).

Students in the course will also be required to frequently access and use online resources such as Sun Microsystem's Java API documentation .

Optional References

Students with advanced interest in topics covered will find it interesting and useful to refer to:

  • Core Java(TM), Volume I--Fundamentals by Cay Horstmann and Gary Cornel, 8th edition, Prentice Hall, 2005.
  • Core Java 2: Volume II--Advanced Features by Cay Horstmann and Gary Cornel, 7th edition, Prentice Hall, 2005.
  • Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Addison-Wesley Professional, 1994
  • The Pragmatic Programmer by Andrew Hunt and David Thomas, Addison-Wesley, 2000
  • Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Riverst and Clifford Stein, 2nd edition, Prentice Hall, 2001

Syllabus and Class Schedule

This is the tentative schedule for the course

Week 1

Review of basic Java

Week 2

Class design I: good design, basic UML, inheritance
Effective debugging, JUnit

Week 3

Exceptions, Files, streams
Containers: Arraylist, Vector

Week 4

Searching (linear, binary) algorithms
Sorting (insertion, merge, quick) algorithms

Week 5

Introduction to runtime analysis

Week 6

Class design II: Introduction to design patterns
Introduction to dynamic containers

Week 7

Linked lists, stacks, queues

Week 8

Hashing (maps, hash code)
Binary search trees, Heaps and heapsort

Week 9

Catch up and Review

Week 10

Catch up and Review