Revision of Concepts of OOP, Importance of learning design patterns, Types of Design Patterns - Structural, Behavioral and Creational Patterns, Creational Patterns – Singleton, Factory, Factory Method, Abstract Factory, Builder, Prototype and Object Pool, Behavioral Patterns - Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, Strategy, Template Method, Visitor and Null Object, Structural Patterns – Adapter, Bridge, Composite, Decorator, Flyweight and Proxy, REFACTORING CODE SMELL, Different type of code smells - Inappropriate Naming, Comments, Dead Code, Duplicated code, Primitive Obsession, Large Class, Lazy Class, Alternative Class with Different Interface, Long Method, Long Parameter List, Switch Statements, Speculative Generality, Oddball Solution, Feature Envy, Refused Bequest, Black Sheep and Train Wreck, Design Principles (SOLID) - Single responsibility principle, Open Close Principle, Liskov substitution principle, Interface segregation principle, Dependency Inversion principle.
Course Catalogue
Software Testing Life Cycle (STLC), SDLC vs STLC; Testing Levels; Testing methods; Testing types: Specification-based vs. code-based, black-box vs. white-box, functional vs. structural testing; unit, integration, system, acceptance, and regression testing; Load, Performance, Stress, Unit Testing; Verification vs. validation; Test planning: scenario, case, traceability matrix; ISO Standards; Agile testing; Testing Estimation techniques; Introduction to software reliability, quality control and quality assurance; Formal verification methods; static and dynamic program verification. Testing Internet Applications - Security and Performance Testing, Debugging, Test Driven Development (TDD), Behavior Driven Development (BDD).
Lab works based CSE 4473.
Introduction to Android, Java Overview, Android Widgets, Layout Designs, Utilization of media files – text, mp3, jpeg, jpg, Activity States, Internal/External and Temporary/Permanent Data Storage.
This is an advanced course in UNIX system facilities. It complements the operating systems course, in that it provides hands-on experience with such facilities as signals, semaphores and file locks. Familiarity with the C language is assumed. About 40% of the course is devoted to UNIX shell programming and some useful utilities like sed and awk. The rest of the course does the UNIX system calls in detail – unbuffered I/O, directories, process creation, signals, pipes, record locks, interposes communication, terminal handling and some tcp/ip calls.
Lab works based CSE 4477.
This course explain the capabilities of both humans and computers from the viewpoint of human information processing, describe typical human–computer interaction (HCI) models and styles, as well as various historic HCI paradigms, apply an interactive design process and universal design principles to designing HCI systems, describe and use HCI design principles, standards and guidelines, analyze and identify user models, user support, socio-organizational issues, and stakeholder requirements of HCI systems, discuss tasks and dialogs of relevant HCI systems based on task analysis and dialog design, analyze and discuss HCI issues in groupware, ubiquitous computing, virtual reality, multimedia, and Word Wide Web-related environments.
As necessary.
This course describes properties and architecture of enterprise systems, account for strategies and approaches for implementation and use of enterprise systems, explain how enterprise systems support organizations, analyses implementation and use of enterprise systems from a socio-technical perspective, apply socio-technical models and provide recommendations for implementation and use of enterprise systems implementation, discuss and present critical issues related to implementation and use of enterprise systems, critically assess the role of enterprise systems in organizations, argue for different enterprise systems solutions.
Lab works based CSE 4483.