Pages - Menu

Saturday, July 5, 2014

Getting started with Laravel 4

Discover Laravel – one of the most expressive, robust, and flexible PHP web application frameworks around

Overview

Provides a concise introduction to all the concepts needed to get started with Laravel
Walks through the different steps involved in creating a complete Laravel application
Gives an overview of Laravel’s advanced features that can be used when applications grow in complexity
Learn how to build structured, more maintainable, and more secure applications with less code by using Laravel

In Detail

PHP powers many of the largest websites on the planet. Yet, even though it was specifically created for the Web, its shortcomings never cease to frustrate developers. This is where a tool like Laravel comes in. Rather than reinventing the wheel, Laravel reuses tried and tested components and principles and bundles them to form a cohesive whole and makes PHP development enjoyable again.Getting Started with Laravel 4 is a practical and concise introduction to the Laravel PHP framework. It covers its fundamental concepts and presents the many features that will boost your productivity when developing web applications. After introducing the key concepts and installing Composer, you will build a CRUD application and add more features to it in each successive chapter.

This book introduces you to a different and more enjoyable way of writing PHP applications. You will start by learning about the key principles and the same development practices that Laravel encourages. Then, in subsequent chapters, you will create and successively add more features to a web application.

You will learn how to use the arsenal of tools at your disposal and probably pick up some useful techniques along the way. Indeed, everything you will learn in this book is highly transferrable and applicable to otherMVC frameworks. Laravel’s routing mechanism, templating language, and object-relational mapper will have no more secrets for you. You will learn how to authenticate users, write tests, and create command line utilities that interact with your application with disconcerting ease. In addition to this, you will probably be surprised by the simplicity and expressiveness of your code.


What you will learn from this book

  • Install Laravel and other PHP packages with Composer
  • Sketch out and structure your application with routes and controllers
  • Create hierarchical templates with Blade
  • Define models and how to issue database queries in PHP with Eloquent
  • Authenticate users securely with minimal effort
  • Avoid security issues and write bulletproof code
  • Develop with confidence with the help of tests
  • Set up and create powerful command line utilities

Approach


This book follows a practical and easy-to-follow approach and is packed with real-world examples to understand all the fundamentals and concepts in a very concise way.

Who this book is written for


This book is ideal for web developers who want to get up to speed with Laravel quickly. You are expected to have some experience with the PHP programming language – or any C-like languages such as JavaScript , Perl, or Java along with some understanding of basic OOP concepts. Any experience with MVC frameworks such as ASP.NET MVC or Ruby on Rails will certainly be beneficial but not required. Lastly, some familiarity with command line interfaces will also help but is not essential either.
Table of Contents

  • Chapter 1: Meeting Laravel
  • Chapter 2: Composer All Over
  • Chapter 3: Your First Application
  • Chapter 4: Authentication and Security
  • Chapter 5: Testing – It’s Easier Than You Think
  • Chapter 6: A Command-line Companion Called Artisan
  • Chapter 7: Architecting Ambitious Applications
  • Appendix: An Arsenal of Tools


Book Details

  • Title: Getting Started with Laravel 4
  • Author: RaphaĆ«l Saunier
  • Length: 128 pages
  • Edition: 1
  • Language: English
  • Publisher: Packt Publishing
  • Publication Date: 2014-01-20
  • ISBN-10: 1783287039
  • ISBN-13: 9781783287031

Download links: 


Laravel: Code Bright


DETAIL
Web application development for the Laravel framework
version 4 for beginners

  • Author: Barry Burd
  • Language: English
  • Published: 2014
  • Page: 458
  • Format: pdf

CONTENTS



The Primers 1
Namespaces 1
JSON 7
Composer 13

Architecture 33
The Container 33
Facades35
Flexibility37
Robustness 38

Getting Started 39
Requirements 39
Installation 40
Web Server Configuration 42
Project Structure 46

