Bachelor of Science in Software Engineering
Skip to content

Department of Computing

Bachelor of Science in Software Engineering

Welcome to the Bachelor of Software Engineering program — where innovation meets precision in the digital age. Our program is designed to equip students with a strong foundation in computer science, engineering principles, and practical software development skills. With a curriculum aligned to industry standards and emerging technologies, students gain hands-on experience in designing, developing, testing, and maintaining reliable software systems. Whether your passion lies in building intelligent applications, enhancing cybersecurity, or driving digital transformation, our program prepares you to lead and thrive in a dynamic global tech landscape.

  1. Knowledgeable software engineers capable of developing solutions using sound analytical and problem-solving skills
  2. Manage projects and become effective members of teams through inter-personal skills
  3. Demonstrate high moral and ethical values, life-long learning attitude and societal responsibilities
  1. Academic Education:
    To prepare graduates as computing professionals
  2. Knowledge for Solving Computing Problems:
    Apply knowledge of computing fundamentals, knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for the computing specialization to the abstraction and conceptualization of computing models from defined problems and requirements
  3. Problem Analysis:
    Identify, formulate, research literature, and solve complex computing problems reaching substantiated conclusions using fundamental principles of mathematics, computing sciences, and relevant domain disciplines
  4. Design/ Development of Solutions:
    Design and evaluate solutions for complex computing problems, and design and evaluate systems, components, or processes that meet specified needs with appropriate consideration for public health and safety, cultural, societal, and environmental considerations
  5. Modern Tool Usage:
    Create, select, adapt and apply appropriate techniques, resources, and modern computing tools to complex computing activities, with an understanding of the limitations
  6. Individual and Team Work:
    Function effectively as an individual and as a member or leader in diverse teams and in multi-disciplinary settings
  7. Communication:
    Communicate effectively with the computing community and with society at large about complex computing activities by being able to comprehend and write effective reports, design documentation, make effective presentations, and give and understand clear instructions
  8. Computing Professionalism and Society:
    Understand and assess societal, health, safety, legal, and cultural issues within local and global contexts, and the consequential responsibilities relevant to professional computing practice
  9. Ethics:
    Understand and commit to professional ethics, responsibilities, and norms of professional computing practice
  10. Life-long Learning
    Recognize the need, and have the ability, to engage in independent learning for continual development as a computing professional
