Software Engineering 144 CRs

  • Software Engineering |
  • Language of Study: English

Program Description

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software that is, the application of engineering to software. Therefore, developing and maintaining reliable and efficient software systems is the primary concern to software engineering professionals. Software systems should be affordable to develop and maintain and satisfy all the requirements that customers have defined. More recently, it has evolved in response to factors such as the growing impact of large and expensive software systems in a wide range of situations and the increased importance of software in safety-critical applications. Software engineering is different in character from other engineering disciplines due to both the intangible nature of software and the discontinuous nature of software operation. It seeks to integrate the principles of mathematics and computer science with the engineering practices developed for tangible, physical artefacts.

Learning Outcomes

  • Graduates of the program will have an ability to:
    (SO1) Identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
    (SO2) Apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
    (SO3) Communicate effectively with a range of audiences.
    (SO4) Recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
    (SO5) Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
    (SO6) Develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
    (SO7) Acquire and apply new knowledge as needed, using appropriate learning strategies.

Markets and Career

  • Job Opportunities include but are not limited to:
    If you enjoy solving problems and have strong analytical skills, a career as a software engineer can be both fun and challenging. Furthermore, as technology continues to evolve, the need for software engineers continues to grow. Moreover, software engineering skills, tools and techniques are used to govern the software development life cycle that is applied in a diverse set of domains such as:

    Web/Mobile development, Scientific Development, Business Development, Embedded Systems, IoT systems or Artificial Intelligence enabled Systems.

    * Junior Software Engineer: Junior software engineers are entry-level members of a software development team. They assist the team with basic tasks under the supervision of their seniors, such as learning base code and writing simple code, and debugging existing software (Web/Mobile).

    * Technical Architect: Architects still write code occasionally as well; however, they are mainly responsible for designing complex systems that other developers will implement. The role of architect is a technical one and not usually a steppingstone to something more - often thought of as the highest position on the technical side of things.

    * Requirements Engineer: responsible for the analysis, documentation, coordination, and management of requirements regarding new software projects. They identify and understand the customer's project-specific demands and document them in a clear and binding way.

    * Product Manager: responsible for both product planning and product marketing. This includes managing the product throughout the Product Lifecycle, gathering and prioritizing product and customer requirements, defining the product vision, and working closely with engineering to deliver winning products.

    * Software Test Engineer: responsible for evaluating software using automated or manual testing methods and analyzing the results. Strong analytical skills can help them navigate and break down complex software systems.

    * Software Quality Assurance (QA) Engineer: responsible for every phase of the development process to ensure that the design and software adhere to company standards. A software quality assurance engineer helps meet deadlines by breaking up the development process into attainable testing goals and relaying any issues back to the development and product teams or leaders.

    * Software Project Manager: responsible for the planning, scheduling, budgeting, execution, and delivery of software projects. They ensure the successful completion of all software projects and oversee the people performing work on the projects. Prepares reports for upper management regarding status of project. The successful candidate will work directly with clients to ensure deliverables fall within the applicable scope and budget.

    * Security Software Engineer: responsible for analyzing software designs and implementations from a security perspective٫ to identify and resolve security issues. Your duties will include the appropriate security analysis٫ defenses and countermeasures at each phase of the software development lifecycle٫ to result in robust and reliable software.

    * DevOps Engineer: A DevOps engineer acts as a fulcrum between development and operational teams, and basically forms the foundation of the entire dev ops environment. For development to go as planned, there needs to be an operational team ready to implement the IT structures, applications, and software enhancements that are created. Between these two teams, and coordinating the efforts of both, are DevOps engineers. A DevOps engineer introduces processes, tools, and methodologies to balance needs throughout the software development life cycle, from coding and deployment to maintenance and updates.

Admission Requirements

Data will be available soon!

Tests & Prerequisites

Data will be available soon!

Cooperation



Accreditation

Brief

Soon.

Code Title Prequisites
BA101 Calculus I None
BA113 Physics None
CS111 Introduction to Computers None
IS171 Introduction to Information Systems None
LH135 English for Specific Purposes I None of LH130*
NC172 Fundamentals of Business None
BA003 Math 0 None
Code Title Prequisites
BA201 Calculus III BA102
BA203 Probability and Statistics BA102
BA216 Advanced Physics BA113
CE216 Digital Logic Design CS111
CS202 Discrete Structures CS111
CS243 Object-Oriented Programming CS143
Code Title Prequisites
CS312 Computing Algorithms CS212
CS322 Operating Systems CS212, CE243
CS366 Introduction to Artificial Intelligence CS212, CS202
CS451 Human Computer Interaction SE291
ITXXX_1 Professional Training I None
SE393 Principles of Software Architecture SE291
CS301 Numerical Methods BA304-CS143
Code Title Prequisites
CS481 Computers and Society 96CR+
CCSXXXX_1 Major Elective None
CCSXXXX_2 Major Elective None
MINOR_1 Minor Elective None
ITXXX_2 Professional Training II
SE401 Project I GPA>=2.0 & 93 CR
SE491 Software Component Design SE291
Code Title Prequisites
CS421 Computer System Security CS322, CE231
CCSXXXX_3 Major Elective None
CCSXXXX_4 Major Elective None
MINOR_2 Minor Elective None
ITXXX_3 Professional Training III
SE402 Project II SE401
SE497 Software Verification and Validation SE291
IT400 Practical Training None

Start your Application

Start The Journey to your Career.