Basic Routing 51
Route Parameters 56

Responses 59
Views 60
View Data 61
Redirects 63
Custom Responses 64
Response Shortcuts 68

Filters 71
Basic Filters 71
Multiple Filters75
Filter Parameters 76
Filter Classes 80
Global Filters 81
Default Filters 82
Pattern Filters 83

Controllers 84
Creating Controllers 84
Controller Routing 86
RESTful Controllers 88

Blade 90
Creating Templates 90
PHP Output 91
Control Structures 93
Templates 96
Template Inheritance 97
Comments 103

Advanced Routing 105
Named Routes 105
Secure Routes 107
Parameter Constraints 108
Route Groups 109
Route Prefixing 110
Domain Routing 111

URL Generation 114
The current URL 114
Generating Framework URLs 116
Asset URLs 120
Generation Shortcuts 122

Request Data 125
Retrieval 126
Old Input 132
Uploaded Files 138
Cookies 145

Forms 149
Opening Forms 150
Form Fields 155
Form Buttons 166
Form Macros 168
Form Security 170

Validation 173
Simple Validation 175
Validation Rules183
Error Messages 192
Custom Validation Rules 201
Custom Validation Messages 204

Databases 208
Abstraction 208
Configuration 209
Preparing 215

Schema Builder 216
Creating Tables 216
Column Types 218
Special Column Types 229
Column Modifiers 230
Updating Tables 236
Dropping Tables 242
Schema Tricks 243

Migrations 247
Basic Concept 247
Creating Migrations 248
Running Migrations 252
Rolling Back 257
Migration Tricks 258

Eloquent ORM 260
Creating new models. 262
Reading Existing Models 270
Updating Existing Models 271
Deleting Existing Models 274

Eloquent Queries 277
Preperation 277
Eloquent To String 280
Query Structure 285
Fetch Methods 287
Query Constraints 298
Magic Where Queries 316
Query Scopes 318

Eloquent Collections 321
The Collection Class 321
Collection Methods 321
Best Practice 343

Eloquent Relationships 345
Introduction to Relationships346
Implementing Relationships 351
Relating and Querying 356

Build An App 1: Playstation Game Collection 361
Let’s think this through. 361
Time to get hacking! 362
Database 364
Controller 367
Routes 368
Views 369
Application Logic 377
Relax 382
Homework 383

Authentication 384

Download links:

Friday, July 4, 2014

The Agile Samurai: How Agile Masters Deliver Great Software

Book Description

Here are three simple truths about software development:

1. You can't gather all the requirements up front.
2. The requirements you do gather will change.
3. There is always more to do than time and money will allow.

Those are the facts of life. But you can deal with those facts (and more) by becoming a fierce software-delivery professional, capable of dispatching the most dire of software projects and the toughest delivery schedules with ease and grace.


Download links: 


Wednesday, July 2, 2014

PHP Team Development

PHP Team Development

Easy and effective team work using MVC, agile development, source control, testing, bug tracking, and more

Given the nature of the business environment today, organizations that want to build value-added enterprise PHP applications need a team of PHP people rather than an individual. You've got a team! What next? Customizing such applications to meet with organizational objectives and maintaining these applications over time can be quite a tedious task for your team with so many people involved.

In this book, you will explore how you can break up complex PHP projects into simple sub-parts that multiple team members can work on. The book highlights the use of the MVC pattern for separating concerns in the application and agile principles to deliver code that works.

Book Details

Publisher:Packt Publishing
By:Samisa Abeysinghe
ISBN:978-1-84719-506-7
Year:

Download links:

Pro Agile .NET Development with Scrum pdf free download

Book Description 

Pro Agile .NET Development with Scrum guides you through a real-world ASP.NET project and shows how agile methodology is put into practice.