Course Code Course Name Course Cred Hr Lab Cred Hr
Semester 1
GE1XX Application of Information & Communication Technologies 2 0
GE1XX Application of Information & Communication Technologies- Lab 0 1
CS1XX Programming Fundamentals 3 0
CS1XX Programming Fundamentals Lab 0 1
GE1XX Functional English 3 0
GE1XX Calculus & Analytic Geometry 3 0
GE1XX Discrete Structures 3 0
Add Maths-1(For Pre-Medical Students) NC NC
Total 14 2
Semester 2
CS1XX Digital Logic Design 2 0
CS1XX Digital Logic Design -Lab 0 1
CS1XX Object Oriented Programming 3 0
CS1XX Object Oriented Programming Lab 0 1
CS1XX Database Systems 3 0
CS1XX Database Systems Lab 0 1
MT1XX Multivariable Calculus 3 0
MT1XX Linear Algebra 3 0
Add Maths-2 (For Pre-Medical Students) NC NC
Total 14 3
Semester 3
CS2XX Information Security 2 0
CS2XX Information Security -Lab 0 1
GE2XX Natural Science (Applied Physics) 2 0
GE2xx Natural Science (Applied Physics Lab) 0 1
CS2XX Data Structures 3 0
CS2XX Data Structures Lab 0 1
CS2XX Computer Networks 2 0
CS2XX Computer Networks -Lab 0 1
CS2XX Software Engineering 3 0
MT2XX Probability& Statistics 3 0
Total 15 4
Semester 4
CS2XX Comp Organization & Assembly Language 2 0
CS2XX Comp Organization & Assembly Language - Lab 0 1
CS2XX Software Design & Architecture 3 0
CS2XX Software Construction & Development 2 0
CS2XX Software Construction & Development - Lab 0 1
CS2XX Artificial Intelligence 2 0
CS2XX Artificial Intelligence - Lab 0 1
GE1XX Expository Writing 3 0
CS2XX Islamic Studies 2 0
Total 14 3
Semester 5
CS3XX Operating Systems 2 0
CS3XX Operating Systems - Lab 0 1
CS3XX Software Quality Engineering 2 0
CS3XX Software Quality Engineering - Lab 0 1
CS3XX Software Requirement Engineering 2 0
CS3XX Software Requirement Engineering - Lab 0 1
CS3XX Domain Elective-1 2 0
CS3XX Domain Elective-1 Lab 0 1
CS3XX Domain Elective-2 2 0
CS3XX Domain Elective-2 Lab 0 1
GE2XX Social Science(Introduction to Management) 2 0
Total 12 5
Semester 6
CS3XX Software Project Management 2 0
CS3XX Software Project Management - Lab 0 1
CS3XX Parallel & Distributed Computing 2 0
CS3XX Parallel & Distributed Computing - Lab 0 1
CS3XX Domain Elective - 3 2 0
CS3XX Domain Elective - 3 Lab 0 1
CS3XX Domain Elective - 4 2 0
CS3XX Domain Elective - 4 Lab 0 1
CS3XX Domain Elective - 5 2 0
CS3XX Domain Elective - 5 Lab 0 1
Total 12 6
Semester 7
CS4XX Final Year Project - I 0 2 (0-6)
CS4XX Analysis of Algorithms 3 0
CS4XX Domain Elective - 7 2 0
CS4XX Domain Elective - 7 Lab 0 1
SS1XX Elective Supporting Course 3 0
EN4XX Technical & Business Writing 3 0
GE4XX Entrepreneurship 2 0
Total 13 3
Semester 8
CS4XX Final Year Project - II 0 4
GE4XX Arts & Humanities (Professional Practices) 2 0
GE4XX Ideology and Constitution of Pakistan 2 0
GE4XX Civics and Community Engagement 2 0
Total 6 4
Domain Elective Courses
Domain Elective -1 (Software Verification and Validation (Testing & QA))
Domain Electives -2 (Object Oriented Analysis & Design)
Domain Electives -3 (Computer Architecture)
Domain Electives -4 (Theory of Automata)
Domain Electives -5 (HCI & Computer Graphics)
Domain Electives -6 (Web Technologies)
Domain Electives -7 (Advanced Database Management)

Introduction to ICT:

Books:

  • “Computers, Communications & information - A user’s introduction” by Sarah, E. Hutchinson. Stacey, C. Swayer
  • “Introduction to Basic Information and Communication Technology (ICT): Basic ICT” by Emmanuel Kusi Achampong

Introduction to IT, Hardware, Computer Software, Internet and Web, Introduction to Data Communication and Computer Networks, Development, Introduction to Software Engineering

Programming Fundamentals:

Books:

  • “Programming Fundamentals - A Modular Structured Approach using C++” by Kenneth Leroy Busbee
  • “Introduction to C++ Programming” by Wan Anisha Wan Mohammad et al.

Introduction to programming languages, Introduction to C++, C/C++ Programming Basics, Loops and Decisions, Structures, Pointers, Functions, Arrays and Strings.

Digital Logic Design

Books:

  • "Digital Logic Design” by Mansaf Alam and Bashir Alam
  • "Digital Logic Design - A Rigorous Approach” by Guy Even, Moti Medina

Number systems, Logical Analysis, Combinational Logic, Sequential Logic, Data Processing, manipulation, data storage, logic families and logic design, FPGAs, Hardware description language like VERILOG

Object Oriented Programming

Books:

  • "Object Oriented Programming in C++” by Robert Lafore
  • "An Introduction to Object-Oriented Programming in C++ with Applications in Computer Graphics” by Graham M. Saeed

