COMS W4156 Advanced Software Engineering
Fall 2011: Prof. Gail Kaiser
501 Schermerhorn Hall
- Numerous testing resources available here
- Design Pattern humor
- Read tech books free online courtesy of Columbia Libraries
- "Enterprise Java Beans 3.1" by Rubinger and Burke is a great reference with excellent tutorials on all things EJB (including transactions and timers!)
- We've begun to post assorted "gotchas" and tips for using glassfish on the software tools page
- Some entertaining software engineering snafus and cartoons
- Many of Joel Spolsky's blog articles are very enlightening
- Check out the many useful software engineering books on Joel Spolsky's "Programmer's Bookshelf" plus his short article on Distributed Version Control
COMS W4156x Advanced software engineering 3 pts. Lect: 3. Prerequisites: Substantial software development experience in Java, C++ or C# beyond the level of COMS W3157. Recommended Corequisites: COMS W4111.
Software lifecycle from the viewpoint of designing and implementing N-tier applications (typically utilizing web browser, web server, application server, database). Major emphasis on quality assurance (code inspection, unit and integration testing, security and stress testing). Centers on a student-designed team project that leverages component services (e.g., transactions, resource pooling, publish/subscribe) for an interactive multi-user application such as a simple game.
Who should take 4156?
COMS W4156 is a track elective for the undergraduate Systems and Applications tracks and a breadth elective for all other undergraduate tracks. COMS W4156 is one of the (choose four of the six) "core" courses for the MS degree and required for the MS Software Systems track. Although most of the enrollment will probably be CS majors, non-majors are very welcome.
What are we going to do in 4156?
Students will work primarily in self-chosen pairs (2 people), which will group into 2-pair teams (that is, 4 members). Teams will invent their own projects to implement a multi-user interactive application utilizing component services provided by the component model framework of their choice (e.g., EJB, .NET Enterprise Services, Web Services). The course will be extremely fast-paced, with multiple iterations of rapid system development within the semester. Students should be very quick at coming up to speed on whatever software technologies their team chooses.
All members of the same team must use the same component model framework. An EJB framework (with associated infrastructure) will be recommended, but not required; the TAs can provide support only for the recommended facilities.