There is plenty of literature on the theory behind agile methodologies, but no book on the market takes the concepts of agile practices and applies these in a practical manner to an end-to-end ASP.NET project, especially the estimating, requirements and management aspects of a project. Pro Agile .NET Development with Scrum takes you through the initial stages of a project - gathering requirements and setting up an environment - through to the development and deployment stages using an agile iterative approach: namely, Scrum. 



Book Details

Publisher:Apress
By:Jerrel Blankenship, Matthew Bussa, Scott Millett
ISBN:978-1-4302-3533-0

Download links:

Tuesday, July 1, 2014

Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration

 


Praise for Lean-Agile Acceptance Test-Driven Development
 
Lean-Agile Acceptance Test-Driven Development tells a tale about three fictive project stakeholders as they use agile techniques to plan and execute their project. The format works well for the book; this book is easy to read, easy to understand, and easy to apply.”
—Johannes Brodwall, Chief Scientist, Steria Norway
 
“Agile development, some say, is all about pairing, and, yes, I’m a believer in the power of pairing. After reading this book, however, I became a fan of the ‘triad’—the customer or business analyst + the developer + the tester, who work collaboratively on acceptance tests to drive software development. I’ve written some patterns for customer interaction and some patterns for testing and I like what Ken Pugh has chosen to share with his readers in this down-to-earth, easy-to-read book. It’s a book full of stories, real case studies, and his own good experience. Wisdom worth reading!”
—Linda Rising, Coauthor of Fearless Change: Patterns for Introducing New Ideas

“The Agile Manifesto, Extreme Programming, User Stories, and Test-Driven Development have enabled tremendous gains in software development; however, they’re not enough. The question now becomes ‘How can I ensure clear requirements, correct implementation, complete test coverage, and more importantly, customer satisfaction and acceptance?’ The missing link is acceptance as defined by the customer in their own domain language. Lean-Agile Acceptance Test-Driven Development is the answer.”
—Bob Bogetti, Lead Systems Designer, Baxter Healthcare
 
“Ken Pugh’s Lean-Agile Acceptance Test-Driven Development shows you how to integrate essential requirements thinking, user acceptance tests and sounds, and lean-agile practices, so you can deliver product requirements correctly and efficiently. Ken’s book shows you how table-driven specification, intertwined with requirements modeling, drives out acceptance criteria. Lean-Agile Acceptance Test-Driven Development is an essential guide for lean-agile team members to define clear, unambiguous requirements while also validating needs with acceptance tests.”
—Ellen Gottesdiener, EBG Consulting, www.ebgconsulting.com, Author of Requirements by Collaboration and The Software Requirements Memory Jogger

“If you are serious about giving Agile Testing a chance and only have time to read one book, read this one.”
—David Vydra, http://testdriven.com

“This book provides clear, straightforward guidance on how to use business-facing tests to drive software development. I’m excited about the excellent information in this book. It’s a great combination of the author’s experiences, references to other experts and research, and an example project that covers
many angles of ATDD. A wide range of readers will learn a lot that they can put to use, whether they work on projects that call themselves lean or agile or simply want to deliver the best possible software product.”
—Lisa Crispin, Agile Tester, ePlan Services, Inc., Author of Agile Testing

Within the framework of Acceptance Test-Driven-Development (ATDD), customers, developers, and testers collaborate to create acceptance tests that thoroughly describe how software should work from the customer’s viewpoint. By tightening the links between customers and agile teams, ATDD can significantly improve both software quality and developer productivity.

This is the first start-to-finish, real-world guide to ATDD for every agile project participant. Leading agile consultant Ken Pugh begins with a dialogue among a customer, developer, and tester, explaining the “what, why, where, when, and how” of ATDD and illuminating the experience of participating in it.

Next, Pugh presents a practical, complete reference to each facet of ATDD, from creating simple tests to evaluating their results. He concludes with five diverse case studies, each identifying a realistic set of problems and challenges with proven solutions.

Coverage includes