Evolution of Object Oriented (OO) programming, OO concepts and principles, problem solving in OO paradigm, OO program design process, classes, methods, objects and encapsulation, constructors and destructors, operator and function overloading, virtual functions, derived classes, inheritance and polymorphism, I/O and file processing, exception handling

Computer Organization and Assembly Language:

Books:
  • "Computer Organization and Architecture” by William Stallings
  • "Principles of Computer Organization and Assembly Language using Java Virtual Machine” by Patrick Juola

Introduction to microprocessors and computers, System Buses, Internal Memory, External Memory, Input/Output, Interrupts, DMA/IO Channels, Computer Arithmetic, Addressing Modes, CPU Structure and Functions, Control Unit Operations

Data Structure and Algorithms:

Books:

  • "Data Structures & Algorithms” by Alfred V. Aho et al
  • "Data Structures & Algorithms in C++” by Adam Drozdek

Introduction to Data structures and types of data structures, Definition of algorithm, running time of algorithm, examples, role of efficient algorithms, Definition of Recursion, Direct and Indirect Recursion, Examples of Recursive Functions, Linear Queue & Its Features, Linear Queue Implementation, Circular Queue, Linked List & Its Features, Linked List Implementation, Doubly Linked List & its Implementation, Stack & Its Implementation, Postfix Notation Concept, Implementation Of Postfix Notation, Binary Trees, Strictly Binary Tree, Complete Binary Tree, Almost Complete Binary Tree, Binary Tree Applications, Traversing Trees, Pre-Order Traversing In-Order Traversing, Post-Order Traversing, Bubble Sort, Quick Sort, Binary Sort, Merge Sort, Insertion Sort, Heap, Heap Construction, Heap Sort, Heap Sort Implementation. Hashing & its Implementation, Linear and Binary Search, What Are Graphs, Representation Of Directed Graphs, Graph Vocabulary, Graph Operations (Add Vertex, Add Edge), C++ Implementation, Hashing, dictionaries and hash tables, hashing function, hashing implementation using array and linked list.

Discrete Structures:

Books:

  • "Discrete Mathematics and Its Applications” by Kenneth H. Rosen
  • "Discrete Structures and Their Interactions” by Jason I. Brown

Mathematical reasoning, propositional and predicate logic, rules of inference, proof by induction, proof by contraposition, proof by contradiction, proof by implication, set theory, relations, equivalence relations and partitions, partial orderings, recurrence relations, functions, mappings, function composition, inverse functions, recursive functions, Number Theory, sequences, series, counting, inclusion and exclusion principle, pigeonhole principle, permutations and combinations, elements of graph theory, planar graphs, graph coloring, euler graph, Hamiltonian path, rooted trees, traversals.

First order differential equations, separation of variables, homogeneous, exact and linear first order ODE, higher order differential equations, Cauchy Euler differential equations, the method of variation of parameters, power series method, Laplace transformation, linearity and first shifting theorem dirac delta and gamma functions, differentiation and integral theorems, inverse Laplace transformation, system of linear differential equations, partial differential equations, method of separation of variables, solution of one dimensional heat and wave equations D'Alembert to solve wave equation

Design & Analysis of Algorithms

Books:

  • "Introduction to the design and Analysis of Algorithms” by Anany Levitin
  • "An Introduction to the Analysis of Algorithms” by Robert Sedgewick and Philippe Flajolet

