INSTRUCTIONS TO CANDIDATES
1. Answer all questions
2. Be concise, precise, and context-specific — use examples related to real
software-engineering settings.
3. Where applicable, write the exact Bash or Git command(s) you would
execute.
Mark's allocation: Section A: 40 marks Section B: 20 marks
Total: 60 marks
SECTION A: CORE CONCEPTS & PRACTICAL SKILLS (40 Marks)
1. Bash Fundamentals and File Navigation
a) Define Bash and explain its importance to professional software
engineers.
b) Differentiate between absolute and relative file paths, giving one
example of each.
c) Write four (4) Bash commands for navigating directories or viewing
files, and explain their purpose.
(5 marks)
2. Windows Subsystem for Linux (WSL)
a) Explain what WSL is and how it enables Linux commands to run on
Windows.
b) Write the command to access the C: drive and navigate to the Projects
folder inside it using WSL.
c) Give two advantages of using WSL for software development.
(4 marks)
Page 1 of 3
Adara Institute: Complementary Assessment (CA) Examination
3. Users, Groups and Permissions in Linux
a) Define the terms user, group, and others in Linux permissions.
b) Interpret the permission code rwxr-xr--, and write the command that
sets it on a file named [Link].
c) Write commands to: (i) add a new user developer; (ii) add the user to
group dev-team.
(5 marks)
4. File Permissions and Security
a) Explain what the command chmod 755 [Link] does and the
risks of giving 777 permissions.
b) Why is proper permission management critical in multi-user
environments?
(4 marks)
5. Applied Bash File Operations
Assume you are working in /home/student/app. Write commands to:
a) Create a nested directory src/tests/utils.
b) Create three empty files [Link], [Link], and [Link].
c) Copy all .py files to a folder backup.
d) Delete an empty directory old_logs.
e) Briefly explain why automating such tasks with scripts is important in
DevOps.
(6 marks)
6. Git Basics and Workflow
a) Explain what git init, git add, git commit, and git push do.
b) Write a sequence of commands to create a repository, add
[Link], commit, and push to GitHub under @studentdev.
(5 marks)
7. Branching, Merging and Rebasing in Git
a) Define a branch and explain its purpose.
b) Differentiate between merge and rebase, stating when each is
preferred.
c) Write commands to: (i) create and switch to feature/login; (ii)
rebase it onto main; (iii) merge it back after testing.
Page 2 of 3
Adara Institute: Complementary Assessment (CA) Examination
(6 marks)
8. GitHub Collaboration
a) Differentiate between a local and a remote repository.
b) Write Git commands to: (i) clone a repository from GitHub; (ii) create a
branch feature/login; (iii) merge it back to main.
(5 marks)
SECTION B: SOFTWARE DEVELOPMENT LIFE CYCLE(20 Marks)
1. Define the SDLC. State and explain all the stages involved in the SDLC
(7 marks)
2. Explain the following Requirements of the study, giving examples in each:
a) Stakeholder Requirements
b) Functional Requirements
c) Non-functional Requirements
d)Business Requirements
e)Technical Requirements
(10 marks)
3. Explain the following non-functional Requirements: Availability, Security,
and User-friendly.
Page 3 of 3