•     How to develop software with fully testable requirements
•     How to simplify and componentize tests and use them to identify missing logic
•     How to test user interfaces, service implementations, and other tricky elements of a software system
•     How to identify requirements that are best handled outside software
•     How to present test results, evaluate them, and use them to assess a project’s overall progress
•     How to build acceptance tests that are mutually beneficial for development organizations and customers
•     How to scale ATDD to large projects
Download links:

Lean UX: Applying Lean Principles to Improve User Experience [ebook] by Jeff Gothelf (epub/mobi/pdf)

 
The Lean UX approach to interaction design is tailor-made for today’s web-driven reality. In this insightful book, leading advocate Jeff Gothelf teaches you valuable Lean UX principles, tactics, and techniques from the ground up—how to rapidly experiment with design ideas, validate them with real users, and continually adjust your design based on what you learn.

Inspired by Lean and Agile development theories, Lean UX lets you focus on the actual experience being designed, rather than deliverables. This book shows you how to collaborate closely with other members of the product team, and gather feedback early and often. You’ll learn how to drive the design in short, iterative cycles to assess what works best for the business and the user. Lean UXshows you how to make this change—for the better.
  • Frame a vision of the problem you’re solving and focus your team on the right outcomes
  • Bring the designers’ toolkit to the rest of your product team
  • Share your insights with your team much earlier in the process
  • Create Minimum Viable Products to determine which ideas are valid
  • Incorporate the voice of the customer throughout the project cycle
  • Make your team more productive: combine Lean UX with Agile’s Scrum framework
  • Understand the organizational shifts necessary to integrate Lean UX
Lean UX received the 2013 Jolt Award from Dr. Dobb's Journal as the best book of the year. The publication's panel of judges chose five notable books, published during a 12-month period ending June 30, that every serious programmer should read.
 
Download links pdf:
 
Download links epub/mobi:

SWEBOK v3.0 : Guide to the software Engineering body of knowledge



The SWEBOK Guide:
  • characterizes the contents of the software engineering discipline
  • promotes a consistent view of software engineering worldwide
  • clarifies software engineering's place with respect to other disciplines
  • provides a foundation for training materials and curriculum development, and
  • provides a basis for certification and licensing of software engineers.

SWEBOK Guide V3.0 Topics

Chapter 1: Software Requirements

1. Software Requirements Fundamentals
1.1. Definition of a Software Requirement
1.2. Product and Process Requirements
1.3. Functional and Nonfunctional Requirements
1.4. Emergent Properties
1.5. Quantifiable Requirements
1.6. System Requirements and Software Requirements
2. Requirements Process
2.1. Process Models
2.2. Process Actors
2.3. Process Support and Management
2.4. Process Quality and Improvement
3. Requirements Elicitation
3.1. Requirements Sources
3.2. Elicitation Techniques
4. Requirements Analysis
4.1. Requirements Classification
4.2. Conceptual Modeling
4.3. Architectural Design and Requirements Allocation
4.4. Requirements Negotiation
4.5. Formal Analysis
5. Requirements Specification
5.1. System Definition Document
5.2. System Requirements Specification
5.3. Software Requirements Specification
6. Requirements Validation
6.1. Requirements Reviews
6.2. Prototyping
6.3. Model Validation
6.4. Acceptance Tests
7. Practical Considerations
7.1. Iterative Nature of the Requirements Process
7.2. Change Management
7.3. Requirements Attributes
7.4. Requirements Tracing
7.5. Measuring Requirements
8. Software Requirements Tools

Chapter 2: Software Design