Proof techniques, Induction, Summations, basic algorithms on numbers, complexity classes, Searching and Sorting, Asymptotic analysis , Divide-and-conquer: merge-sort, closest pair problems, collaborative filtering, Karatsuba algorithm, deterministic Selection, Greedy algorithms: Huffman codes, Minimum Spanning Tree, Interval Scheduling Dynamic programming: Weighted Independent Set in Paths, Weighted Interval Scheduling, Knapsack Problem, Sequence Alignment, Single Source Shortest Paths (Bellman-Ford Algorithm), BFS, DFS, Topological Sort, Shortest paths, The Class P and NP, Decision, Optimization and Search problems, NP Complete Problems, Reduction, P vs NP Question, Ford Fulkerson Algorithm, Max Flow-Min Cut Algorithm, Edmond Karp Algorithm, Applications, Standard Form, Geometry of LP, Simplex Algorithm, Closest pair in linear-time, Universal and uniform hashing, Randomized Selection, Randomized Quicksort, Minimum Cut algorithm, Easy vs. hard problems, Approximation Algorithm with absolute approximation guarantees, Hardness of Approximation, Relative Approximation Algorithm, Max Cut , Set Cover, Vertex Cover, Parallel machine scheduling, PTAS and FPTAS for Knapsack problem, Approximation algorithms for TSPLP- rounding based Approximation Algorithms

Theory of Automata:

Books:

  • "Elements of Automata Theory” by Jacques Sakarovitch
  • "Introduction to Automata, Theory, Languages and Computation” by John E. Hopcroft et al.

Finite State Models: Language definitions preliminaries, Regular expressions/Regular languages, Finite automata (FAs), Transition graphs (TGs), NFAs, Kleene’s theorem, Transducers (automata with output), Pumping lemma and non-regular language Grammars and PDA: CFGs, Derivations, derivation trees and ambiguity, Simplifying CFLs, Normal form grammars and parsing, Decidability, Context sensitive languages, grammars and linear bounded automata (LBA), Chomsky’s hierarchy of grammars Turing Machines Theory: Turing machines, Post machine, Variations on TM, TM encoding, Universal Turing Machine, Defining Computers by TMs.

Database Systems:

Books:

  • "Database Systems - A Practical Approach to Design, Implementation and Management” by Thomas Connolly and Carolyn Begg
  • "Fundamentals of Database Systems” by Ramez Elmasri

Basic database concepts, Database approach vs file based system, database architecture, three level schema architecture, data independence, relational data model, attributes, schemas, tuples, domains, relation instances, keys of relations, integrity constraints, relational algebra, selection, projection, Cartesian product, types of joins, normalization, functional dependencies, normal forms, entity relationship model, entity sets, attributes, relationship, entity-relationship diagrams, Structured Query Language (SQL), Joins and sub-queries in SQL, Grouping and aggregation in SQL, concurrency control, database backup and recovery, indexes, NoSQL systems.

Operating Systems:

  • "Operating Systems Concepts” by Abraham Silberschatz et al.
  • "Operating Systems” by Harvey M. Dietel

Operating systems basics, system calls, process concept and scheduling, inter-process communication, multithreaded programming, multithreading models, threading issues, process scheduling algorithms, thread scheduling, multiple-processor scheduling, synchronization, critical section, synchronization hardware, synchronization problems, deadlocks, detecting and recovering from deadlocks, memory management, swapping, contiguous memory allocation, segmentation & paging, virtual memory management, demand paging, thrashing, memory-mapped files, file systems, file concept, directory and disk structure, directory implementation, free space management, disk structure and scheduling, swap space management, system protection, virtual machines, operating system security

Software Engineering:

Books:

  • "Software Engineering” by Ian Sommerville
  • "Software Engineering - A Practitioner’s Approach” by Roger S. Pressman

Nature of Software, Overview of Software Engineering, Professional software development,Software engineeringpractice, Software process structure, Software process models, Agile software Development, Agile process models, Agile development techniques, Requirements engineering process, Functional and non-functional requirements, Context models, Interaction models, Structural models, behavioral models, model driven engineering, Architectural design, Design and implementation, UML diagrams, Design patterns, Software testing and quality assurance, Software evolution, Project management and project planning, configuration management, Software Process improvement.

Artificial Intelligence:

Books:

  • "Introduction to Artificial Intelligence” by Wolfgang Ertel
  • "Artificial Intelligence – When Do Machines Take Over?” by Klaus Mainzer

