Software Engineering program at Philadelphia University gives you the opportunity to:
Study a body of knowledge relating to Software Engineering, Software reengineering, and maintenance;
Understand the principles of large scale software systems, and the processes that are used to build them;
Have skills in the most widely used approach to software construction – object-orientation (OO), including OO requirement specifications, OO analysis, OO design, OO programming, OO testing and maintenance;
Use tools and techniques for producing application software solutions from informal and semi-formal problem specifications;
Acquire and develop many valuable skills such as the ability to use computer aided Software Engineering tools to analyze, evaluate, select and synthesize information sources for the purpose of developing a software system;
Develop an appreciation of the cost, quality, and management issues involved in software construction;
Develop an awareness of the role and responsibilities of the professional software engineer;
Acquire skills to think about problems and their solutions using appropriate methods of analysis and design;
Be able to design and communicate ideas about software system solutions at different levels of abstraction and have the opportunity to transfer such skills across a wide range of industrial and commercial domains;
Have an ability to work with other people in a team, communicating computing ideas effectively in speech and in writing;
Have a basis for going on to further study in software engineering, or for finding work in computing-related industries.
Be a graduate that can go on to employment in technical positions in software houses and with large-scale scientific and engineering users;
Be graduate that may seek to pursue research careers.
Objectives (Learning Outcomes). Learning outcomes describe what you should know and be able to do if you make full use of the opportunities for learning that we provide. All these skills are described in the following areas (A, B, C, D). In the individual module syllabi, the categories of learning outcomes (A, B, C, D) and the individual learning outcomes appropriate to the module are identified.
A- Knowledge and Understanding of
A1) the principles of system development lifecycle and different software process models.
A2) a wide range of principles available to the software developer, such as concepts, algorithms, models, languages, data structures, software libraries and user interface techniques.
A3) the principles of software construction.
A4) methods and techniques for requirements analysis, design, programming, testing and maintenance.
A5) the range of situations in which computer systems are used, the ways in which people interact with them;
A6) professional issues to cover: social, ethical and legal aspects;
A7) different architectural approaches to deal with large and complex software projects.
A8) the principles and techniques of new trends in application types and domains.
B- Intellectual (thinking) skills - able to
B1) specify and model software systems.
B2) analyze, investigate and improve the specification of a software system.
B3) design and plan software solutions to problems.
B4) identify a range of solutions and critically evaluate and justify proposed design solutions.
B5) apply methods and techniques for different phases of software development lifecycle.
B6) evaluate systems in terms of general quality attributes and possible trade-offs presented within the given problem;
B7) reflect and reason concerning a given information handling problem or opportunity.
B8) identify some of the main risks of software development and use.
C- Practical skills - able to
C1) use software development technologies (platform).
C2) use CASE tools for each phase of software development lifecycle.
C3) use generic and specific programming and modelling languages.
C4) use API libraries for software construction.
C5) use debugging tools.
C6) use network information services.
C7) prepare and deliver coherent and structured verbal and written technical reports.
C8) use the scientific literature effectively and make discriminating use of web resources.
C9) conduct interviews and brainstorming for requirements elicitation.
D- Transferable skills - able to
D1) acquire, manipulate and process data.
D2) use creativity and innovation.
D3) solve problems.
D4) communicate effectively with non –specialist as well computer scientist professionals at a range of level.
D5) give oral presentations and write report and technical documents.
D6) work as part of a team.
D7) manage time, tasks and resources
D8) use information Technology effectively.