1. Software Design Fundamentals
1.1. General Design Concepts
1.2. Context of Software Design
1.3. Software Design Process
1.4. Software Design Principles
2. Key Issues in Software Design
2.1. Concurrency
2.2. Control and Handling of Events
2.3. Data Persistence
2.4. Distribution of Components
2.5. Error and Exception Handling and Fault Tolerance
2.6. Interaction and Presentation
2.7. Security
3. Software Structure and Architecture
3.1. Architectural Structures and Viewpoints
3.2. Architectural Styles
3.3. Design Patterns
3.4. Architecture Design Decisions
3.5. Families of Programs and Frameworks
4. User Interface Design
4.1. General User Interface Design Principles
4.2. User Interface Design Issues
4.3. The Design of User Interaction Modalities
4.4. The Design of Information Presentation
4.5. User Interface Design Process
4.6. Localization and Internationalization
4.7. Metaphors and Conceptual Models
5. Software Design Quality Analysis and Evaluation
5.1. Quality Attributes
5.2. Quality Analysis and Evaluation Techniques
5.3. Measures
6. Software Design Notations
6.1. Structural Descriptions (Static View)
6.2. Behavioral Descriptions (Dynamic View)
7. Software Design Strategies and Methods
7.1. General Strategies
7.2. Function-Oriented (Structured) Design
7.3. Object-Oriented Design
7.4. Data Structure-Centered Design
7.5. Component-Based Design (CBD)
7.6. Other Methods
8. Software Design Tools

Chapter 3: Software Construction

1. Software Construction Fundamentals
1.1. Minimizing Complexity
1.2. Anticipating Change
1.3. Constructing for Verification
1.4. Reuse
1.5. Standards in Construction
2. Managing Construction
2.1. Construction in Life Cycle Models
2.2. Construction Planning
2.3. Construction Measurement
3. Practical Considerations
3.1. Construction Design
3.2. Construction Languages
3.3. Coding
3.4. Construction Testing
3.5. Construction for Reuse
3.6. Construction with Reuse
3.7. Construction Quality
3.8. Integration
4. Construction Technologies
4.1. API Design and Use
4.2. Object-Oriented Runtime Issues
4.3. Parameterization and Generics
4.4. Assertions, Design by Contract, and Defensive Programming
4.5. Error Handling, Exception Handling, and Fault Tolerance
4.6. Executable Models
4.7. State-Based and Table-Driven Construction Techniques
4.8. Runtime Configuration and Internationalization
4.9. Grammar-Based Input Processing
4.10. Concurrency Primitives
4.11. Middleware
4.12. Construction Methods for Distributed Software
4.13. Constructing Heterogeneous Systems
4.14. Performance Analysis and Tuning
4.15. Platform Standards
4.16. Test-First Programming
5. Software Construction Tools
5.1. Development Environments
5.2. GUI Builders
5.3. Unit Testing Tools
5.4. Profiling, Performance Analysis, and Slicing Tools

Chapter 4: Software Testing

1. Software Testing Fundamentals
1.1. Testing-Related Terminology
1.2. Key Issues
1.3. Relationship of Testing to Other Activities
2. Test Levels
2.1. The Target of the Test
2.2. Objectives of Testing
3. Test Techniques
3.1. Based on the Software Engineer's Intuition and Experience
3.2. Input Domain-Based Techniques
3.3. Code-Based Techniques
3.4. Fault-Based Techniques
3.5. Usage-Based Techniques
3.6. Model-Based Testing Techniques
3.7. Techniques Based on the Nature of the Application
3.8. Selecting and Combining Techniques
4. Test-Related Measures
4.1. Evaluation of the Program Under Test
4.2. Evaluation of the Tests Performed
5. Test Process
5.1. Practical Considerations
5.2. Test Activities
6. Software Testing Tools
6.1. Testing Tool Support
6.2. Categories of Tools

Chapter 5: Software Maintenance

