Instructor: Shieu-Hong
Lin
Class website: http://csci.biola.edu/csci301/
Class time: Tuesday
Thursday
Office Hours: Tuesday &
Thursday
Course objectives:
˛ Develop the capability of learning new
technology and complete a prototype project using the technology. The class
this year will focus on exploring the open-source technology. For people with
interest in Microsoft .NET framework technology, programming using C# is an
alternative you may pursue.
˛ Gain wide exposure to important software
engineering principles in specification & requirement analysis,
architectural design & analysis, the coding, inspection, testing, and
debugging of software modules, and integration of modules into reliable and
efficient systems.
˛ Form small teams (2 persons each) to
collaborate on the projects and practice software engineering principles in an
iterative and repetitive process of software engineering to produce robust
software systems.
˛ Learn to be a capable and disciplined
programmer who communicates with others to forge good teamwork, adopts good
coding conventions in the code, and effectively utilizes the coding and
debugging tools provided in modern integrated development environments.
Books:
1.
Steve McConell. Code
Complete: A Practical Handbook of Software Constrcution 2nd Ed.,
2005. (Recommended for software engineering common sense)
2.
Ian Sommerville. Software
Engineering 7th ed, Addison Wesley, 2004. (Recommended for
general software engineering subjects. With online
case studies)
3.
Luke Welling, Laura Thomson. PHP and MySQL Web Development 3nd ed. SAMS, 2005.
(Recommended for web programming using PHP and MySQL)
4.
Cristian Darie
and Mihai Bucica. PHP 5 and MySQL E-Commerce: From Novice to Professional. Apress, 2005. (Recommended for E-Commerce using
Smarty, PHP, MySQL. With online demo
site and code)
5.
Cristian Darie
and Mihai Bucica. Beginning ASP .NET 2.0 E-Commerce in C# 2005: From Novice to Professional. Apress,
2005. (Recommended for E-Commerce using C# and ASP.NET. With online demo site and code)
6.
J. Blanchette and
M. Summerfield. C++
GUI: Programming with QT3, Prentice Hall, 2004. (Recommended for C++
GUI programming)
7.
Dave Thomas. etc. Programming Ruby: The Pragmatic
Programmers' Guide, 2nd Ed.Pragmatic Bookshelf, 2004.
8.
Dave Thomas. etc. Agile Web Development with
Rails : A Pragmatic Guide, Pragmatic Bookshelf, 2005.
9.
Steve McConell. Rapid
Development, Microsoft Press, 1996.
10. Martin Fowler. Ractoring: Improving the Design of
Existing Code, Addison Wesley, 2000.
11. E. Gamma. . Helm, R. Johnson, and J. Vlissides. Design
Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley,
1995. (The classic book on design patterns)
12. Martin
Fowler. endall Scott. UML Distilled: A Brief Guide
to the Standard Object Modeling Language, 3rd ed. Addison-Wesley, 2003.
13. Gunther
Lenz. homas Moeller. .NET-A Complete Development
Cycle, Addison-Wesley, 2003.
14. Jesse Liberty.
Programming C#. 3rd Ed. O’Reilly 2003.
Grading:
˛
Weekly reading assignments &
Weekly project activities
reports 15%
˛
Class attendance
& participation 10%
˛
Quizzes & practice programming assignments 35%
˛
Midterm project
examination 20%
˛
Final project
examination 20%
Tentative project schedule
˛ Week 1 Overview
of the course project
˛ Week 2 Specification
& requirement analysis
˛ Week 3 Prototype
design: modules and their interaction
˛ Week 4 Detailed
specification of modules
˛ Week 5 Coding
& debugging
˛ Week 6 Coding & debugging
˛ Week 7 More
coding, debugging, and testing
˛ Week 8 Peer
Review: Inspection and testing
˛ Week 9 Midterm
project demonstration & inspection: public
˛ Week 10 Architectural
revision and reuse of existing modules
˛ Week 11 Specifying
details of reuse, revision, and new modules
˛ Week 12 Coding
& debugging
˛ Week 13 Coding
& debugging
˛ Week 14 More
coding, debugging, and testing
˛ Week 15 Peer
Review: Inspection and testing
˛ Final Week Final
project demonstration & inspection: public