Contact Information |
Instructor: | James Riely |
Home Page: | http://fpl.cs.depaul.edu/jriely |
Email: | [email protected] |
Phone: | 1.312.362.5251 |
Address: | School of Computing, DePaul University |
243 South Wabash Avenue | |
Chicago, IL 60604-2301 | |
Office: | CDM 845 |
Office Hours: | Tue/Thu 11:40pm-12:55pm in CDM 845 |
Class Page: | http://fpl.cs.depaul.edu/jriely/450/ |
Class Hours: | Tue 5:45pm-9:00pm in Lewis 1511 [Section 702] |
Online, Anytime [Section 711] |
Mailing List |
You must subscribe to the course mailing list. Do it as soon as possible.
http://groups.google.com/group/se450fall2015
Overview |
We will study object-oriented design and implementation. Among the topics of the course are:
Java and the UML will be used for source code examples, homework assignments, and the exams.
Objectives |
By the end of this course you should:
Lecture Plan |
The following lecture plan is tentative and subject to change as the course progresses.
Lecture slides will be available after each lecture. They will not normally be available before the lecture.
Prerequisites |
You must have the following:
CSC403, CSC383 or CSC393 or equivalent courses on data structures (linked lists, stacks and queues, trees, graphs priority queues, hash tables).
You should have written some code in this class. You should be happy implementing simple linked lists, stacks, queues, and trees. You should be happy using all of the above, plus priority queues and hash tables.
CSC402, CSC 224 (or 211 and 212) or equivalent experience programming in Java.
This course is not an introduction to Java.
If you do not have CSC403, CSC383 or CSC393, drop now.
Useful, but optional:
Textbooks |
See file:links-main.
Required Books
Object-Oriented Design and Patterns (2e) [Amazon, AddAll]
by Cay Horstmann (Wiley, 2005)
Online companion to the book: http://horstmann.com/design_and_patterns.html
(Online)
(Online)
Required Books (Pick one of the following three)
Head First Design Patterns [Amazon, AddAll]
by Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates (O'Reilly, 1995)
ADD intro to DP.
Online companion to the book: http://www.oreilly.com/catalog/hfdesignpat/
Design Patterns Explained: A New Perspective on Object-Oriented Design (2e) [Amazon, AddAll]
by Alan Shalloway, James R. Trott (Addison-Wesley, 2004)
Online companion to the book. Design Patterns Matrix. Pearson site.
Design Patterns [Amazon, AddAll]
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley, 1995)
Online companion to the book: http://hillside.net/elements-of-reusable-object-oriented-software-book
Most students prefer Head First Design Patterns, but some prefer Design Patterns Explained. The original Design Patterns is a classic, but out of date; it is a decent reference, but a poor book to learn from for a begginer.
Expectations |
The course will be conducted using Java and some of its many APIs.
I expect you to be able to work your way through the APIs without guidance from me.
The course requires that you actively engage the material on your own.
You should not only read the example code given in class, but modify and run it.
Spend at least a few hours a week playing with the examples given in class, or your own Java code.
Testimonial from a former student:
As a side note, I've spent my summer giving my final project, 'MReversi' for Spring se450, a gui, unlimited undo/redo and tcp connectivity so players can play across a network. I've also ported a version to my Java capable phone with j2me. My next step is to give the phone version tcp capability so phone players can play computer players or whatever. I could not have done this in this short time frame (at least I think it's short) if it wasn't for all the hard work we were made to do in se450. Thanks! "If it don't kill ya, it makes you stronger." :-)
Another testimonial from a former student:
Overall, I enjoyed and learned a lot in SE450. To date, it has been the most time consuming class I've taken possibly ever so you were quite accurate in your warnings early on that we students need to seriously make time.
After many years of project work and software implementations at my day job, there was one thing in particular about the final project that, whether intentional or not, very accurately represented "real world" work. That is, the ambiguity of the assignment. No software project I've been involved in has ever been in neat, clearly defined, package as many of the projects and assignments I've worked on at DePaul. Due to the complexity of what you were asking and a certain amount of open-endedness, it would have been less stressful to not have any other assignments during development of the final project, but again, real life doesn't always allow us the privilege of working on only one thing at a time.
Attendance |
You are responsible for understanding the material presented in class.
You are responsible for any announcements made in class or on the class mailing list.
You must attend the midterm and final exams (unless you are in the DL section).
A medical note will be required for an absence from exams. Business trips or vacations are not valid reasons for missing the exams.
Block out these dates now!
Online students can take exams remotely. Online dates will likely include the weekend before the in class date.
Class materials and recorded lectures are available online. Exams are proctored.
Read the policies here:
http://www.cdm.depaul.edu/onlinelearning/Pages/OnlinePolicies.aspx
If you live in Chicago, you can take the exams at the Loop or Suburban campuses. If you live outside the Chicago area, you will need to find a proctor.
Your online section is paired with an on-campus section. These classes are recorded and uploaded into the Course Management system so you can view them within 24 hours of the live class. The first class is 2015/09/15. The lecture will be available online the following day.
Assessment |
There will be weekly assignments culminating in a final project, a midterm exam, and a final exam. The course grade will be computed as follows:
Numerical grades correspond to letter grades roughly as follows:
93-100 = A 90-92 = A- 88-89 = B+ 83-87 = B 80-82 = B- etc...
You must hand in the homework each week in order to receive the 10 points for homework. Note, however, that I will only review homework in detail for students whose final score is borderline (say between an A- and a B+).
The midterm and final will be cumulative.
There will be no make-up exams nor extra credit assignments. If there is an extreme emergency and you must miss an exam, you must notify me in advance and provide documented evidence of the emergency.
Students in DL sections may take the course remotely. They may take the exam at times different from the in class section, usually within a few days. Exact details will be provided on COL closer to the exam date.
Homework is due by 5:30PM before class, one week after assigned (9:00PM for OL sections). No late assignments will be accepted. I will drop the lowest homework score will be dropped in the calculation of your final grade.
Homework assignments must be submitted through the online system. Email submissions will not be accepted.
Program submissions will be assessed on whether they achieve the set task and the quality of the code.
DePaul's academic integrity policy