1. Software Maintenance Fundamentals
1.1. Definitions and Terminology
1.2. Nature of Maintenance
1.3. Need for Maintenance
1.4. Majority of Maintenance Costs
1.5. Evolution of Software
1.6. Categories of Maintenance
2. Key Issues in Software Maintenance
2.1. Technical Issues
2.2. Management Issues
2.3. Maintenance Cost Estimation
2.4. Software Maintenance Measurement
3. Maintenance Process
3.1. Maintenance Processes
3.2. Maintenance Activities
4. Techniques for Maintenance
4.1. Program Comprehension
4.2. Reengineering
4.3. Reverse Engineering
4.4. Migration
4.5. Retirement
5. Software Maintenance Tools

Chapter 6: Software Configuration Management

1. Management of the SCM Process
1.1. Organizational Context for SCM
1.2. Constraints and Guidance for the SCM Process
1.3. Planning for SCM
1.4. SCM Plan
1.5. Surveillance of Software Configuration Management
2. Software Configuration Identification
2.1. Identifying Items to Be Controlled
2.2. Software Library
3. Software Configuration Control
3.1. Requesting, Evaluating, and Approving Software Changes
3.2. Implementing Software Changes
3.3. Deviations and Waivers
4. Software Configuration Status Accounting
4.1. Software Configuration Status Information
4.2. Software Configuration Status Reporting
5. Software Configuration Auditing
5.1. Software Functional Configuration Audit
5.2. Software Physical Configuration Audit
5.3. In-Process Audits of a Software Baseline
6. Software Release Management and Delivery
6.1. Software Building
6.2. Software Release Management
7. Software Configuration Management Tools

Chapter 7: Software Engineering Management

1. Initiation and Scope Definition
1.1. Determination and Negotiation of Requirements
1.2. Feasibility Analysis
1.3. Process for the Review and Revision of Requirements
2. Software Project Planning
2.1. Process Planning
2.2. Determine Deliverables
2.3. Effort, Schedule, and Cost Estimation
2.4. Resource Allocation
2.5. Risk Management
2.6. Quality Management
2.7. Plan Management
3. Software Project Enactment
3.1. Implementation of Plans
3.2. Software Acquisition and Supplier Contract Management
3.3. Implementation of Measurement Process
3.4. Monitor Process
3.5. Control Process
3.6. Reporting
4. Review and Evaluation
4.1. Determining Satisfaction of Requirements
4.2. Reviewing and Evaluating Performance
5. Closure
5.1. Determining Closure
5.2. Closure Activities
6. Software Engineering Measurement
6.1. Establish and Sustain Measurement Commitment
6.2. Plan the Measurement Process
6.3. Perform the Measurement Process
6.4. Evaluate Measurement
7. Software Engineering Management Tools

Chapter 8: Software Engineering Process

1. Software Process Definition
1.1. Software Process Management
1.2. Software Process Infrastructure
2. Software Life Cycles
2.1. Categories of Software Processes
2.2. Software Life Cycle Models
2.3. Software Process Adaptation
2.4. Practical Considerations
3. Software Process Assessment and Improvement
3.1. Software Process Assessment Models
3.2. Software Process Assessment Methods
3.3. Software Process Improvement Models
3.4. Continuous and Staged Software Process Ratings
4. Software Measurement
4.1. Software Process and Product Measurement
4.2. Quality of Measurement Results
4.3. Software Information Models
4.4. Software Process Measurement Techniques
5. Software Engineering Process Tools

Chapter 9: Software Engineering Models and Methods

1. Modeling
1.1. Modeling Principles
1.2. Properties and Expression of Models
1.3. Syntax, Semantics, and Pragmatics
1.4. Preconditions, Postconditions, and Invariants
2. Types of Models
2.1. Information Modeling
2.2. Behavioral Modeling
2.3. Structure Modeling
3. Analysis of Models
3.1. Analyzing for Completeness
3.2. Analyzing for Consistency
3.3. Analyzing for Correctness
3.4. Traceability
3.5. Interaction Analysis
4. Software Engineering Methods
4.1. Heuristic Methods
4.2. Formal Methods
4.3. Prototyping Methods
4.4. Agile Methods

Chapter 10: Software Quality