Introduction (Introduction, basic component of AI, Identifying AI systems, branches of AI, etc.); Reasoning and Knowledge Representation (Introduction to Reasoning and Knowledge Representation, Propositional Logic, First order Logic); Problem Solving by Searching (Informed searching, Uninformed searching, Local searching.); Constraint Satisfaction Problems; Adversarial Search (Min-max algorithm, Alpha beta pruning, Game-playing); Learning (Unsupervised learning, Supervised learning, Reinforcement learning) ;Uncertainty handling (Uncertainty in AI, Fuzzy logic); Recent trends in AI and applications of AI algorithms (trends, Case study of AI systems, Analysis of AI systems).

Computer Networks:

Books:

  • "Computer Networks – A Systems Approach” by Larry L. Peterson and Bruce S. Davie
  • "Computer Networks and Internets” by Douglas E. Comer

Introduction to Computer Networks, Network Hardware, LAN, MAN, WAN, Inter Networks and the Internet, End Systems, Client and Servers, Connectionless and Connection Oriented Services, The Network Core: Circuit Switching and Packet Switching, Network Access and Physical Media, ISPs and Internet Backbones, Delay and Loss in Packet Switched Networks, Protocol Layering, Design Issues for Layers, Service Models. OSI Reference Model, Principles of Application-Layer Protocols, The Web and HTTP, FTP, DNS, WWW, Electronic Mail, Multimedia, Transport Layer Introduction, Transport Protocols, UDP, TCP/IP, Network Layer Introduction, Routing Algorithms, Congestion and Congestion Control Algorithms, QoS, Tunneling, Inter-network Routing and Addressing, Introduction to MAC and Channel Allocation, MAC Protocols, Bridges, Spanning Tree, Remote Bridges, Repeaters, Hub, Bridges, Switches, Routers, and Gateways, Introduction to Data Link Layer, Framing, Error Control, Flow Control, Error Detection and Correction

Parallel & Distributed Computing:

Books:

  • "Parallel and Distributed Computing – Architectures and Algorithms” by S. K. Basu
  • "Parallel and Distributed Computing Applications” by Zoran Gacovski

Introduction, Parallel and Distributed Computing, Parallel and Distrubuted Architectures, Socket programming, Parallel Performance, Shared Memory and Threads, Parallel Algorithms, Parallel Algorithms, OpenMP, Scalable Algorithms, Message Passing, Distributed Systems, MapReduce, Clusters, Distributed Coordination, Security, Distributed File Systems, Security, Distributed Shared Memory, Peer-to-Peer, Cloud Computing

Information Security:

Books:

  • "Information Security – Principles and Practices” by Mark Merkow and Jim Breithaupt
  • "Elementary Information Security” by Richard E. Smith

Information security foundations, security design principles; security mechanisms, symmetric and asymmetric cryptography, encryption, hash functions, digital signatures, key management, authentication and access control; software security, vulnerabilities and protections, malware, database security; network security, firewalls, intrusion detection; security policies, policy formation and enforcement, risk assessment, cybercrime, law and ethics in information security, privacy and anonymity of data.

Focus Areas:
  • Software Design & Architecture
  • Software Quality Assurance
  • Software Design
  • Software Testing
  • Mobile & Web Design/ Architecture
  • Software Project Management
  • Artificial Intelligence
  • Software Configuration Management
Eligibility Criteria
  1. Matric/ Equivalent Certificate
  2. b. HSSC/ DAE/ Equivalent with Mathematics with minimum 50% overall marks OR HSSC Pre-Medical/ Equivalent with minimum 50% overall marks*
  3. No Entry Test Required

*HSSC Pre-Medical/ Equivalent applicants, if admitted, will be required to study additional two Mathematics courses, worth 6 credit hours, during first year of studies at the institution.

Number of Seats
Computer Science 100
Artificial Intelligence 50
Data Science 50
Software Engineering 50