Read the theory first, then re-derive every table from memory. Example blocks are written in the exact style expected in CA tests. Section XI is a compressed revision sheet — use it in the last 24 hours. Practice questions carry difficulty badges; attempt them closed-book before checking Section XIII. Git commands should be typed out once by hand — reading them is not enough.
| Component | Weightage | Mapped COs |
|---|---|---|
| Test | 25% | CO1, CO2 |
| Design Your Dream CV | 25% | CO1, CO2, CO4, CO5, CO6 |
| EDU-RevolUTION Task | 25% | CO3 |
| Assignment | 25% | CO4, CO5 |
Unit II primarily feeds the Test and Assignment components through CO2.
Software is a collection of programs, procedures, associated documentation and data that instructs a computer system what to do and how to do it. Unlike hardware, software is intangible and is engineered rather than manufactured.
Software engineering is the systematic application of engineering principles to the design, development, testing, deployment and maintenance of software. It exists because programming is not the same as engineering — a program that works for one user is not the same as a system that works reliably for a million users.
The term was coined in 1968 at the NATO Software Engineering Conference to describe the chronic problems of large software projects: schedule overruns, budget overruns, unreliable products and unmaintainable code. The root cause was that projects scaled up in size but not in discipline. Structured processes (the SDLC) were the industry's answer.
| Type | Description | Examples |
|---|---|---|
| System software | Manages hardware and provides a platform for applications | Operating systems, device drivers, compilers, loaders |
| Application software | Solves specific end-user problems | Browsers, MS Office, WhatsApp, AutoCAD |
| Utility software | Maintains and optimises the system | Antivirus, disk defragmenter, backup tools |
| Middleware | Connects disparate applications or services | Web servers, message queues, API gateways |
| Firmware | Software embedded in hardware | BIOS/UEFI, router firmware |
| Embedded software | Dedicated software inside a device | Washing machine controllers, ABS in cars |
Software quality is assessed along two axes: functional (does it do what it should?) and non-functional (how well does it do it?).
| Attribute | Meaning | Measurable Indicator |
|---|---|---|
| Correctness | Produces the specified output for all valid inputs | Test pass rate; defect density |
| Reliability | Operates without failure over time | MTBF (mean time between failures) |
| Usability | Easy to learn and operate | Time-to-complete-task; error rate |
| Efficiency | Uses minimal time and resources | Response time; CPU/memory footprint |
| Maintainability | Easy to modify and extend | Cyclomatic complexity; code churn |
| Portability | Runs on multiple platforms | Number of supported OSes/browsers |
| Security | Resists unauthorised access and tampering | Number of open vulnerabilities (CVEs) |
| Scalability | Handles growth in load gracefully | Throughput vs concurrent users |
| Testability | Easy to verify behaviour | Code coverage percentage |
| Reusability | Components can be reused elsewhere | Library/module reuse ratio |
| Role | Responsibility |
|---|---|
| Product Owner / Business Analyst | Defines requirements, prioritises the backlog, represents the customer |
| Project Manager / Scrum Master | Plans schedules, removes blockers, tracks progress and risk |
| Software Architect | Defines the high-level structure, technology choices and interfaces |
| Developer / Engineer | Implements features, writes unit tests, reviews peers' code |
| QA Engineer / Tester | Designs test cases, executes them, reports and tracks defects |
| DevOps Engineer | Builds CI/CD pipelines, manages infrastructure and monitoring |
| UI/UX Designer | Designs user flows, wireframes and visual assets |
| Technical Writer | Produces user manuals, API documentation and release notes |
| Security Engineer | Performs threat modelling, code review and penetration testing |
Agreed conventions for naming, indentation, comments and file organisation. They reduce the cost of reading code — and reading code costs far more than writing it.
| Practice | Rule | Benefit |
|---|---|---|
| Meaningful names | calculateTax() not calc() | Self-documenting code |
| Consistent style | One formatter (Prettier, Black) enforced in CI | Zero diff noise in reviews |
| Small functions | One responsibility per function | Easier testing and reuse |
| Comment the why, not the what | Explain non-obvious decisions | Prevents comment rot |
| No magic numbers | Use named constants | Improved readability |
A structured peer examination of proposed changes before they are merged. A good review checks correctness, security, readability, test coverage and adherence to standards. Rule of thumb: review pull requests within 24 hours and keep them under ~400 lines — larger reviews get superficial attention.
| Level | Scope | Who Writes It | Example |
|---|---|---|---|
| Unit testing | A single function or class | Developer | Test that add(2,3) returns 5 |
| Integration testing | Interaction between modules | Developer / QA | Order service correctly calls payment API |
| System testing | The complete product | QA | End-to-end purchase flow |
| Acceptance testing | Fitness for business use | Customer / PO | User acceptance test (UAT) sign-off |
| Regression testing | Existing features after a change | QA (often automated) | Re-run the full suite after a bug fix |
| Approach | Logic | Used When |
|---|---|---|
| Black-box | Test inputs/outputs without seeing code | Functional verification |
| White-box | Test internal paths and branches | Unit testing, coverage analysis |
| Grey-box | Partial knowledge of internals | Integration and security testing |
| Manual | Human executes test cases | Exploratory and usability testing |
| Automated | Scripts execute test cases | Regression suites in CI |
Problem: A module of 8,000 lines of code (8 KLOC) is found to contain 24 defects during system testing.
Solution:
\[ \text{Defect Density} = \frac{24}{8} = 3.0 \text{ defects per KLOC} \]
Interpretation: Industry benchmarks for well-reviewed code are typically 1–5 defects per KLOC during system testing. A density of 3.0 is acceptable but suggests that unit-test coverage could be improved. If the same team consistently exceeds 10 defects/KLOC, the review process or requirements clarity needs attention.
Problem: A server application ran for 1,200 hours in a quarter and crashed 4 times, with a total repair time of 8 hours.
Solution:
\[ \text{MTBF} = \frac{1200}{4} = 300 \text{ hours} \]
\[ \text{MTTR} = \frac{8}{4} = 2 \text{ hours} \]
\[ \text{Availability} = \frac{MTBF}{MTBF + MTTR} = \frac{300}{302} \approx 99.34\% \]
Interpretation: 99.34% availability corresponds to roughly 58 minutes of downtime per month. A "three nines" (99.9%) target would require either fewer failures or a faster repair time.
When asked to "explain software engineering", always contrast it with ad-hoc programming: engineering adds process, measurement and documentation. Name the SDLC phases and cite at least two quality attributes with their measurable indicators.
The Software Development Life Cycle is the structured sequence of phases through which a software product passes from initial concept to retirement. Each phase has defined inputs, activities, deliverables and exit criteria.
| Phase | Key Activities | Deliverable | Exit Criterion |
|---|---|---|---|
| 1. Requirement gathering & analysis | Interview stakeholders, study existing systems, define scope | SRS (Software Requirements Specification) | SRS signed off by client |
| 2. System design | Architecture, database design, UI design, interface definition | Design document, ER diagram, UML diagrams | Design review approved |
| 3. Implementation | Coding, unit testing, code review | Source code, unit test suite | Code merged; unit tests pass |
| 4. Testing | Integration, system, acceptance testing; defect logging | Test plan, test cases, defect report | Defect density within threshold |
| 5. Deployment | Release packaging, installation, user training | Release build, user manual | Production sign-off |
| 6. Maintenance | Bug fixes, enhancements, adaptation, performance tuning | Patches, minor releases | Product retired |
| Type | Purpose | Approx. Share |
|---|---|---|
| Corrective | Fix reported defects | ~20% |
| Adaptive | Adjust to new environments (OS, browser, hardware) | ~25% |
| Perfective | Improve performance or maintainability without changing behaviour | ~50% |
| Preventive | Reduce future failure risk (refactoring, documentation) | ~5% |
Maintenance consumes the largest share of total lifetime cost — often 60–70%. This is why maintainability is treated as a first-class quality attribute.
The Waterfall model is a linear, sequential process in which each phase must be completed and approved before the next begins. There is no overlap and no going back.
| Advantages | Disadvantages |
|---|---|
| Simple to understand and manage | Cannot accommodate changing requirements |
| Clear milestones and deliverables | Working software appears very late |
| Good for stable, well-understood requirements | High cost of late defect discovery |
| Easy to document and audit | Customer sees the product only near the end |
Best suited for: government contracts, defence systems, regulatory/medical software, and small projects with genuinely frozen specifications.
The V-Model is an extension of Waterfall in which each development phase has a corresponding testing phase, drawn as the two arms of a "V".
| Development Phase (left arm) | Matching Test Phase (right arm) |
|---|---|
| Requirements analysis | Acceptance testing |
| System design | System testing |
| Architecture / high-level design | Integration testing |
| Detailed design | Unit testing |
| Coding | — (bottom of the V) — |
Key idea: test cases are written during the corresponding design phase, not after coding. This forces early thinking about verification and catches requirement defects while they are still cheap to fix.
| Advantages | Disadvantages |
|---|---|
| Early test planning | Still rigid; no support for iterative change |
| High discipline; clear traceability | Expensive if requirements evolve |
| Defects caught earlier than in Waterfall | No working software until late in the project |
The product is divided into increments, each delivering a usable slice of functionality. Increment 1 might deliver login and user management; increment 2 adds the product catalogue; increment 3 adds payments.
Advantage: early return on investment and reduced risk. Disadvantage: requires a stable high-level architecture before increment 1, otherwise integration becomes chaotic.
Instead of adding new features each cycle, the iterative model refines the whole system in successive cycles. Cycle 1 is a rough complete system; cycle 2 improves it; cycle 3 polishes it.
| Aspect | Incremental | Iterative |
|---|---|---|
| What grows | Functionality (breadth) | Quality/refinement (depth) |
| Each cycle delivers | New features | A better version of existing features |
| Analogy | Painting a wall section by section | Sculpting a statue through repeated passes |
In practice, modern Agile methods combine both: increments add features while iterations refine them.
The Spiral model, proposed by Barry Boehm (1986), is a risk-driven, iterative model in which each loop of the spiral passes through four quadrants: determine objectives, identify and resolve risks, develop and verify, and plan the next iteration.
| Quadrant | Activity |
|---|---|
| 1. Determine objectives | Define goals, alternatives and constraints for this cycle |
| 2. Identify & resolve risks | Build prototypes, run simulations, evaluate alternatives |
| 3. Develop & verify | Design, code, test the current version |
| 4. Plan next iteration | Review with the customer; plan the following spiral |
The radius of the spiral represents cumulative cost; the angular position indicates progress within the current cycle.
where \(P(UO)\) = probability of an unsatisfactory outcome and \(L(UO)\) = loss to the parties if the outcome is unsatisfactory.
| Advantages | Disadvantages |
|---|---|
| Explicit risk management at every cycle | Complex to manage; requires risk expertise |
| Accommodates changes well | Expensive — prototyping at every loop |
| Suitable for large, high-risk projects | Not cost-effective for small projects |
| Early customer involvement | No clear milestone for project completion |
Best suited for: large, mission-critical, high-budget projects with significant technical or market uncertainty.
A throwaway or evolutionary prototype is built early to clarify requirements that the customer cannot articulate in the abstract. The prototype is not the product — it exists to elicit feedback.
Risk: customers may mistake the prototype for a finished product and expect the same speed, ignoring the fact that it lacks error handling, security and scalability.
Agile is an iterative and incremental approach that delivers working software in short cycles, welcomes changing requirements, and relies on close collaboration between the development team and the customer.
(Items on the right still have value — the manifesto simply prioritises the left.)
| Element | Description |
|---|---|
| Roles | |
| Product Owner | Owns the product backlog; prioritises features by business value |
| Scrum Master | Facilitates ceremonies; removes blockers; coaches the team |
| Development Team | Cross-functional, self-organising, typically 5–9 members |
| Artifacts | |
| Product Backlog | Prioritised list of everything the product needs |
| Sprint Backlog | Subset selected for the current sprint, with tasks |
| Increment | The potentially shippable product at the end of a sprint |
| Ceremonies | |
| Sprint Planning | Team selects backlog items and defines the sprint goal (≈2–4 h for a 2-week sprint) |
| Daily Stand-up | 15-minute sync: what I did, what I will do, blockers |
| Sprint Review | Demonstrate the increment to stakeholders; gather feedback |
| Sprint Retrospective | Team reflects on process: what went well, what to improve |
Problem: A team's velocity over the last three sprints was 24, 28 and 26 story points. The remaining product backlog totals 195 points. How many sprints are required, and when is the release?
Solution:
\[ \text{Average Velocity} = \frac{24 + 28 + 26}{3} = \frac{78}{3} = 26 \text{ points/sprint} \]
\[ \text{Sprints Remaining} = \frac{195}{26} = 7.5 \rightarrow 8 \text{ sprints} \]
With two-week sprints, the release is approximately \(8 \times 2 = 16\) weeks away.
Engineering note: always round up and add a buffer of one sprint for integration, hardening and documentation. A more honest estimate is 9 sprints (18 weeks).
DevOps is a cultural and technical movement that unifies software development (Dev) and IT operations (Ops) so that software can be built, tested and released rapidly, reliably and repeatedly.
| Practice | Meaning | Benefit |
|---|---|---|
| Continuous Integration (CI) | Every commit triggers automated build and test | Defects detected within minutes |
| Continuous Delivery (CD) | Every passing build is deployable to production | Release readiness at any time |
| Continuous Deployment | Every passing build is deployed automatically | Very short lead time to users |
| Infrastructure as Code (IaC) | Servers defined in version-controlled files (Terraform, Ansible) | Reproducible environments |
| Monitoring & Observability | Metrics, logs, traces (Prometheus, Grafana, ELK) | Fast detection and diagnosis |
| Blue-Green / Canary Deployment | Two identical environments; traffic shifted gradually | Zero-downtime releases and instant rollback |
# Typical CI pipeline (GitHub Actions)
name: ci
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npm run lint
- run: npm test -- --coverage
- run: npm run build
Any failing step blocks the merge — this is what makes CI a genuine quality gate rather than a formality.
| Model | Nature | Change Handling | Customer Involvement | Risk Level | Best For |
|---|---|---|---|---|---|
| Waterfall | Linear, sequential | Very poor | Start and end only | High | Frozen, well-understood requirements |
| V-Model | Linear with parallel test design | Very poor | Start and end | Medium | Safety-critical, verifiable systems |
| Incremental | Iterative in breadth | Moderate | Per increment | Medium | Large systems with clear modules |
| Iterative | Iterative in depth | Good | Per iteration | Medium | Evolving products |
| Spiral | Risk-driven spiral | Excellent | Every cycle | Low (managed) | Large, high-risk, high-budget projects |
| Prototype | Prototype-first | Excellent | Continuous | Medium | Unclear requirements, UI-heavy products |
| Agile / Scrum | Iterative + incremental | Excellent | Continuous (PO) | Low | Evolving requirements, fast delivery |
| DevOps | Continuous flow | Excellent | Via product metrics | Low | Cloud-native, high release frequency |
| Situation | Recommended Model | Reason |
|---|---|---|
| Requirements are stable and legally frozen | Waterfall / V-Model | Change cost is acceptable; documentation is mandatory |
| Requirements are unclear and customer cannot articulate them | Prototype | Feedback is needed before committing |
| Large project with technical uncertainty | Spiral | Explicit risk resolution each cycle |
| Start-up product with a fast-changing market | Agile / Scrum | Continuous reprioritisation |
| Mature product needing many releases per day | DevOps / CI-CD | Automation removes the release bottleneck |
| Safety-critical embedded software (medical, aerospace) | V-Model + formal methods | Traceability and verifiability are mandatory |
Context: A 400-bed hospital requires a system covering patient registration, appointments, billing, pharmacy, lab reports and insurance claims. The project has a fixed 18-month timeline, a fixed budget, and heavy regulatory (medical-records) requirements. The hospital's process is well documented.
Analysis:
Recommendation: An incremental delivery with V-Model discipline inside each increment. This satisfies the documentation/traceability requirements while allowing the hospital to start using the registration module months before the full system is ready.
Problem: A team must decide whether to build a third-party payment integration in-house or to buy a licensed gateway. Two unsatisfactory outcomes are possible: (i) the in-house build fails late — probability 0.25, loss ₹40,00,000; (ii) the licensed gateway is discontinued — probability 0.10, loss ₹15,00,000.
Solution:
\[ RE_{\text{in-house}} = 0.25 \times 40{,}00{,}000 = ₹10{,}00{,}000 \]
\[ RE_{\text{licensed}} = 0.10 \times 15{,}00{,}000 = ₹1{,}50{,}000 \]
Decision: The licensed gateway has substantially lower risk exposure. The spiral model would direct the team to build a prototype of the in-house option only if the strategic value (data ownership, cost at scale) outweighed the additional ₹8,50,000 of expected risk.
Confusing incremental with iterative. Incremental adds new features in each cycle; iterative refines the same features. Agile uses both: each sprint delivers an increment, and successive sprints also refine earlier work through refactoring.
| Activity | Purpose | Technique |
|---|---|---|
| Elicitation | Discover what stakeholders actually need | Interviews, questionnaires, observation, brainstorming |
| Analysis | Resolve conflicts and prioritise | MoSCoW (Must/Should/Could/Won't), use cases |
| Specification | Document requirements precisely | SRS, user stories, acceptance criteria |
| Validation | Confirm requirements are correct and complete | Reviews, prototypes, traceability matrix |
| Management | Control changes to requirements | Change control board, versioned backlog |
| Aspect | Functional Requirement | Non-Functional Requirement |
|---|---|---|
| Defines | What the system does | How well the system does it |
| Example | "The system shall allow a user to reset the password via email" | "The password reset email shall arrive within 30 seconds" |
| Verification | Functional testing | Performance, load and security testing |
| Typical categories | Features, workflows, business rules | Performance, security, usability, reliability, portability |
User story format: As a <role>, I want <capability> so that <benefit>.
Story: "As a registered student, I want to reset my password via a one-time link sent to my registered email, so that I can regain access without contacting the administrator."
Acceptance criteria (Given–When–Then):
Each criterion is directly testable — this is what separates a well-written story from a vague wish.
A Version Control System (VCS) is a tool that records changes to a set of files over time, allowing specific versions to be recalled, compared and restored, and enabling multiple people to collaborate on the same codebase without overwriting each other's work.
project_final.zip
project_final_v2.zip
project_final_v2_ACTUAL.zip
project_final_v2_ACTUAL_working.zip
project_final_v2_ACTUAL_working_DONT_DELETE.zip
Manual versioning by filename is ambiguous, space-wasting and merge-hostile. A VCS replaces it with a structured, queryable history.
| Type | Architecture | How it Works | Advantages | Disadvantages | Examples |
|---|---|---|---|---|---|
| Local VCS | Single machine | A local database stores file versions | Simple; no network needed | No collaboration; a disk failure loses everything | RCS, SCCS |
| Centralised VCS | Client–server | One central server holds the repository; clients check out files | Single source of truth; simpler access control | Server is a single point of failure; limited offline work; slow branching | SVN, CVS, Perforce |
| Distributed VCS | Peer-to-peer with remotes | Every clone contains the full history; remotes are used for synchronisation | Offline work; fast branching and merging; no single point of failure | Larger disk usage; steeper learning curve | Git, Mercurial |
Most people assume a VCS stores the deltas (differences) between versions. Git actually stores a complete snapshot of the project at each commit, but only for files that changed — unchanged files are referenced rather than duplicated. This is why Git operations like branching and checkout are almost instantaneous.
| Term | Meaning |
|---|---|
| Repository (repo) | The project directory tracked by Git, including the hidden .git folder that holds all history |
| Working directory | The files currently checked out and being edited |
| Staging area (index) | A holding area where changes are prepared before being committed |
| Commit | An immutable snapshot of the staged changes, identified by a SHA-1 hash |
| HEAD | A pointer to the current commit (usually the tip of the checked-out branch) |
| Branch | A movable pointer to a commit; an independent line of development |
| Tag | A fixed, named pointer to a specific commit, used for releases (e.g. v1.0.0) |
| Merge | Combining the changes from one branch into another |
| Rebase | Replaying commits from one branch onto a new base, producing a linear history |
| Remote | A hosted copy of the repository (GitHub, GitLab, Bitbucket) |
| Clone | A complete local copy of a remote repository, including all history |
| Fork | A server-side copy of another user's repository into your own account |
| Pull Request (PR) / Merge Request | A request to merge a branch, providing a review and discussion interface |
| Merge conflict | An overlap Git cannot resolve automatically; requires human decision |
| .gitignore | A file listing patterns Git should not track (build artefacts, secrets, dependencies) |
| Detached HEAD | HEAD points directly to a commit rather than to a branch |
| Tree | Contents | Command that Moves Data Here |
|---|---|---|
| Working Directory | Files you are editing | git checkout / git switch |
| Staging Area (Index) | Changes marked for the next commit | git add |
| Repository (HEAD) | Committed snapshots | git commit |
Working Directory --git add--> Staging Area --git commit--> Repository
^ |
|______________________ git checkout / switch ___________________|
Why a staging area? It lets you commit a coherent subset of your changes. If you fixed a bug and simultaneously started a new feature, you can stage and commit only the bug fix, keeping the feature work uncommitted.
A commit object in Git contains:
Because the hash depends on the parent hash, the entire history forms a tamper-evident chain: changing any past commit changes every subsequent hash. This is the property that makes Git history cryptographically verifiable.
Example abbreviated hash: a3f9c21
| Strategy | Structure | Best For |
|---|---|---|
| Feature Branch | One branch per feature, merged into main via PR | Small-to-medium teams |
| Git Flow | Long-lived main, develop, release, hotfix, feature branches | Products with scheduled releases and QA gates |
| GitHub Flow | Single main branch; short-lived feature branches deployed continuously | Web apps with continuous deployment |
| Trunk-Based | Everyone commits to main at least daily; feature flags hide incomplete work | High-performing DevOps teams |
| Release Branching | Each version gets a maintained branch for patches | Software with multiple supported versions |
| Aspect | Merge | Rebase |
|---|---|---|
| History shape | Non-linear; preserves the true branch topology | Linear; commits replayed on the new base |
| Commit hashes | Original commits preserved; a new merge commit is created | Original commits are rewritten with new hashes |
| Conflict resolution | Resolved once in the merge commit | May need resolution for each replayed commit |
| Use on shared branches | Safe | Dangerous — rewriting public history breaks other clones |
| Typical use | Integrating a feature into main | Cleaning up local commits before pushing |
Never rebase a branch that others have already pulled. Rebasing rewrites commit hashes; collaborators' histories will diverge and produce duplicated or conflicting work. Rebase only your own unpushed commits.
Project A: A college fest registration website, built by 5 students over 6 weeks, deployed to a shared host weekly.
Recommendation: GitHub Flow. One main branch that is always deployable, short-lived feature branches (feature/registration-form), and a pull request with at least one reviewer before merging. Weekly deploys make release branches unnecessary overhead.
Project B: A desktop accounting package with quarterly versioned releases (v4.1, v4.2) that customers install, and which must be patched for older versions.
Recommendation: Git Flow with release branching. develop accumulates features; a release/4.2 branch is cut for stabilisation and QA; main holds released versions; hotfix/4.1.3 branches patch older supported versions. The multi-version support requirement makes long-lived branches valuable.
# One-time global identity setup
git config --global user.name "Aarav Sharma"
git config --global user.email "aarav@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
# Inspect current configuration
git config --list
# Create a new repository in the current directory
git init
# Copy an existing remote repository
git clone https://github.com/user/project.git
git clone https://github.com/user/project.git my-folder # custom folder name
git clone --depth 1 https://github.com/user/project.git # shallow clone (latest only)
git status # what has changed?
git diff # unstaged line-by-line changes
git diff --staged # staged changes only
git add index.html # stage one file
git add src/ # stage a directory
git add -p # stage changes hunk by hunk (interactive)
git commit -m "Add responsive navbar with mobile menu"
git commit # opens the editor for a longer message
git log --oneline --graph --decorate --all
git show a3f9c21 # inspect a specific commit
Use the imperative mood in the subject line, keep it under 50 characters, and explain why in the body if the change is non-obvious.
Good: Fix session expiry causing logout on refresh
Bad: update, fixes, asdfgh, final changes
A conventional-commit prefix improves automation: feat:, fix:, docs:, refactor:, test:, chore:.
git branch # list local branches
git branch -a # list local + remote branches
git branch feature/login # create a branch
git switch feature/login # move to it (modern)
git checkout feature/login # equivalent older command
git switch -c feature/login # create and switch in one step
# ... make changes, add, commit ...
git switch main
git merge feature/login # fast-forward if possible
git merge --no-ff feature/login # force a merge commit (preserves branch history)
git branch -d feature/login # delete after merge
git branch -D feature/login # force delete unmerged branch
git push origin --delete feature/login # delete the remote branch
git remote -v # list remotes
git remote add origin https://github.com/u/p.git
git remote set-url origin git@github.com:u/p.git
git fetch origin # download changes, do NOT modify working dir
git pull origin main # fetch + merge
git pull --rebase origin main # fetch + rebase (linear history)
git push -u origin feature/login # first push of a new branch
git push # subsequent pushes
git push --tags # push tags
git fetch downloads new commits into your local remote-tracking branches but leaves your working directory untouched. git pull is shorthand for fetch followed by merge (or rebase). When you want to inspect incoming changes before integrating them, use fetch followed by git log origin/main and git diff main origin/main.
| Goal | Command | Effect on History |
|---|---|---|
| Discard unstaged changes in a file | git restore file.txt | No change — working dir only |
| Unstage a file (keep the edits) | git restore --staged file.txt | No change |
| Amend the last commit message | git commit --amend -m "new msg" | Rewrites the last commit |
| Undo the last commit, keep changes staged | git reset --soft HEAD~1 | Rewrites local history |
| Undo the last commit, keep changes unstaged | git reset HEAD~1 | Rewrites local history |
| Undo the last commit and discard changes | git reset --hard HEAD~1 | Destroys work |
| Undo a pushed commit safely | git revert a3f9c21 | Adds a new inverse commit — safe on shared branches |
| Save work temporarily | git stash / git stash pop | No change to history |
git reset --hard rewrites history and discards uncommitted work permanently. On a shared branch, use git revert instead — it creates a new commit that undoes the change while preserving the record that the original commit existed.
# 1. Start from an up-to-date main branch
git switch main
git pull origin main
# 2. Create the feature branch
git switch -c feature/password-reset
# 3. Implement the feature
# ... edit auth/reset.js, tests/reset.test.js ...
# 4. Review what changed before staging
git status
git diff
# 5. Stage and commit in logical units
git add auth/reset.js
git commit -m "feat: add password reset token generation"
git add tests/reset.test.js
git commit -m "test: cover reset token expiry and reuse"
# 6. Sync with main before opening a PR
git fetch origin
git rebase origin/main # resolve conflicts now, not at merge time
# 7. Push the branch
git push -u origin feature/password-reset
# 8. Open a Pull Request on GitHub, request one reviewer,
# wait for CI to pass, then merge (squash or rebase-and-merge)
# 9. Clean up locally
git switch main
git pull origin main
git branch -d feature/password-reset
Why this order matters: rebasing onto the latest main before opening the PR means reviewers see a clean, conflict-free diff, and CI runs against the code as it will actually be merged.
Situation: Two developers modify the same configuration line. On merge, Git cannot decide and inserts conflict markers.
$ git merge feature/timeout
Auto-merging config/settings.py
CONFLICT (content): Merge conflict in config/settings.py
Automatic merge failed; fix conflicts and then commit the result.
Content of the conflicted file:
<<<<<<< HEAD
SESSION_TIMEOUT_SECONDS = 1800
=======
SESSION_TIMEOUT_SECONDS = 3600
>>>>>>> feature/timeout
Resolution steps:
SESSION_TIMEOUT_SECONDS = 2700.<<<<<<<, =======, >>>>>>>).git diff, then run the test suite.git add config/settings.py then git commit (Git pre-fills the merge message).Key insight: a merge conflict is not an error. It is Git correctly refusing to guess at a semantic decision that only a human can make.
# Dependencies
node_modules/
venv/
__pycache__/
# Build output
dist/
build/
*.class
*.pyc
# Environment and secrets
.env
.env.local
*.pem
config/secrets.yml
# Editor and OS files
.vscode/
.idea/
.DS_Store
Thumbs.db
# Logs
*.log
logs/
Never commit secrets. API keys, database passwords, private keys and tokens must never enter version control. Once a secret is committed, it remains in the repository history forever — even if you delete the file in a later commit. If a secret is exposed: (1) rotate it immediately, (2) purge it from history with git filter-repo or the BFG tool, (3) force-push and inform collaborators.
git tag v1.0.0 # lightweight tag on HEAD
git tag -a v1.0.0 -m "First stable release" # annotated tag (recommended)
git tag # list all tags
git show v1.0.0 # inspect a tag
git push origin v1.0.0 # push a single tag
git push --tags # push all tags
git tag -d v1.0.0 # delete a local tag
git push origin --delete v1.0.0 # delete a remote tag
Semantic versioning convention: MAJOR.MINOR.PATCH — increment MAJOR for breaking changes, MINOR for backwards-compatible features, PATCH for backwards-compatible bug fixes.
git stash # save current changes and clean the working dir
git stash push -m "WIP navbar" # named stash
git stash list # list stashes
git stash apply # reapply the latest stash (keep it in the list)
git stash pop # reapply and remove from the list
git stash drop # delete the latest stash
git stash branch fix-branch # create a branch from a stash
Use case: You are mid-feature when an urgent production bug arrives. You stash the unfinished work, switch to main, fix the bug, push, then return and git stash pop to resume exactly where you left off.
git rebase -i HEAD~4
This opens an editor listing the last four commits with an action keyword in front of each:
| Keyword | Action |
|---|---|
pick | Keep the commit as is |
reword | Keep the changes but edit the commit message |
edit | Pause to amend the commit content |
squash | Combine into the previous commit, merging messages |
fixup | Combine into the previous commit, discarding this message |
drop | Delete the commit entirely |
Typical use: turning five messy local commits ("wip", "fix typo", "oops", "more changes", "final") into one clean, reviewable commit before pushing.
| Object Type | Stores | Analogy |
|---|---|---|
| blob | File contents (no name, no metadata) | A file's data |
| tree | A directory listing: names, modes, and hashes of blobs and subtrees | A folder |
| commit | A pointer to one tree plus parent commit(s), author, message | A snapshot with a label |
| tag (annotated) | A pointer to a commit with a message and tagger | A named bookmark |
git cat-file -t a3f9c21 # show object type
git cat-file -p a3f9c21 # pretty-print object contents
git rev-parse HEAD # resolve HEAD to a full SHA
git reflog # every position HEAD has been in (a safety net!)
git reflog is the recovery tool of last resort: even after a reset --hard, the previous commits are still in the reflog for around 90 days and can be restored with git reset --hard HEAD@{2}.
Situation: A developer runs git reset --hard HEAD~3 intending to undo three local commits, then realises that the second of those commits contained two days of work that was never pushed.
Recovery procedure:
# 1. Inspect where HEAD has been
git reflog
# a3f9c21 HEAD@{0}: reset: moving to HEAD~3
# 7b2e110 HEAD@{1}: commit: feat: add payment retry logic <-- the lost work
# 91acd44 HEAD@{2}: commit: feat: integrate Razorpay SDK
# 55f1b02 HEAD@{3}: commit: chore: update dependencies
# 2. Restore the lost commit
git reset --hard 7b2e110
# 3. Verify
git log --oneline -5
git status
Lesson: Git rarely loses committed work. Only uncommitted changes are truly unrecoverable. The reflog is your safety net — and this is precisely why committing frequently in small increments is a defensive practice, not merely a stylistic preference.
| Stage | Command | Purpose |
|---|---|---|
| Start | git switch main && git pull | Begin from the latest integration state |
| Branch | git switch -c feature/x | Isolate work |
| Develop | git add → git commit | Small, logical commits |
| Sync | git fetch → git rebase origin/main | Integrate upstream changes early |
| Publish | git push -u origin feature/x | Share for review |
| Review | Open a Pull Request | Peer review + automated CI |
| Integrate | Squash/rebase merge into main | Keep the main history readable |
| Clean up | Delete the branch locally and remotely | Avoid branch sprawl |
Cyber security is the practice of protecting systems, networks, programs, devices and data from digital attack, damage or unauthorised access. Its purpose is to preserve the confidentiality, integrity and availability of information assets.
| Pillar | Meaning | Control Mechanisms | Violation Examples |
|---|---|---|---|
| Confidentiality | Information is accessible only to authorised parties | Encryption (AES-256), access control lists, data classification, tokenisation, TLS | Data breach, credential theft, eavesdropping, insider leak |
| Integrity | Data is accurate, complete and unaltered | Cryptographic hashing (SHA-256), digital signatures, checksums, write-once storage, audit logs | Man-in-the-middle tampering, SQL injection altering records, ransomware encryption |
| Availability | Systems and data are accessible when required | Redundancy, load balancing, DDoS mitigation, backups, disaster recovery, UPS | Denial of Service, ransomware, hardware failure, accidental deletion |
| Goal | Definition | Mechanism |
|---|---|---|
| Authentication | Verifying that an entity is who it claims to be | Passwords, OTP, biometrics, certificates |
| Authorisation | Determining what an authenticated entity may do | RBAC, ACLs, policy engines |
| Accountability | Attributing actions to a specific entity | Audit logs, SIEM, non-repudiation |
| Non-repudiation | Preventing denial of having performed an action | Digital signatures, timestamps, blockchain |
| Privacy | Controlling the collection and use of personal data | Data minimisation, consent, anonymisation |
Note the inherent tension: maximising confidentiality (heavy encryption, strict access control) can reduce availability and usability. Security engineering is the art of balancing these three competing objectives for a given risk profile.
Threat: any potential cause of harm.
Vulnerability: a weakness that a threat can exploit.
Exploit: a technique or tool that takes advantage of a vulnerability.
Risk: the likelihood and impact of a threat exploiting a vulnerability.
SLE = Single Loss Expectancy; ARO = Annualised Rate of Occurrence; ALE = Annualised Loss Expectancy.
| Actor | Motivation | Sophistication | Typical Target |
|---|---|---|---|
| Script Kiddie | Curiosity, bragging rights | Low — uses existing tools | Any unpatched system |
| Hacktivist | Ideology, publicity | Medium | Government, corporate websites |
| Cybercriminal | Financial gain | Medium–High | Banks, e-commerce, individuals |
| Insider | Revenge, money, negligence | Low–Medium (has access) | Own organisation's data |
| Nation-State (APT) | Espionage, sabotage, geopolitics | Very High | Critical infrastructure, defence, IP |
| Competitor | Commercial advantage | Medium | Proprietary designs, customer lists |
| Type | Characteristics | Self-Replicates? | Needs a Host? | Primary Impact |
|---|---|---|---|---|
| Virus | Attaches to a legitimate file; executes when the host executes | Yes | Yes | File corruption, system instability |
| Worm | Standalone program that spreads across networks autonomously | Yes | No | Network flooding, bandwidth exhaustion |
| Trojan Horse | Disguised as useful software; performs hidden malicious actions | No | No | Backdoor access, data theft |
| Ransomware | Encrypts files and demands payment for the decryption key | Sometimes | No | Total data unavailability, extortion |
| Spyware | Secretly monitors user activity and transmits it | No | No | Privacy loss, credential theft |
| Keylogger | Records every keystroke, capturing passwords and messages | No | No | Credential compromise |
| Adware | Forces unwanted advertisements; may hijack the browser | Sometimes | No | Annoyance, degraded performance |
| Rootkit | Hides malicious processes and files at kernel or firmware level | No | No | Persistent, hard-to-detect compromise |
| Botnet Agent | Turns the host into a remotely controlled "zombie" | Yes | No | Participation in DDoS, spam campaigns |
| Logic Bomb | Triggers malicious code on a specific condition or date | No | Yes | Insider-triggered destruction |
| Fileless Malware | Lives in memory and uses legitimate system tools (PowerShell, WMI) | No | No | Evades file-based antivirus |
Scenario A: A company's file server shows all documents renamed with a .locked extension, and a text file on the desktop demands payment in Bitcoin within 72 hours.
Diagnosis: Ransomware. Immediate response: isolate the server from the network (prevent spread), do not pay, restore from the most recent offline backup, report to the CERT-In, and conduct a root-cause analysis of the initial access vector (likely a phishing email or an exposed RDP port).
Scenario B: A university network slows to a crawl. Log analysis shows thousands of outbound connections from lab machines to an unknown external IP, each sending small packets every few seconds.
Diagnosis: Botnet agent / worm propagation. The lab machines have been recruited into a botnet and are beaconing to a command-and-control server. Immediate response: block the C2 IP at the firewall, isolate affected hosts, run full endpoint scans, patch the vulnerability that allowed initial infection.
Scenario C: A free "PDF converter" downloaded from a third-party site installs silently, adds browser toolbars, and opens a hidden reverse shell to an external host.
Diagnosis: Trojan horse (with adware and backdoor components). Immediate response: remove the software, scan with a reputable anti-malware tool, change any credentials entered while it was installed, and enforce a policy restricting software installation to approved sources.
| Attack | Mechanism | Target of CIA | Mitigation |
|---|---|---|---|
| Phishing | Deceptive email/message luring the victim to a fake site or malicious attachment | Confidentiality | Email filtering, user training, MFA, DMARC/SPF/DKIM |
| Spear Phishing | Highly targeted phishing using researched personal details | Confidentiality | Verification procedures for unusual requests, MFA |
| Vishing / Smishing | Phishing via voice call / SMS | Confidentiality | Never share OTPs; call back on a known number |
| Pretexting | Inventing a scenario to extract information | Confidentiality | Identity verification protocols |
| Baiting | Leaving infected USB drives in public places | Confidentiality / Integrity | Disable autorun; policy against unknown media |
| Tailgating | Following an authorised person into a restricted area | Confidentiality | Access cards, mantraps, security awareness |
| Man-in-the-Middle | Intercepting and possibly altering communication between two parties | Confidentiality, Integrity | TLS with certificate pinning, VPN, HSTS |
| Denial of Service (DoS/DDoS) | Flooding a service to exhaust resources | Availability | Rate limiting, CDN, scrubbing centres, autoscaling |
| SQL Injection | Injecting SQL via unsanitised input to read or modify the database | Confidentiality, Integrity | Parameterised queries, ORM, input validation, least-privilege DB accounts |
| Cross-Site Scripting (XSS) | Injecting script that executes in another user's browser | Confidentiality | Output encoding, Content Security Policy, HttpOnly cookies |
| Cross-Site Request Forgery (CSRF) | Forcing an authenticated user's browser to perform an unwanted action | Integrity | Anti-CSRF tokens, SameSite cookies |
| Privilege Escalation | Gaining higher permissions than granted | All three | Patching, least privilege, sandboxing |
| Zero-Day Exploit | Attacking a vulnerability unknown to the vendor | All three | Defence in depth, EDR behavioural detection, network segmentation |
| Password Attack (Brute Force / Credential Stuffing) | Guessing or replaying credentials | Confidentiality | MFA, account lockout, breach monitoring, unique passwords |
| Insider Threat | Malicious or negligent action by an authorised user | All three | Least privilege, DLP, audit logging, separation of duties |
paypa1.com, rnicrosoft.com, @secure-bank-verify.net)..zip, .exe, macro-enabled Office files).Do not click, do not forward it to colleagues, do not reply. Report it to the IT/security team using the official reporting channel, then delete it. If you already clicked and entered credentials: change the password immediately from a different device, enable MFA, and inform the security team — speed matters far more than embarrassment.
No single control stops every attack. Defence in depth layers multiple independent controls so that the failure of one does not compromise the whole system.
| Layer | Controls |
|---|---|
| Physical | Locks, access cards, CCTV, locked server racks |
| Network | Firewalls, VLAN segmentation, IDS/IPS, VPN, zero-trust network access |
| Host | Endpoint protection (EDR), host firewall, patch management, disk encryption |
| Application | Secure coding, input validation, WAF, dependency scanning |
| Data | Encryption at rest and in transit, tokenisation, DLP, backups |
| Identity | MFA, least privilege, privileged access management, SSO |
| Human | Security awareness training, phishing simulations, clear policies |
| Process | Incident response plan, business continuity, disaster recovery drills |
A firewall is a network security device — implemented in hardware, software or both — that monitors and controls incoming and outgoing network traffic based on a defined set of security rules. It establishes a barrier between a trusted internal network and an untrusted external network such as the Internet.
| Generation | Type | Operating Layer | How It Works | Limitations |
|---|---|---|---|---|
| 1st | Packet Filtering | Network / Transport (L3–L4) | Inspects source IP, destination IP, port and protocol against a static rule list (ACL) | Stateless — each packet judged in isolation; cannot inspect payload; vulnerable to IP spoofing |
| 2nd | Stateful Inspection | Network / Transport (L3–L4) | Maintains a connection state table (NEW, ESTABLISHED, RELATED, INVALID) and allows return traffic for established sessions | Memory-intensive for large tables; still cannot inspect encrypted payload |
| 3rd | Application / Proxy | Application (L7) | Terminates the client connection, inspects the full request, and creates a new connection to the server | Slower; requires per-application configuration; can break non-standard protocols |
| 4th | Next-Generation Firewall (NGFW) | L3–L7 | Deep packet inspection, application awareness, integrated IPS, TLS inspection, user identity awareness, threat intelligence feeds | Higher cost; complex policy management; performance overhead |
| — | Cloud Firewall / WAF | L7 (HTTP/HTTPS) | Filters web traffic for SQL injection, XSS, bot traffic, and OWASP Top 10 attacks | Only protects traffic that passes through it; cannot protect non-web protocols |
| Type | Placement | Protects | Example |
|---|---|---|---|
| Host-based (personal) | Installed on a single machine | That host only | Windows Defender Firewall, ufw, iptables |
| Network-based | At the network perimeter or between segments | An entire network or subnet | Cisco ASA, Palo Alto PA-series, pfSense |
| Cloud-native | Within a cloud provider's infrastructure | Cloud workloads and VPCs | AWS Security Groups, Azure NSG |
| Virtual appliance | As a VM in a virtualised environment | Virtual network segments | FortiGate VM, OPNsense VM |
# Rule format: ACTION PROTO SRC DST PORT COMMENT
ALLOW TCP any 10.0.0.5 443 Allow HTTPS to the public web server
ALLOW TCP 10.0.1.0/24 10.0.0.5 22 Allow SSH only from the admin subnet
ALLOW TCP any 10.0.0.7 25,587 Allow SMTP submission to the mail relay
DENY TCP any 10.0.0.5 3306 Block direct MySQL access from the Internet
DENY ANY any any any Default deny — implicit final rule
| Policy | Behaviour | Security Posture | Usability |
|---|---|---|---|
| Default deny (whitelist) | Block everything not explicitly permitted | Strong — recommended practice | Requires careful rule maintenance; new services break until allowed |
| Default allow (blacklist) | Permit everything not explicitly blocked | Weak — only as good as the block list | Convenient but dangerous |
Requirements: A three-tier application — public web server (10.0.0.5), application server (10.0.1.10) and database (10.0.2.20). Admin access originates from the office subnet 192.168.10.0/24.
# ---- Perimeter firewall (Internet-facing) ----
ALLOW TCP any 10.0.0.5 80,443 Public HTTP/HTTPS to web tier
ALLOW TCP 192.168.10.0/24 10.0.0.5 22 SSH from office only
DENY TCP any 10.0.0.5 22 Block SSH from the Internet
DENY TCP any 10.0.1.10 any Web tier must never reach app tier directly
DENY ANY any any any Default deny
# ---- Internal firewall (between tiers) ----
ALLOW TCP 10.0.0.5 10.0.1.10 8080 Web tier → app tier on the app port
ALLOW TCP 10.0.1.10 10.0.2.20 5432 App tier → PostgreSQL only
DENY TCP 10.0.0.5 10.0.2.20 any Web tier must never touch the database
DENY TCP 192.168.10.0/24 10.0.2.20 5432 No direct admin DB access (use a bastion)
DENY ANY any any any Default deny
Reasoning for each design decision:
A DMZ (Demilitarised Zone) is a buffer sub-network that hosts public-facing services between two firewalls — an external firewall facing the Internet and an internal firewall facing the private LAN. It limits the damage if a public server is compromised.
| Zone | Contents | Typical Rules |
|---|---|---|
| Internet (untrusted) | Everything external | Only ports 80/443 reach the DMZ; nothing reaches the LAN directly |
| DMZ (semi-trusted) | Web server, mail relay, reverse proxy, DNS | May query the internal database on one specific port; cannot initiate connections to the LAN otherwise |
| LAN (trusted) | Workstations, internal servers, database | May be reached from the DMZ only on explicit, minimal ports |
Design principle: if the web server in the DMZ is fully compromised, the attacker still faces the internal firewall. This converts a total breach into a contained incident.
| Technology | Function | Distinguishing Feature |
|---|---|---|
| IDS (Intrusion Detection System) | Monitors traffic and raises alerts on suspicious patterns | Passive — detects but does not block |
| IPS (Intrusion Prevention System) | Monitors and actively blocks malicious traffic inline | Active — sits in the traffic path; can drop packets |
| VPN (Virtual Private Network) | Creates an encrypted tunnel over an untrusted network | Protects confidentiality and integrity in transit |
| NAT (Network Address Translation) | Maps private IPs to a public IP | Incidental privacy; not a security control by itself |
| Proxy server | Intermediary for client requests | Can filter content and cache responses |
| Network segmentation (VLAN) | Splits a network into isolated logical segments | Limits lateral movement after a compromise |
| SIEM | Aggregates logs from many sources for correlation and alerting | Central visibility for incident response |
| Zero Trust Architecture | "Never trust, always verify" — every request is authenticated and authorised | Replaces perimeter-only security; assumes the network is hostile |
| Technique | Keys | Purpose | Example | Speed |
|---|---|---|---|---|
| Symmetric encryption | One shared key | Confidentiality of bulk data | AES-256, ChaCha20 | Very fast |
| Asymmetric encryption | Public + private key pair | Key exchange, digital signatures | RSA-2048, ECC (P-256), Ed25519 | Slow |
| Cryptographic hashing | No key | Integrity verification | SHA-256, SHA-3, BLAKE3 | Fast |
| Keyed hash (HMAC) | Shared secret key | Message authentication | HMAC-SHA256 | Fast |
| Digital signature | Private key to sign, public to verify | Authenticity and non-repudiation | RSA-PSS, ECDSA | Slow |
This hybrid design is why TLS is both secure and performant — asymmetric cryptography solves the key-distribution problem, and symmetric cryptography handles the bulk data.
When asked to compare firewall generations, always use these four parameters: (1) OSI layer inspected, (2) whether it is stateful, (3) whether it can inspect payload, (4) performance overhead. This structure reliably earns full marks.
A user account is a digital identity within a system that associates a person or service with a set of credentials, permissions and resources. Every action performed on a multi-user system is attributable to an account.
| Account Type | Privileges | Typical Use | Risk if Compromised |
|---|---|---|---|
| Administrator / Root / Superuser | Full control: install software, modify system configuration, manage all users, access all files | System administration only — never for daily work | Critical — total system compromise |
| Standard / Regular User | Run applications, modify own files; cannot change system-wide settings | Everyday work for most users | Moderate — limited to that user's data |
| Guest | Minimal access, no persistent storage, often time-limited | Visitors, kiosks, public terminals | Low — restricted by design |
| Service / System Account | Non-interactive; permissions limited to what one specific service requires | Web server, database daemon, backup agent | Moderate–High — often over-privileged in practice |
| Power User (legacy Windows) | Between standard and administrator; can install some software | Legacy compatibility requirements | Moderate |
| Privileged / Elevated (sudo) | Temporary elevation of a standard account for a specific command | Administrative tasks on Linux/macOS | High while elevated |
| Aspect | Windows | Linux / Unix |
|---|---|---|
| Administrator account | Administrator | root (UID 0) |
| Elevation mechanism | UAC prompt | sudo, su |
| Standard user | Standard User | Regular user (UID ≥ 1000) |
| Permission model | ACLs (NTFS permissions) | rwx bits + ACLs + ownership |
| Service accounts | LocalSystem, NetworkService, LocalService | www-data, postgres, nobody |
Every user, program or process should be granted only the minimum privileges necessary to perform its intended function, and only for the minimum time required.
| Practice | Implementation |
|---|---|
| Separate admin from daily accounts | Two accounts per administrator: a standard account for email/browsing and a separate admin account for privileged tasks |
| Just-in-time elevation | Use sudo with time-limited sessions rather than logging in as root |
| Service account scoping | Grant the database service account rights only to the directories it needs, not to the whole filesystem |
| Regular access reviews | Quarterly attestation: managers confirm each team member still needs their access |
| Prompt revocation | Disable accounts immediately on termination or role change |
| No shared accounts | Every account must map to one person for accountability |
| Model | Full Name | Decision Basis | Advantages | Disadvantages | Example |
|---|---|---|---|---|---|
| DAC | Discretionary Access Control | The resource owner decides who gets access | Flexible; intuitive; user autonomy | Owner errors propagate; no central policy; vulnerable to trojan horses | Unix chmod/chown, Windows file permissions |
| MAC | Mandatory Access Control | System-wide labels and clearance levels; users cannot override | Very strong; enforced centrally | Rigid; complex administration; high setup cost | SELinux, AppArmor, military MLS systems |
| RBAC | Role-Based Access Control | Permissions are attached to roles; users are assigned to roles | Scalable; easy to audit; supports separation of duties | Role explosion in large organisations; coarse granularity | ERP systems (HR Manager, Auditor, Developer roles) |
| ABAC | Attribute-Based Access Control | Policy evaluated on attributes of user, resource, action and environment | Very fine-grained; context-aware; dynamic | Complex policy authoring and testing | Zero-trust architectures, cloud IAM policies |
| RuBAC | Rule-Based Access Control | Fixed rules applied to all users (e.g. time-of-day restrictions) | Simple for specific constraints | Not user-specific; limited flexibility | Firewall ACLs, campus network access hours |
Roles and permissions:
| Role | View Marks | Edit Marks | Publish Results | Manage Users | Export Data |
|---|---|---|---|---|---|
| Student | ✔ (own) | ✘ | ✘ | ✘ | ✘ |
| Faculty | ✔ (own courses) | ✔ (own courses) | ✘ | ✘ | ✔ (own courses) |
| Exam Coordinator | ✔ (all) | ✔ (all) | ✔ | ✘ | ✔ (all) |
| Admin | ✔ (all) | ✔ (all) | ✔ | ✔ | ✔ (all) |
Separation of duties: the Exam Coordinator can publish results but cannot manage user accounts; the Admin can manage accounts but results publication requires the Coordinator role — no single person can both alter marks and publish them undetected.
PoLP in practice: a Faculty member can edit only the courses they teach, not the entire department's records. If a Faculty account is compromised, the damage is confined to one semester's courses.
| Component | Question Answered | Mechanisms |
|---|---|---|
| Authentication | "Who are you?" | Passwords, OTP, biometrics, smart cards, certificates, FIDO2/WebAuthn |
| Authorisation | "What are you allowed to do?" | RBAC, ACLs, policy engines, capability tokens, scopes |
| Accounting / Auditing | "What did you actually do?" | Audit logs, SIEM, session recording, immutable log storage |
Multi-Factor Authentication requires the user to present two or more authentication factors drawn from different categories. Using two passwords is not MFA — both factors belong to the same category ("something you know").
| Category | Description | Examples | Weaknesses |
|---|---|---|---|
| Something you know | Knowledge factor | Password, PIN, security question | Phishing, keylogging, credential stuffing, shoulder surfing |
| Something you have | Possession factor | OTP token, authenticator app, smart card, hardware key (YubiKey) | SIM swapping (SMS OTP), device theft |
| Something you are | Inherence factor | Fingerprint, face ID, iris scan, voice | Cannot be changed if compromised; spoofing attempts |
| Somewhere you are | Location factor | GPS, IP range, network location | Spoofable; privacy concerns |
| Something you do | Behaviour factor | Typing rhythm, gait, mouse movement patterns | Low accuracy alone; needs large training data |
| MFA Method | Security Level | Notes |
|---|---|---|
| SMS OTP | Low–Medium | Vulnerable to SIM-swap and SS7 interception; better than nothing |
| Email OTP | Low–Medium | Depends on the security of the email account itself |
| Authenticator app (TOTP) | High | Code generated locally every 30 s; not transmitted over the network |
| Push notification with number matching | High | Defeats MFA-fatigue attacks; requires approving the correct number |
| Hardware security key (FIDO2/WebAuthn) | Very High | Phishing-resistant — cryptographically bound to the origin domain |
| Biometric + PIN | High | Combines inherence with knowledge; used on mobile devices |
Microsoft's security research consistently reports that enabling MFA blocks the overwhelming majority (approximately 99%) of automated account-compromise attempts. It is the single highest-value security control available to an individual user, because it defeats credential stuffing and the reuse of breached passwords.
\(C\) = size of the character set, \(L\) = password length, \(N\) = number of possible passwords.
\(R\) = guessing rate (guesses per second); dividing by 2 gives the expected time for a random search.
| Character Set | Size \(C\) | Example |
|---|---|---|
| Lowercase letters | 26 | abcdefghijklmnopqrstuvwxyz |
| + Uppercase | 52 | a–z, A–Z |
| + Digits | 62 | 0–9 added |
| + Common symbols | 94 | !@#$%^&*()_+-=[]{} etc. |
Password A: summer2024 — 10 characters from a set of lowercase + digits (\(C = 36\)).
\[ N_A = 36^{10} \approx 3.66 \times 10^{15} \]
At \(R = 10^{10}\) guesses/second (a modern GPU rig):
\[ T_A = \frac{3.66 \times 10^{15}}{2 \times 10^{10}} \approx 183{,}000 \text{ s} \approx 2.1 \text{ days} \]
Password B: Tr0ub4dor&3 — 11 characters from the full set (\(C = 94\)).
\[ N_B = 94^{11} \approx 5.13 \times 10^{21} \]
\[ T_B = \frac{5.13 \times 10^{21}}{2 \times 10^{10}} \approx 2.56 \times 10^{11} \text{ s} \approx 8{,}100 \text{ years} \]
Password C: correct-horse-battery-staple — 28 characters, lowercase + hyphens (\(C = 27\)).
\[ N_C = 27^{28} \approx 1.2 \times 10^{40} \]
Conclusion: Length dominates complexity. Password C is a passphrase — easy for a human to remember, but astronomically harder to brute-force than a short cryptic password. The modern recommendation (NIST SP 800-63B) prioritises length, discourages forced complexity rules and periodic rotation, and mandates screening against known-breached password lists.
| Weak Practice | Why It Fails | Better Practice |
|---|---|---|
| Reusing passwords across sites | One breach compromises every account (credential stuffing) | Unique password for every site, stored in a password manager |
| Short passwords with symbol substitution | Dictionary and rule-based attacks handle p@ssw0rd trivially | Long passphrase (4–6 random words) |
| Forced 90-day rotation | Leads to predictable increments (Summer1! → Summer2!) | Rotate only on evidence of compromise |
| Security questions with public answers | Answers are discoverable via social media | Use a random string stored in the password manager |
| Sharing passwords via chat or email | Leaves a permanent plaintext record | Use a password manager's sharing feature or a secret vault |
| Storing passwords in a spreadsheet | Unencrypted, easy to exfiltrate | Use a dedicated encrypted password manager |
A password manager solves the central tension: humans cannot memorise 100 unique strong passwords, but reusing one is unsafe. Store all unique passwords in an encrypted vault protected by one strong master passphrase plus MFA. The manager also detects phishing automatically, because it will not autofill a credential on a lookalike domain.
Safe internet practices are the habits, configurations and behaviours that individuals adopt to protect their devices, data, identity and privacy while using the Internet.
Security is not solely a technical problem. The overwhelming majority of successful breaches begin with a human action — clicking a link, reusing a password, ignoring an update, connecting to an untrusted network. Safe practices therefore provide the highest return on effort for an individual user.
| Practice | Why It Matters |
|---|---|
| Verify HTTPS (padlock icon) before entering credentials | Ensures traffic is encrypted with TLS and the certificate matches the domain |
| Check the full domain, not just the brand name | paypal.com.secure-login.ru is a subdomain of secure-login.ru, not of PayPal |
| Hover over links before clicking | Reveals the true destination in the status bar |
| Avoid clicking links in unsolicited emails or SMS | Navigate directly by typing the known address instead |
| Use browser extensions sparingly | Malicious extensions can read every page you visit, including banking pages |
| Keep the browser updated | Browsers patch critical vulnerabilities frequently |
| Use a DNS filtering service | Blocks known-malicious domains before a connection is made |
| Log out of sensitive sessions | Prevents session hijacking on shared or stolen devices |
| Use incognito/private mode appropriately | Prevents local history storage, but does not hide traffic from the network or ISP |
| Mitigation | Effectiveness | Notes |
|---|---|---|
| Use HTTPS everywhere | High | Protects content, but metadata (which sites you visit) remains visible |
| Use a reputable VPN | High | Encrypts all traffic to the VPN endpoint; hides traffic from the local network |
| Enable "Always use HTTPS" and DNS-over-HTTPS | Medium–High | Reduces plaintext exposure |
| Avoid banking and sensitive logins on public Wi-Fi | High | Behavioural control — the simplest and most reliable |
| Use your mobile hotspot instead | High | Your own carrier network is generally more trustworthy |
| Disable file sharing and auto-connect | Medium | Prevents accidental exposure on known network profiles |
| Forget the network when done | Medium | Prevents automatic reconnection to a spoofed twin later |
"Free" VPN services must monetise somehow, and the common business model is logging and selling user traffic data. Use only reputable paid providers with published, independently audited no-logs policies — or rely on your institution's VPN.
An unpatched system is a known-vulnerable system. Public exploit code for a published CVE often appears within days, so the window between disclosure and exploitation is short.
| Component | Update Frequency | Setting |
|---|---|---|
| Operating system | Monthly (Patch Tuesday) + emergency patches | Automatic updates enabled |
| Browser | Every 4–6 weeks | Auto-update; restart promptly when prompted |
| Antivirus / EDR signatures | Multiple times daily | Automatic |
| Applications (Office, PDF readers, Java) | As released | Use a patch-management tool where possible |
| Router / IoT firmware | Rarely — check quarterly | Manual check; enable auto-update if supported |
| Mobile apps | Frequent | Auto-update over Wi-Fi |
Any device that has not been patched in 30 days should be treated as compromised. Track patch status for your own devices in the same way a system administrator tracks a fleet — a simple calendar reminder is sufficient for personal use.
3 copies of the data, on 2 different media types, with 1 copy stored offsite (or offline).
| Element | Purpose | Example Implementation |
|---|---|---|
| 3 copies | Survives two simultaneous failures | Original + local backup + cloud backup |
| 2 media types | Protects against media-specific failure | Internal SSD + external HDD |
| 1 offsite/offline | Survives fire, theft, ransomware that encrypts network shares | Cloud storage or a rotated external drive kept elsewhere |
Additional principles:
| Area | Practice |
|---|---|
| Screen lock | Enable auto-lock after 2–5 minutes; use a PIN/biometric |
| Disk encryption | Enable BitLocker (Windows), FileVault (macOS), LUKS (Linux) to protect a lost device |
| App permissions | Review camera, microphone, location and contacts access; revoke anything unnecessary |
| Account inventory | List all online accounts; delete dormant ones — they are unmonitored attack surface |
| Breach monitoring | Periodically check Have I Been Pwned; act on any reported exposure |
| Recovery options | Set up a recovery email and phone; store backup codes securely offline |
| Session review | Periodically sign out of all devices to evict forgotten sessions |
| USB hygiene | Never plug in found USB drives; disable autorun |
| Download sources | Install software only from official vendor sites or signed package repositories |
Situation: A third-year student receives a notification that someone logged into their university email from an unrecognised city at 3 a.m.
Correct response sequence:
Preventive reflection: MFA alone would have blocked this. A password manager would have prevented the credential reuse that likely enabled it.
A digital footprint (also called a digital shadow or electronic footprint) is the trail of data created by a person's activity on the Internet. It is the cumulative sum of all information about an individual that exists online, whether published deliberately or collected automatically.
Two properties make the digital footprint fundamentally different from a physical one:
| Parameter | Active Footprint | Passive Footprint |
|---|---|---|
| Creation | Deliberately created by the user | Collected automatically without conscious action |
| User awareness | High | Low — often entirely invisible |
| User control | High — the user decides what to publish | Limited to browser and privacy settings |
| Examples | Social media posts, comments, photographs, blog articles, form submissions, reviews, uploaded videos, forum answers | IP address logs, browser cookies, device fingerprint, browsing history, location pings, email tracking pixels, app analytics |
| Typical collectors | Public audience, followers, search engines | Advertisers, data brokers, analytics platforms, ISPs, websites |
| Persistence | Until deleted; may survive in archives | Often retained indefinitely by third parties |
| Deletion difficulty | Moderate — delete from the platform | Very hard — data is held by parties you cannot contact |
| Domain | Impact |
|---|---|
| Employability | Recruiters routinely screen candidates online. Offensive posts, unprofessional photographs or evidence of dishonesty can eliminate an otherwise strong application before the interview stage. |
| Academic standing | Universities investigate plagiarism, harassment and misconduct based on online evidence. Disciplinary action can affect scholarships and placements. |
| Reputation and personal brand | The footprint is your online reputation, whether you manage it or not. A positive footprint — technical blogs, open-source contributions, project repositories — actively helps. |
| Security | Oversharing fuels social engineering. A posted birthdate, pet name or mother's maiden name can answer security questions and enable account recovery attacks. |
| Privacy | Aggregated passive data enables detailed behavioural profiling by advertisers and data brokers. |
| Legal exposure | Old posts can surface in legal proceedings, defamation claims or regulatory investigations. |
| Financial | Insurers, lenders and landlords increasingly check online presence. |
| Personal relationships | Content visible to future partners, friends and family can resurface years later. |
Multiple industry surveys consistently report that a large majority of recruiters research candidates on social media, and a significant fraction have rejected candidates based on what they found — most commonly: provocative content, information about drinking or drug use, poor communication skills, and disparaging remarks about a previous employer or colleague.
| Component | What It Reveals | Typical Source |
|---|---|---|
| Social media activity | Interests, opinions, social circle, behaviour | Instagram, X/Twitter, Facebook, Reddit |
| Professional presence | Skills, work history, endorsements | LinkedIn, GitHub, personal portfolio |
| Search history | Concerns, health issues, purchases | Search engines, ISP logs |
| Browsing behaviour | Reading habits, shopping intent | Cookies, tracking pixels, third-party scripts |
| Location data | Home, workplace, routine | Mobile OS, mapping apps, photo EXIF metadata |
| Purchases and transactions | Spending capacity, lifestyle | E-commerce platforms, payment services |
| Comments and forum posts | Attitude, expertise, tone | Stack Overflow, Quora, YouTube comments |
| Metadata | Device model, timestamps, GPS coordinates | Photo EXIF, document properties |
| Public records | Addresses, property, court records | Government registries |
| Data-broker profiles | Aggregated inferences about behaviour and demographics | Data brokers, credit agencies |
Audit. Search your own name on Google, Bing and DuckDuckGo. Use quotation marks for exact matches and check image search. Review old social media posts, tagged photographs and comments. Check Have I Been Pwned for breached accounts.
Prune. Delete outdated, offensive or overly personal content. Deactivate accounts you no longer use. Remove tags where possible. Where deletion is not possible, publish newer positive content to push old content down in search results.
Lock down. Set social profiles to private. Disable location tagging and geotagging in the camera. Review and revoke third-party app access. Turn off ad personalisation where possible.
Separate. Maintain distinct professional and personal identities. Use one email address for professional correspondence and a different one for social sign-ups. Keep professional profiles (LinkedIn, GitHub) consistently polished.
Monitor. Set up Google Alerts for your name. Review account activity logs periodically. Check privacy settings after major platform updates, which frequently reset defaults.
Build positively. Publish technical blogs, contribute to open source, maintain a project portfolio and participate in professional communities. A strong positive footprint does not merely offset a negative one — it becomes a genuine career asset.
Situation: A final-year CSE student with a strong CGPA (8.6) and two internships is receiving no interview calls despite applying to over forty companies.
Audit findings:
| Finding | Risk Level | Impact |
|---|---|---|
| Public Instagram account with offensive posts from 2019 (age 16) | High | Immediate rejection at screening |
| GitHub profile with 30 forked repositories and no original work; no README files | High | Suggests no genuine technical depth despite the internships |
| LinkedIn headline: "Student at XYZ University" | Medium | Fails to communicate specialisation or value |
Email address: party_king_99@example.com | Medium | Unprofessional impression before the CV is even read |
| Twitter account with political arguments and aggressive replies | High | Raises concerns about workplace conduct |
| Outdated portfolio website with broken links | Medium | Suggests lack of attention to detail |
Corrective action plan:
firstname.lastname@example.com) and update it across all applications and accounts.Outcome: Within one recruitment cycle, four interview calls. Lesson: the digital footprint is a screening filter that acts before the interview — and it is entirely within the candidate's control to shape it.
Modern smartphones embed EXIF metadata in every photograph: device model, timestamp, and often precise GPS coordinates. Uploading an unprocessed photograph can therefore reveal the exact location of your home, workplace or child's school.
| EXIF Field | Reveals |
|---|---|
| GPSLatitude / GPSLongitude | Precise location to within a few metres |
| DateTimeOriginal | Exact date and time the photo was taken |
| Make / Model | Device make and model — useful for device fingerprinting |
| SerialNumber | In some devices, a unique device identifier |
| Software | Editing software and version used |
Mitigation: disable location tagging in the camera settings; strip metadata before sharing (most social platforms do this automatically, but email and messaging apps often do not).
Before posting anything, apply the front-page test: would you be comfortable if this appeared on the front page of a newspaper alongside your full name and photograph? If not, do not post it. This single heuristic prevents most digital-footprint regrets.
Cyber ethics is the study of moral, legal and social issues relating to the use of computers, networks and digital information. It defines the standards of responsible behaviour expected of individuals and organisations operating in cyberspace.
Cyber ethics addresses a gap that law alone cannot fill: technology evolves faster than legislation, and many harmful actions are not explicitly illegal. Ethical standards guide behaviour where the law is silent or ambiguous.
| Domain | Source of Authority | Consequence of Violation | Example |
|---|---|---|---|
| Law | State / legislature | Prosecution, fine, imprisonment | Unauthorised access under IT Act s.66 |
| Ethics | Moral reasoning, social norms | Social disapproval, loss of trust | Reading a colleague's unlocked screen |
| Professional codes | Professional bodies (IEEE, ACM, BCS) | Disciplinary action, loss of membership/certification | Signing off on untested safety-critical code |
| Organisational policy | Employer / institution | Warning, termination | Installing unapproved software |
An action can be legal but unethical (e.g. legally collecting and selling personal data without meaningful consent), or ethical but illegal (e.g. whistle-blowing through unauthorised disclosure). The most defensible position is one where all four domains align.
| Issue | Description | Ethical Concern | Responsible Practice |
|---|---|---|---|
| Software Piracy | Unauthorised copying, distribution or use of licensed software | Denies creators legitimate compensation; funds criminal networks | Use licensed, open-source or student-licensed software |
| Plagiarism | Presenting another's work, code or ideas as one's own | Misrepresents competence; devalues genuine effort | Cite all sources including code snippets and AI assistance |
| Intellectual Property Violation | Infringing copyright, patents or trademarks | Undermines innovation incentives | Respect licence terms (MIT, GPL, Apache, CC) |
| Unauthorised Access / Hacking | Accessing systems without explicit permission | Violates privacy and property; causes real harm | Ethical hacking only with written authorisation and a defined scope |
| Data Privacy Violations | Collecting, using or sharing personal data without consent | Autonomy, dignity, potential for discrimination | Data minimisation, explicit consent, purpose limitation |
| Cyberbullying and Harassment | Intimidating or humiliating others online | Psychological harm; power imbalance | Do not participate; report; support the target |
| Identity Theft | Impersonating someone online | Financial loss and reputational damage to the victim | Protect personal data; enable MFA; monitor accounts |
| Misinformation / Disinformation | Spreading false content, sometimes deliberately | Undermines public discourse and safety | Verify before sharing; cite primary sources |
| AI Ethics | Bias, opacity and accountability in automated decisions | Discrimination at scale; unaccountable harm | Test for bias; document limitations; retain human oversight |
| Deepfakes | Synthetic media depicting real people saying or doing things they did not | Defamation, election manipulation, non-consensual imagery | Do not create or circulate; label synthetic media clearly |
| Digital Divide | Unequal access to technology and digital literacy | Compounds existing social inequality | Support digital-literacy initiatives; design for accessibility |
| Environmental Impact | Energy and water consumption of data centres and AI training | Externalised environmental cost | Optimise models; prefer efficient architectures; measure footprint |
Published by the Computer Ethics Institute (1992), this remains the most widely cited summary of computing ethics:
| Principle | Commitment To |
|---|---|
| Public | Act consistently with the public interest |
| Client and Employer | Act in their best interest, consistent with the public interest |
| Product | Ensure products and modifications meet the highest professional standards |
| Judgment | Maintain integrity and independence in professional judgment |
| Management | Promote an ethical approach to managing software development |
| Profession | Advance the integrity and reputation of the profession |
| Colleagues | Be fair to and supportive of colleagues |
| Self | Participate in lifelong learning and promote an ethical approach to practice |
| Parameter | Ethical Hacking (White Hat) | Malicious Hacking (Black Hat) |
|---|---|---|
| Authorisation | Written permission with a defined scope | None |
| Intent | Improve security; help the organisation | Personal gain, damage, espionage |
| Disclosure | Findings reported privately to the owner | Exploited, sold or published maliciously |
| Legal status | Lawful within the agreed scope | Criminal offence |
| Method | Follows a methodology (recon → scan → exploit → report → remediate) | Opportunistic; often uses existing tools |
| Deliverable | Penetration test report with remediation guidance | Stolen data, ransom demand, disruption |
Grey hat hacking sits between: the actor finds a vulnerability without authorisation but reports it (sometimes demanding a reward). It remains legally problematic, because authorisation is what distinguishes the two.
If you discover a vulnerability, do not exploit it, do not access data beyond what is necessary to demonstrate the issue, and do not publish it publicly before the vendor has had a reasonable opportunity to fix it. Report it privately through the organisation's security contact or a coordinated vulnerability disclosure programme (bug bounty). Typical disclosure timelines are 90 days.
| Law | Year | Relevance to Computing |
|---|---|---|
| Information Technology Act | 2000 | The primary cyber law of India — provides legal recognition for electronic records and digital signatures, and defines cyber offences and penalties |
| IT (Amendment) Act | 2008 | Added Sections 66–69 and others; introduced provisions on cyber terrorism, obscene material, and interception powers |
| Copyright Act | 1957 | Protects source code, documentation and creative works; covers software as a literary work |
| Digital Personal Data Protection Act | 2023 | Consent-based processing of personal data; establishes obligations for data fiduciaries and rights for data principals |
| Indian Penal Code / Bharatiya Nyaya Sanhita | 1860 / 2023 | Covers traditional offences (fraud, forgery, defamation, criminal intimidation) committed through digital means |
| Section | Provision | Consequence |
|---|---|---|
| Section 43 | Damage to computer, computer system or network — unauthorised access, downloading, copying, disruption | Civil liability — compensation to the affected party |
| Section 43A | Failure to protect sensitive personal data | Compensation to affected persons |
| Section 65 | Tampering with computer source documents | Imprisonment up to 3 years and/or fine up to ₹2 lakh |
| Section 66 | Computer-related offences — dishonest or fraudulent acts under Section 43 | Imprisonment up to 3 years and/or fine up to ₹5 lakh |
| Section 66C | Identity theft — fraudulent use of another's electronic signature, password or identification feature | Imprisonment up to 3 years and/or fine up to ₹1 lakh |
| Section 66D | Cheating by personation using a computer resource | Imprisonment up to 3 years and/or fine up to ₹1 lakh |
| Section 66E | Violation of privacy — capturing or publishing private images without consent | Imprisonment up to 3 years and/or fine up to ₹2 lakh |
| Section 66F | Cyber terrorism — acts threatening the unity, integrity or security of India | Imprisonment which may extend to life |
| Section 67 | Publishing obscene material in electronic form | First conviction: up to 3 years and/or fine up to ₹5 lakh |
| Section 69 | Powers to intercept, monitor or decrypt information | Government authority, exercised under defined procedure |
| Section 72 | Breach of confidentiality and privacy by a person with authorised access | Imprisonment up to 2 years and/or fine up to ₹1 lakh |
Unauthorised access to any computer system is a punishable offence under Sections 43 and 66 of the IT Act, 2000 — even if no data is stolen, even if no damage occurs, and even if the intent was merely to "check whether it was possible". Testing your own college's network, a friend's account, or an unsecured public server without written authorisation is a criminal act, not a harmless experiment. Port scanning, credential guessing and exploiting a vulnerability all fall within the prohibition. Always obtain written permission with an explicit scope before any security testing.
| Principle | Requirement |
|---|---|
| Lawfulness and consent | Process personal data only with a lawful basis, typically the individual's informed consent |
| Purpose limitation | Collect data only for the specific, stated purpose |
| Data minimisation | Collect only what is genuinely necessary |
| Accuracy | Keep data accurate and up to date |
| Storage limitation | Retain data only as long as needed for the stated purpose |
| Security | Implement appropriate technical and organisational safeguards |
| Accountability | The data controller must be able to demonstrate compliance |
| Individual rights | Right to access, correction, erasure and grievance redressal |
Scenario: During a college tech fest, a student discovers that the registration portal (built by a peer) stores user passwords in plaintext in the database, and that the database is publicly readable at an unauthenticated URL. The student is unsure what to do.
Analysis of options:
| Option | Legal Position | Ethical Position | Assessment |
|---|---|---|---|
| Download the database to prove the vulnerability | Illegal — unauthorised access under s.43 and s.66, plus s.66C if credentials are used | Unethical — accesses others' personal data unnecessarily | Unacceptable |
| Publicly post the URL on social media to force a fix | Potentially illegal — may constitute unauthorised disclosure | Unethical — exposes thousands of students to harm | Unacceptable |
| Ignore it; it is not your responsibility | Legal | Questionable — you now know of a harm and have the means to prevent it | Weak |
| Privately inform the developer and a faculty supervisor, sharing only a screenshot of the URL without downloading any data | Legal — no unauthorised access to data | Ethical — minimises harm, respects privacy, enables remediation | Recommended |
| Offer to help fix the issue (password hashing with bcrypt/argon2, access control on the endpoint) | Legal, and constructive | Ethical — solves the root cause | Recommended |
Resolution: Notify the developer and supervisor privately, verify only what is visible without authentication (a single screenshot of the error page, no data extraction), and volunteer to implement password hashing and endpoint authorisation. After the fix, write a short internal post-mortem so future fest portals do not repeat the mistake.
Key principle demonstrated: responsible disclosure — demonstrate the minimum necessary, disclose privately, and support remediation.
| Term | One-Line Definition |
|---|---|
| Software Engineering | Systematic application of engineering principles to the design, development, testing and maintenance of software |
| SDLC | Structured sequence of phases from requirements to maintenance in software development |
| Functional Requirement | What the system does |
| Non-Functional Requirement | How well the system does it (performance, security, usability) |
| Waterfall Model | Linear, sequential SDLC with no going back |
| V-Model | Waterfall with a matching test phase for every development phase |
| Spiral Model | Risk-driven iterative SDLC passing through four quadrants per cycle |
| Agile | Iterative, incremental approach delivering working software in short cycles and welcoming change |
| Scrum | An Agile framework with defined roles, artifacts and ceremonies |
| DevOps | Cultural and technical unification of development and operations for rapid, reliable releases |
| CI / CD | Automated build-and-test on every commit / always-deployable state |
| Version Control System | Tool recording file changes over time to enable recall and collaboration |
| Commit | Immutable snapshot of staged changes identified by a SHA-1 hash |
| Staging Area | Holding area where changes are prepared before committing |
| Branch | Movable pointer to a commit; an independent line of development |
| Merge vs Rebase | Combine histories preserving topology vs replay commits to linearise history |
| Pull Request | Request to merge a branch, providing review and discussion |
| CIA Triad | Confidentiality, Integrity, Availability — the three security objectives |
| Vulnerability | A weakness that a threat can exploit |
| Risk | Likelihood × impact of a threat exploiting a vulnerability |
| Firewall | Device or software filtering network traffic based on rules |
| DMZ | Buffer sub-network hosting public services between two firewalls |
| IDS vs IPS | Passive detection vs active inline prevention |
| Principle of Least Privilege | Grant only the minimum access necessary for the minimum time |
| RBAC | Permissions attached to roles; users assigned to roles |
| MFA | Authentication using two or more factors from different categories |
| AAA | Authentication, Authorisation, Accounting |
| Digital Footprint | Permanent trail of data created by online activity |
| Cyber Ethics | Moral principles governing responsible behaviour in cyberspace |
| Responsible Disclosure | Reporting a vulnerability privately to the owner with minimal demonstration |
| Concept | Formula |
|---|---|
| Defect density | Defects ÷ KLOC |
| MTBF | Total operating time ÷ number of failures |
| Availability | MTBF ÷ (MTBF + MTTR) |
| Risk exposure (spiral) | \(RE = P(UO) \times L(UO)\) |
| Agile velocity | Story points completed per sprint |
| Sprints remaining | Remaining backlog points ÷ average velocity |
| Commit hash | SHA-1 of tree, parent, author, timestamp, message |
| Security risk | Threat × Vulnerability × Impact |
| Single Loss Expectancy | Asset Value × Exposure Factor |
| Annualised Loss Expectancy | SLE × ARO |
| Password search space | \(N = C^{L}\) |
| Time to brute force | \(T = N / (2R)\) |
| Pair | Key Distinguishing Point |
|---|---|
| Waterfall vs Agile | Sequential and change-averse vs iterative and change-welcoming |
| Incremental vs Iterative | Adds new features (breadth) vs refines existing ones (depth) |
| Verification vs Validation | "Are we building the product right?" vs "Are we building the right product?" |
| Black-box vs White-box testing | Tests behaviour without code knowledge vs tests internal paths |
| Centralised vs Distributed VCS | Single server repository vs full history on every clone |
| fetch vs pull | Downloads only vs downloads and merges |
| merge vs rebase | Preserves branch topology vs rewrites history into a line |
| reset vs revert | Rewrites history (dangerous if pushed) vs adds an inverse commit (safe) |
| Virus vs Worm | Requires a host file vs self-propagating across networks |
| Trojan vs Virus | Does not self-replicate; disguises itself vs replicates by attaching to files |
| IDS vs IPS | Detects and alerts vs detects and blocks inline |
| Authentication vs Authorisation | Who you are vs what you may do |
| DAC vs MAC | Owner decides vs system-enforced labels |
| RBAC vs ABAC | Permissions by role vs permissions by multi-attribute policy |
| Symmetric vs Asymmetric encryption | One shared key, fast vs key pair, slow but solves key distribution |
| Hashing vs Encryption | One-way integrity check vs reversible confidentiality |
| Active vs Passive footprint | Deliberately shared vs automatically collected |
| White hat vs Black hat | Authorised, reports privately vs unauthorised, exploits |
git switch -c feature/x, not "create a branch". Marks are awarded for accurate command usage.Q1. Define software engineering and explain why the "software crisis" of the 1960s led to the development of structured SDLC processes. Easy
Q2. Explain the six phases of the SDLC with their deliverables and exit criteria. Which type of maintenance consumes the largest share of lifetime cost, and why does this matter? Easy
Q3. Compare the Waterfall, Spiral and Agile models on the parameters of change handling, customer involvement, risk management and suitability. Recommend a model for a banking mobile application with a fixed regulatory deadline and evolving UI requirements, justifying your choice. Medium
Q4. A team's velocity over four sprints was 22, 26, 25 and 27 story points. The remaining backlog is 240 points. Calculate the average velocity, the number of sprints required, and the calendar duration assuming two-week sprints. Explain why a buffer should be added. Medium
Q5. Differentiate between centralised and distributed version control systems on at least five parameters. Explain why Git stores snapshots rather than differences, and what benefit this provides. Medium
Q6. Explain the three trees of Git. Write the complete sequence of commands for a feature-branch workflow from branching through to cleaning up after a merged pull request. Medium
Q7. Explain the CIA triad with one control and one attack for each pillar. Define the terms threat, vulnerability, exploit and risk, and state the risk quantification formula. Easy
Q8. Classify firewalls by generation. Compare packet-filtering and stateful inspection firewalls on OSI layer, state awareness, vulnerability and performance. Explain the concept of a DMZ with a suitable diagram description. Hard
Q9. Explain the principle of least privilege and describe four practical methods of implementing it in an organisation. Compare DAC, MAC and RBAC access control models. Medium
Q10. Calculate the password search space and the expected brute-force time for: (a) an 8-character lowercase-only password, and (b) a 14-character password from a 94-character set, assuming a guessing rate of \(10^{11}\) guesses per second. Comment on the implication for password policy. Hard
Q11. Differentiate between active and passive digital footprints with five parameters. Describe a six-step strategy for managing your digital footprint and explain why deletion alone is insufficient. Medium
Q12. Define cyber ethics. Explain any six major cyber ethics issues with their ethical concerns and responsible practices. State the key sections of the IT Act 2000 relevant to unauthorised access, identity theft and cyber terrorism. Hard
Definition: Software engineering is the systematic application of engineering principles — process, measurement, documentation and review — to the design, development, testing, deployment and maintenance of software systems.
The software crisis: The term was coined at the 1968 NATO Software Engineering Conference to describe the chronic failure of large software projects. Projects consistently exceeded budgets and schedules, produced unreliable products, and were prohibitively expensive to maintain. The root cause was that project size and complexity grew rapidly while development discipline did not — code was written ad hoc, requirements were undocumented, and testing was an afterthought.
How SDLC processes addressed it:
| Phase | Key Activities | Deliverable | Exit Criterion |
|---|---|---|---|
| Requirement gathering & analysis | Stakeholder interviews, scope definition, feasibility study | SRS document | SRS signed off by client |
| System design | Architecture, database design, UI design, interface specification | Design document, ER and UML diagrams | Design review approved |
| Implementation | Coding, unit testing, code review | Source code, unit test suite | Code merged; unit tests pass |
| Testing | Integration, system and acceptance testing; defect logging | Test plan, test cases, defect reports | Defect density within threshold |
| Deployment | Release packaging, installation, user training | Release build, user manual | Production sign-off |
| Maintenance | Corrective, adaptive, perfective and preventive maintenance | Patches, minor releases | Product retired |
Largest maintenance share: Perfective maintenance — approximately 50% of maintenance effort — covering improvements to performance, maintainability and readability without changing external behaviour. Corrective is ~20%, adaptive ~25%, preventive ~5%.
Why this matters: Maintenance consumes 60–70% of a system's total lifetime cost. This makes maintainability a first-class quality attribute: readable code, meaningful names, adequate test coverage, good documentation and modular design all reduce the long-term cost of change. It also justifies Agile practices such as continuous refactoring — paying down technical debt early is far cheaper than paying it during maintenance.
| Parameter | Waterfall | Spiral | Agile / Scrum |
|---|---|---|---|
| Nature | Linear, sequential | Risk-driven iterative spiral | Iterative and incremental sprints |
| Change handling | Very poor — changes are expensive after sign-off | Excellent — each cycle re-evaluates objectives and risks | Excellent — backlog reprioritised every sprint |
| Customer involvement | Start and end only | Every cycle (formal review) | Continuous, via the Product Owner and sprint reviews |
| Risk management | Implicit; risks surface late | Explicit and formal — quadrant 2 of every loop | Implicit through short feedback cycles |
| Working software | Very late | Prototypes from early cycles | Every sprint (2–4 weeks) |
| Documentation burden | Heavy | Moderate–Heavy | Light (working software prioritised) |
| Cost profile | Front-loaded, then fixed | High — prototyping each cycle | Continuous, predictable per sprint |
| Best for | Frozen, well-understood requirements | Large, high-risk, high-budget projects | Evolving requirements, fast delivery |
Recommendation for the banking mobile application:
Neither pure Waterfall nor pure Agile fits. The fixed regulatory deadline and the need for auditability argue against a pure Agile approach; the evolving UI requirements argue against pure Waterfall. The recommended approach is a hybrid: Agile delivery inside a Waterfall-governed framework.
Justification:
Given: Velocities = 22, 26, 25, 27. Remaining backlog = 240 points. Sprint length = 2 weeks.
Average velocity:
\[ \overline{V} = \frac{22 + 26 + 25 + 27}{4} = \frac{100}{4} = 25 \text{ points/sprint} \]
Sprints required:
\[ \text{Sprints} = \frac{240}{25} = 9.6 \rightarrow 10 \text{ sprints} \]
Calendar duration:
\[ 10 \times 2 = 20 \text{ weeks} \]
Why a buffer is necessary:
A defensible buffer is 1–2 additional sprints, giving a commitment of 11–12 sprints (22–24 weeks) for external communication, while planning internally for 10. Publishing the buffered figure protects credibility; planning to the unbuffered figure maintains focus.
| Parameter | Centralised VCS | Distributed VCS |
|---|---|---|
| Repository location | Single central server holds the authoritative repository | Every clone contains the complete repository and history |
| Offline capability | Very limited — most operations require server connectivity | Full — commit, branch, diff, log and merge all work offline |
| Single point of failure | Yes — server loss can destroy the entire history | No — any clone can restore the full repository |
| Branching cost | Expensive and slow, often discouraged | Cheap and near-instantaneous; encourages feature branching |
| Merge handling | Basic; often requires manual file copying | Sophisticated three-way merge with conflict detection |
| Speed of operations | Network-dependent | Local operations are extremely fast |
| Access control | Centralised and straightforward | Distributed; more complex to enforce uniformly |
| Learning curve | Gentler | Steeper — more concepts (staging, rebase, remotes) |
| Disk usage | Minimal on the client | Larger — the full history is duplicated on every clone |
| Examples | SVN, CVS, Perforce | Git, Mercurial |
Why Git stores snapshots rather than differences:
Traditional version control systems store a base version plus a chain of deltas (differences). Reconstructing any version requires replaying every delta from the base — an operation whose cost grows with history depth. Git instead stores a complete snapshot of the project tree at each commit, but achieves efficiency through two mechanisms:
Benefits this provides:
The three trees of Git:
| Tree | Contents | Command that places data here |
|---|---|---|
| Working Directory | The actual files currently being edited | git switch / git checkout populates it; editing modifies it |
| Staging Area (Index) | Changes marked to be included in the next commit | git add |
| Repository (HEAD) | Committed immutable snapshots | git commit |
Data flows: Working Directory → (git add) → Staging Area → (git commit) → Repository. The reverse flow is (git checkout/switch/restore).
The staging area exists to allow selective, coherent commits. If you have fixed a bug and simultaneously begun a new feature, you can stage and commit only the bug fix, leaving the feature work uncommitted — producing a clean, reviewable history.
Complete feature-branch workflow:
# 1. Sync the base branch
git switch main
git pull origin main
# 2. Create the feature branch
git switch -c feature/payment-gateway
# 3. Implement and commit in logical units
# ... edit src/payment.js, tests/payment.test.js ...
git status
git diff
git add src/payment.js
git commit -m "feat: integrate Razorpay payment SDK"
git add tests/payment.test.js
git commit -m "test: cover payment success and failure paths"
# 4. Keep the branch current with main
git fetch origin
git rebase origin/main
# resolve any conflicts, then: git add . && git rebase --continue
# 5. Publish and open a pull request
git push -u origin feature/payment-gateway
# open PR on GitHub, request 1–2 reviewers, wait for CI
# 6. After the PR is merged (squash or rebase-merge)
git switch main
git pull origin main
# 7. Clean up
git branch -d feature/payment-gateway
git push origin --delete feature/payment-gateway
# 8. Verify
git log --oneline --graph -8
| Pillar | Meaning | One Control | One Attack |
|---|---|---|---|
| Confidentiality | Information is accessible only to authorised parties | AES-256 encryption at rest plus role-based access control | Data breach through credential theft; unencrypted data intercepted on a public network |
| Integrity | Data is accurate, complete and unaltered | SHA-256 hashing with digital signatures; append-only audit logs | Man-in-the-middle tampering; SQL injection modifying database records |
| Availability | Systems and data are accessible when required | Redundant servers, load balancing, 3-2-1 backups, DDoS scrubbing | Distributed Denial of Service; ransomware encrypting production data |
Definitions:
Risk quantification:
\[ \text{Risk} = \text{Threat} \times \text{Vulnerability} \times \text{Impact} \]
For financial quantification:
\[ \text{SLE} = \text{Asset Value} \times \text{Exposure Factor} \qquad \text{ALE} = \text{SLE} \times \text{ARO} \]
Worked illustration: A database worth ₹50,00,000 has an exposure factor of 0.4 (a breach would destroy 40% of its value). Then SLE = ₹20,00,000. If such an incident is expected twice a year, ARO = 2 and ALE = ₹40,00,000. A security control costing ₹15,00,000 that reduces the ARO to 0.5 would deliver an ALE reduction of ₹30,00,000 — clearly justified.
Classification by generation:
Additionally, by deployment: host-based, network-based, cloud-native and virtual appliance firewalls; and Web Application Firewalls (WAFs) specialise in HTTP/HTTPS traffic.
Comparison — Packet Filtering vs Stateful Inspection:
| Parameter | Packet Filtering | Stateful Inspection |
|---|---|---|
| OSI layer inspected | Network and Transport (L3–L4) | Network and Transport with session context (L3–L4) |
| State awareness | Stateless — each packet judged independently | Stateful — maintains a connection state table |
| Return traffic handling | Requires an explicit rule allowing the reverse direction | Automatically permits return traffic for ESTABLISHED sessions |
| Vulnerability to spoofing | High — a spoofed source IP can bypass rules | Low — the state table makes spoofing far harder |
| Payload inspection | None — header fields only | None (though it tracks protocol state) |
| Performance | Very fast, minimal overhead | Slower; requires memory for the state table |
| Scalability concern | Rule-list length | State-table size under high concurrent connection load |
| Typical use | Simple routers and legacy devices | Modern perimeter firewalls |
DMZ — concept and topology:
A DMZ is a buffer sub-network that hosts public-facing services between two firewalls:
INTERNET
│
▼
[ External Firewall ] ← allows only 80/443 inbound to the DMZ
│
▼
DMZ (web server, mail relay, reverse proxy, DNS)
│
▼
[ Internal Firewall ] ← allows DMZ → LAN only on specific ports
│
▼
LAN (workstations, application servers, database)
Rule design: Internet → DMZ on ports 80/443 only; DMZ → LAN denied by default, with narrow exceptions (e.g. the web server may query the internal database on port 5432 only); LAN → Internet permitted with inspection.
Security benefit: if the web server in the DMZ is fully compromised, the attacker still faces the internal firewall and cannot freely reach internal systems. A total breach is thereby converted into a contained incident. The DMZ also concentrates the attack surface into a designated, heavily monitored zone rather than exposing internal servers directly.
Principle of Least Privilege (PoLP): Every user, program or process should be granted only the minimum privileges necessary to perform its intended function, and only for the minimum time required.
Four practical implementation methods:
sudo or a privileged access management (PAM) tool, with the elevation time-limited and fully logged. This shrinks the window during which privileged credentials are exposed.www-data.Two additional supporting practices: no shared accounts (every account maps to one person, preserving accountability) and role-based provisioning (access derives from the role, not from individual negotiation).
Comparison of DAC, MAC and RBAC:
| Parameter | DAC | MAC | RBAC |
|---|---|---|---|
| Full name | Discretionary Access Control | Mandatory Access Control | Role-Based Access Control |
| Decision authority | The resource owner | The system, via labels and clearances | The role definition; users are assigned to roles |
| Granularity | Per-file / per-resource | Per-label and per-clearance level | Per-role, typically functional |
| Flexibility | High — users decide freely | Low — rigid and centrally imposed | Moderate — changes require role redesign |
| Administrative effort | Distributed; scales poorly | High; requires a formal classification scheme | Moderate; scales well as roles grow slowly |
| Strength against insider misuse | Weak — owners may grant excessive access | Strong — users cannot override the policy | Good — enforces separation of duties |
| Auditability | Difficult — permissions are scattered | Good — policy is central | Good — role membership is enumerable |
| Typical weakness | Trojan horses inherit the user's permissions | Complex administration; user friction | Role explosion in large organisations |
| Example | Unix chmod and chown; Windows NTFS permissions | SELinux, AppArmor, military multi-level security systems | ERP systems with HR Manager, Auditor, Developer roles |
Practical observation: most real systems combine models. A Linux server might use DAC for ordinary file permissions, MAC (SELinux) for confinement of network-facing daemons, and RBAC at the application layer for business functions.
Given: Guessing rate \(R = 10^{11}\) guesses per second. Expected time \(T = N / (2R)\).
Part (a): 8-character lowercase-only password
Character set \(C = 26\) (lowercase letters only), length \(L = 8\).
\[ N_a = 26^{8} = 208{,}827{,}064{,}576 \approx 2.09 \times 10^{11} \]
\[ T_a = \frac{2.09 \times 10^{11}}{2 \times 10^{11}} \approx 1.04 \text{ seconds} \]
Part (b): 14-character password from a 94-character set
Character set \(C = 94\) (upper, lower, digits, symbols), length \(L = 14\).
\[ N_b = 94^{14} \approx 4.21 \times 10^{27} \]
\[ T_b = \frac{4.21 \times 10^{27}}{2 \times 10^{11}} \approx 2.10 \times 10^{16} \text{ seconds} \]
Converting to years: \(2.10 \times 10^{16} / (3.15 \times 10^{7}) \approx 6.7 \times 10^{8}\) years — approximately 670 million years.
Comparison summary:
| Password | \(C\) | \(L\) | Search Space \(N\) | Time to Crack |
|---|---|---|---|---|
| 8 lowercase | 26 | 8 | \(2.09 \times 10^{11}\) | ≈ 1 second |
| 14 full set | 94 | 14 | \(4.21 \times 10^{27}\) | ≈ 670 million years |
Implications for password policy:
Password1!, Summer2024), so effective entropy is far lower than the formula suggests. This is why breach-list screening is essential.| Parameter | Active Footprint | Passive Footprint |
|---|---|---|
| Creation mechanism | Deliberately created and published by the user | Collected automatically without conscious user action |
| User awareness | High — the user knows what they posted | Low — largely invisible to the user |
| Examples | Social posts, comments, photographs, blog articles, reviews, form submissions, uploaded videos | IP logs, cookies, device fingerprint, browsing history, location pings, email tracking pixels |
| Who collects it | Public audience, followers, search engines, recruiters | Advertisers, data brokers, analytics platforms, ISPs, websites |
| User control | High — deletion and privacy settings are within reach | Limited to browser/privacy configuration and app permissions |
| Persistence and removability | Persists until deleted; may survive in caches and archives | Often retained indefinitely by third parties with no practical deletion route |
Six-step digital footprint management strategy:
Why deletion alone is insufficient:
The practical conclusion is that prevention is substantially more effective than cleanup — hence the value of the "front page test" before publishing anything.
Definition: Cyber ethics is the study of moral, legal and social issues arising from the use of computers, networks and digital information. It establishes standards of responsible behaviour in cyberspace, covering areas where legislation is absent, ambiguous or lagging behind technological change.
Six major cyber ethics issues:
| Issue | Description | Ethical Concern | Responsible Practice |
|---|---|---|---|
| Software piracy | Unauthorised copying, distribution or use of licensed software | Denies developers legitimate compensation; funds criminal networks; undermines innovation | Use licensed, open-source or properly obtained student licences; respect EULA terms |
| Plagiarism | Presenting another's work, code or ideas as one's own | Misrepresents competence; devalues genuine effort; constitutes academic misconduct | Cite all sources including code snippets, tutorials and AI-assisted content |
| Unauthorised access | Accessing systems, accounts or data without explicit permission | Violates privacy and property rights; causes real operational harm | Conduct security testing only with written authorisation and a defined scope; follow responsible disclosure |
| Data privacy violation | Collecting, using or sharing personal data without informed consent | Violates individual autonomy and dignity; enables discrimination and profiling | Data minimisation, explicit consent, purpose limitation, transparency about collection |
| Cyberbullying and harassment | Intimidating, humiliating or threatening others online | Serious psychological harm; exploits power imbalances; amplified by anonymity | Do not participate or amplify; report through platform mechanisms; support the target |
| AI ethics and deepfakes | Bias, opacity and accountability in automated decisions; synthetic media depicting real people falsely | Discrimination at scale; unaccountable harm; erosion of trust in media | Test for bias; document limitations; retain human oversight; label synthetic media clearly; never create non-consensual content |
Key sections of the IT Act, 2000 (as amended) relevant to the offences named:
| Offence | Section | Provision and Consequence |
|---|---|---|
| Unauthorised access | Section 43 | Civil liability for damage to a computer, system or network — compensation payable to the affected party. This applies even where no data is stolen. |
| Unauthorised access with dishonest intent | Section 66 | Where Section 43 is committed dishonestly or fraudulently — imprisonment up to 3 years and/or fine up to ₹5 lakh. |
| Identity theft | Section 66C | Fraudulent or dishonest use of another person's electronic signature, password or other unique identification feature — imprisonment up to 3 years and/or fine up to ₹1 lakh. |
| Cheating by personation | Section 66D | Cheating by personation using a computer resource or communication device — imprisonment up to 3 years and/or fine up to ₹1 lakh. |
| Violation of privacy | Section 66E | Intentionally capturing, publishing or transmitting a private image without consent — imprisonment up to 3 years and/or fine up to ₹2 lakh. |
| Cyber terrorism | Section 66F | Acts threatening the unity, integrity, security or sovereignty of India, or striking terror in the public — imprisonment which may extend to life. |
| Publishing obscene material | Section 67 | Publishing or transmitting obscene material in electronic form — first conviction up to 3 years and/or fine up to ₹5 lakh. |
| Tampering with source documents | Section 65 | Knowingly concealing, destroying or altering computer source code — imprisonment up to 3 years and/or fine up to ₹2 lakh. |
| Breach of confidentiality | Section 72 | Disclosure of information by a person with authorised access, in breach of a legal contract — imprisonment up to 2 years and/or fine up to ₹1 lakh. |
Critical point for students: Section 43 imposes civil liability for unauthorised access even in the absence of theft or damage. Section 66 elevates this to a criminal offence when the access is dishonest or fraudulent. There is no exemption for "curiosity", "educational purposes" or "I was only testing". Written authorisation with a defined scope is what distinguishes legitimate security research from a criminal act.
Complementary framework: the Digital Personal Data Protection Act, 2023 establishes consent-based processing requirements, obligations on data fiduciaries, and rights for data principals including access, correction, erasure and grievance redressal — filling the privacy gap that the IT Act only partially addressed.
| Code | Title | Author | Publisher |
|---|---|---|---|
| T-1 | Operating System Concepts | Abraham Silberschatz, Peter B. Galvin, Greg Gagne | Wiley |
| T-2 | Computer Fundamentals | Pradeep K. Sinha and Priti Sinha | BPB Publication, New Delhi |
| Code | Title | Author | Publisher |
|---|---|---|---|
| R-1 | Data Communications and Networking with TCP/IP Protocol Suite | Behrouz A. Forouzan | McGraw Hill |
| Code | Resource | Topic Covered |
|---|---|---|
| OR-1 | byjus.com/gate/types-of-operating-system-notes | Types of Operating Systems (software development context) |
| RW-1 | geeksforgeeks.org/cloud-computing/virtualization-cloud-computing-types | Cloud Computing and Virtualisation (DevOps deployment) |
| RW-2 | geeksforgeeks.org/product-management/emerging-technologies-and-future-trends-ai-more | Emerging Technologies |
| RW-3 | nptel.ac.in | MOOC courses on software engineering and cyber security |
| RW-5 | geeksforgeeks.org/cybersecurity/what-is-cyberethics | Cyber Ethics |
| RW-6 | cisco.com/site/in/en/learn/topics/security/what-is-cybersecurity | Cyber Security fundamentals |
| Resource | Topic |
|---|---|
| Pro Git — Chacon & Straub (free online) | Complete Git reference |
| The Agile Manifesto (agilemanifesto.org) | Four values and twelve principles |
| OWASP Top 10 | Most critical web application security risks |
| NIST SP 800-63B | Digital identity guidelines — password policy |
| MeitY / CERT-In advisories | Indian cyber security guidance and incident reporting |
| IEEE/ACM Software Engineering Code of Ethics | Professional ethical standards |
| CO | Statement | Covered In |
|---|---|---|
| CO1 | Apply computational thinking and computing environment concepts to solve basic computing problems | Section I (software engineering discipline), Section II (structured development process) |
| CO2 | Explain software development practices, version control, and fundamental cybersecurity concepts for secure computing | Sections I, II, III, IV (SDLC, Agile, DevOps, Git) and Sections V–X (cyber security, firewalls, accounts, safe practices, digital footprint, cyber ethics) |
| CO4 | Describe AI, ML, Generative AI, Agentic AI and emerging computing technologies with ethical considerations | Section II (DevOps/cloud), Section X (AI ethics and deepfakes) |
| Component | Weightage | Mapped COs | Preparation Sections |
|---|---|---|---|
| Test | 25% | CO1, CO2 | I, II, III, IV, V, VI, VII, XI |
| Design Your Dream CV | 25% | CO1, CO2, CO4, CO5, CO6 | Section IV (GitHub profile as portfolio evidence), Section IX (digital footprint) |
| EDU-RevolUTION Task | 25% | CO3 | Section II (certification pathways in software engineering and security) |
| Assignment | 25% | CO4, CO5 | Sections V, VI, VII, X (security analysis, ethical reasoning) |
Before the assessment, confirm you can do each of the following without referring to notes:
git switch -c to branch cleanup.