1. Software Quality Fundamentals
1.1. Software Engineering Culture and Ethics
1.2. Value and Costs of Quality
1.3. Models and Quality Characteristics
1.4. Software Quality Improvement
1.5. Software Safety
2. Software Quality Management Processes
2.1. Software Quality Assurance
2.2. Verification & Validation
2.3. Reviews and Audits
3. Practical Considerations
3.1. Software Quality Requirements
3.2. Defect Characterization
3.3. Software Quality Management Techniques
3.4. Software Quality Measurement
4. Software Quality Tools

Chapter 11: Software Engineering Professional Practice

1. Professionalism
1.1. Accreditation, Certification, and Licensing
1.2. Codes of Ethics and Professional Conduct
1.3. Nature and Role of Professional Societies
1.4. Nature and Role of Software Engineering Standards
1.5. Economic Impact of Software
1.6. Employment Contracts
1.7. Legal Issues
1.8. Documentation
1.9. Tradeoff Analysis
2. Group Dynamics and Psychology
2.1. Dynamics of Working in Teams/Groups
2.2. Individual Cognition
2.3. Dealing with Problem Complexity
2.4. Interacting with Stakeholders
2.5. Dealing with Uncertainty and Ambiguity
2.6. Dealing with Multicultural Environments
3. Communication Skills
3.1. Reading, Understanding, and Summarizing
3.2. Writing
3.3. Team and Group Communication
3.4. Presentation Skills

Chapter 12: Software Engineering Economics

1. Software Engineering Economics Fundamentals
1.1. Finance
1.2. Accounting
1.3. Controlling
1.4. Cash Flow
1.5. Decision-Making Process
1.6. Valuation
1.7. Inflation
1.8. Depreciation
1.9. Taxation
1.10. Time-Value of Money
1.11. Efficiency
1.12. Effectiveness
1.13. Productivity
2. Life Cycle Economics
2.1. Product
2.2. Project
2.3. Program
2.4. Portfolio
2.5. Product Life Cycle
2.6. Project Life Cycle
2.7. Proposals
2.8. Investment Decisions
2.9. Planning Horizon
2.10. Price and Pricing
2.11. Cost and Costing
2.12. Performance Measurement
2.13. Earned Value Management
2.14. Termination Decisions
2.15. Replacement and Retirement Decisions
3. Risk and Uncertainty
3.1. Goals, Estimates, and Plans
3.2. Estimation Techniques
3.3. Addressing Uncertainty
3.4. Prioritization
3.5. Decisions under Risk
3.6. Decisions under Uncertainty
4. Economic Analysis Methods
4.1. For-Profit Decision Analysis
4.2. Minimum Acceptable Rate of Return
4.3. Return on Investment
4.4. Return on Capital Employed
4.5. Cost-Benefit Analysis
4.6. Cost-Effectiveness Analysis
4.7. Break-Even Analysis
4.8. Business Case
4.9. Multiple Attribute Evaluation
4.10. Optimization Analysis
5. Practical Considerations
5.1. The "Good Enough" Principle
5.2. Friction-Free Economy
5.3. Ecosystems
5.4. Offshoring and Outsourcing

Chapter 13: Computing Foundations

