Instructor: Shieu-Hong Lin
Class website: http://csci.biola.edu/csci301/
Class time: Tuesday at Metzger 100 or Grove 4B
Thursday at Metzger 100
Office Hours: Tuesday & Thursday , Math & CS department
˛ 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.
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)
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.
˛ 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