The student will work on an applied project designed to develop his interest in some application of computer technology to a real life problem. Student is expected to submit a written report at the end of the project.
One 50 minutes lecture, open lab per week (1-6-3)
Designation: Required Course
Course Level: Undergraduate
Prerequisite(s) by Topic:
- As required by the project
- Algorithms and problem-solving
- Data structures
- Information models and database systems and modeling
- Software Engineering and the software development life cycle
Project-oriented course in which students work in teams on an applied real-world problem of their interest, go through its software development lifecycle in order to develop a prototype software solution for the problem at hand. The senior project offers the opportunity to integrate the knowledge acquired in preceding courses, as well as promote and instill communication skills, writing skills, and lifelong self-learning.
Reference(s) and Other Material:
- Ian Sommerville, Software Engineering, 7th Edition, Addison-Wesley, 2004, ISBN: 0-321-21026-3.
- Pressman, R. S. Software Engineering: A Practitioner's Approach, 6th Ed., McGraw-Hill Companies, Inc., 2005.
After completion of this course, the student shall be able to:
- Formulate a real-world problem and develop its requirements.
- Develop a design solution for a set of requirements.
- Test and validate the conformance of the developed prototype against the original requirements of the problem.
- Work as a responsible member, and possibly a leader, of a team in developing software solutions. Also, participate in, and possibly moderate, discussions that lead to making decisions.
- Express technical ideas, strategies and methodologies in written form.
- Express technical and behavioral ideas and thought in oral settings and prepare and conduct oral presentations.
- Self-learn new tools, algorithms, and/or techniques that contribute to the software solution of the project.
- Team Formation and Project Management.
- Risk Assessment and Management.
- Software Requirements and Specifications.
- Technical Writing Skills.
- Software Design.
- Graphical User Interface Design.
- Technical Presentation Skills.
- Software Validation.