1. Problem Solving Techniques
1.1. Definition of Problem Solving
1.2. Formulating the Real Problem
1.3. Analyze the Problem
1.4. Design a Solution Search Strategy
1.5. Problem Solving Using Programs
2. Abstraction
2.1. Levels of Abstraction
2.2. Encapsulation
2.3. Hierarchy
2.4. Alternate Abstractions
3. Programming Fundamentals
3.1. The Programming Process
3.2. Programming Paradigms
4. Programming Language Basics
4.1. Programming Language Overview
4.2. Syntax and Semantics of Programming Languages
4.3. Low-Level Programming Languages
4.4. High-Level Programming Languages
4.5. Declarative vs. Imperative Programming Languages
5. Debugging Tools and Techniques
5.1. Types of Errors
5.2. Debugging Techniques
5.3. Debugging Tools
6. Data Structure and Representation
6.1. Data Structure Overview
6.2. Types of Data Structure
6.3. Operations on Data Structures
7. Algorithms and Complexity
7.1. Overview of Algorithms
7.2. Attributes of Algorithms
7.3. Algorithmic Analysis
7.4. Algorithmic Design Strategies
7.5. Algorithmic Analysis Strategies
8. Basic Concept of a System
8.1. Emergent System Properties
8.2. Systems Engineering
8.3. Overview of a Computer System
9. Computer Organization
9.1. Computer Organization Overview
9.2. Digital Systems
9.3. Digital Logic
9.4. Computer Expression of Data
9.5. The Central Processing Unit (CPU)
9.6. Memory System Organization
9.7. Input and Output (I/O)
10. Compiler Basics
10.1. Compiler/Interpreter Overview
10.2. Interpretation and Compilation
10.3. The Compilation Process
11. Operating Systems Basics
11.1. Operating Systems Overview
11.2. Tasks of an Operating System
11.3. Operating System Abstractions
11.4. Operating Systems Classification
12. Database Basics and Data Management
12.1. Entity and Schema
12.2. Database Management Systems (DBMS)
12.3. Database Query Language
12.4. Tasks of DBMS Packages
12.5. Data Management
12.6. Data Mining
13. Network Communication Basics
13.1. Types of Network
13.2. Basic Network Components
13.3. Networking Protocols and Standards
13.4. The Internet
13.5. Internet of Things
13.6. Virtual Private Network (VPN)
14. Parallel and Distributed Computing
14.1. Parallel and Distributed Computing Overview
14.2. Difference between Parallel and Distributed Computing
14.3. Parallel and Distributed Computing Models
14.4. Main Issues in Distributed Computing
15. Basic User Human Factors
15.1. Input and Output
15.2. Error Messages
15.3. Software Robustness
16. Basic Developer Human Factors
16.1. Structure
16.2. Comments
17. Secure Software Development and Maintenance
17.1. Software Requirements Security
17.2. Software Design Security
17.3. Software Construction Security
17.4. Software Testing Security
17.5. Build Security into Software Engineering Process
17.6. Software Security Guidelines

Chapter 14: Mathematical Foundations

1. Set, Relations, Functions
1.1. Set Operations
1.2. Properties of Set
1.3. Relation and Function
2. Basic Logic
2.1. Propositional Logic
2.2. Predicate Logic
3. Proof Techniques
3.1. Methods of Proving Theorems
4. Basics of Counting
5. Graphs and Trees
5.1. Graphs
5.2. Trees
6. Discrete Probability
7. Finite State Machines
8. Grammars
8.1. Language Recognition
9. Numerical Precision, Accuracy, and Errors
10. Number Theory
10.1. Divisibility
10.2. Prime Number, GCD
11. Algebraic Structures
11.1. Group
11.2. Rings

Chapter 15: Engineering Foundations

1. Empirical Methods and Experimental Techniques
1.1. Designed Experiment
1.2. Observational Study
1.3. Retrospective Study
2. Statistical Analysis
2.1. Unit of Analysis (Sampling Units), Population, and Sample
2.2. Concepts of Correlation and Regression
3. Measurement
3.1. Levels (Scales) of Measurement
3.2. Direct and Derived Measures
3.3. Reliability and Validity
3.4. Assessing Reliability
4. Engineering Design
4.1. Engineering Design in Engineering Education
4.2. Design as a Problem Solving Activity
4.3. Steps Involved in Engineering Design
5. Modeling, Simulation, and Prototyping
5.1. Modeling
5.2. Simulation
5.3. Prototyping
6. Standards
7. Root Cause Analysis
7.1. Techniques for Conducting Root Cause Analysis

Download link: