Skip to content
This repository was archived by the owner on Apr 10, 2026. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
251 changes: 249 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,281 @@ Questions:
Introduction to GitHub:

What is GitHub, and what are its primary functions and features? Explain how it supports collaborative software development.
Repositories on GitHub:

Github is a platform on the web which enables collaboration and version control among developers.

primary functions include:

version control
collaboration
issue tracking

github supports collaborative software development by:

creation of a centralised repository for all team members

enables branching and merging

enables review of code abd provision of feedback




Repositories on GitHub:

What is a GitHub repository? Describe how to create a new repository and the essential elements that should be included in it.

A github repository is a central location for files storage of software projects.
Version Control with Git:

how to create a repository:

Sign in to github

click the new icon and select repository

add a repository name and set visibility to either public or private

initialise the repo with readme.md,gitignore and licence.

click the create repo button to finalise.

Esential elements for the repo are:

readme.md
licence
gitignore

Explain the concept of version control in the context of Git. How does GitHub enhance version control for developers?

version control concepts:

Branching and Merging:

Branching: Developers can create branches to work on features, fixes, or experiments independently. Each branch represents a separate line of development.


Merging: Once changes in a branch are complete, they can be merged back into another branch (e.g., the main branch). Git handles merging by integrating changes from different branches, resolving conflicts where necessary.


Commit History:

Each commit in Git has a unique identifier and includes a snapshot of the project files, a commit message describing the changes, and metadata such as the author and timestamp. This history allows developers to trace the evolution of the codebase and revert to previous states if needed.


Branching and Merging in GitHub:

What are branches in GitHub, and why are they important? Describe the process of creating a branch, making changes, and merging it back into the main branch.

Branches in Git are separate lines of development that diverge from the main project timeline.

importance of branches:

isolation of changes hence prevents unfinished code from impacting stable versions.

controlled integration.

parallel development

Pull Requests and Code Reviews:

process of branching:

option one:

To create a branch, use the git branch command followed by the name of the branch. After making the branch, use git branch again to view available branches.

option two:

If you want to create a branch and checkout the branch simultaneously, use the git checkoutcommand. The switch -b specifies the name of the branch. Note that after command completion, Git has moved HEAD to the new branch.

merging branches:

To merge branches locally, use git checkout to switch to the branch you want to merge into. This branch is typically the main branch. Next, use git merge and specify the name of the other branch to bring into this branch.




What is a pull request in GitHub, and how does it facilitate code reviews and collaboration? Outline the steps to create and review a pull request.
GitHub Actions:

pull request:

is a mechanism for a developer to notify team members that they have completed a feature.

how pull request enable code reviews and collaborations:

Pull requests enable efficient code review, facilitate knowledge sharing, and improve code quality. By requiring team members to review and approve changes, potential issues, bugs, or suboptimal design decisions can be identified and addressed before the changes are integrated into the main codebase.



Explain what GitHub Actions are and how they can be used to automate workflows. Provide an example of a simple CI/CD pipeline using GitHub Actions.
github actions:

This is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline.

examples of github actions:

Workflows:

A workflow is an automated process defined by a YAML file located in the .github/workflows directory of your repository. Each workflow consists of one or more jobs.

Jobs:

Jobs are individual units of work within a workflow. They run on a specific runner (environment) and can be executed concurrently or sequentially. Jobs define what actions to take, such as building code, running tests, or deploying applications.

Actions:

Actions are reusable units of code that perform specific tasks within a job. You can use pre-built actions from the GitHub Marketplace or create your own custom actions.

Runners:

Runners are machines that execute your workflows. GitHub provides hosted runners with various operating systems, or you can use self-hosted runners on your own infrastructure.

Events:

Events are triggers that start workflows. Common events include push, pull_request, issue, and schedule.

example of a ci/cd pipeline using github actions:

name: Simple CI/CD Pipeline

on:
push:
branches:
- main

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '14'

- name: Install dependencies
run: npm install

- name: Run tests
run: npm test

what it does

Triggers: Runs on every push to the main branch.

Jobs:

test: Executes on an Ubuntu runner.
Checkout code: Clones the repository.
Set up Node.js: Installs Node.js version 14.
Install dependencies: Runs npm install to set up project dependencies.
Run tests: Runs npm test to execute your tests.




Introduction to Visual Studio:

What is Visual Studio, and what are its key features? How does it differ from Visual Studio Code?

Visual Studio or IDE takes the help of Microsoft's software development platform, i.e., Windows API, Windows Presentation Foundation, Windows Forms, Microsoft Silverlight, and Windows Store, to produce and manage native code. Whereas Visual Studio Code can be used to write, edit, and debug the code, all in one place.

Integrating GitHub with Visual Studio:

Describe the steps to integrate a GitHub repository with Visual Studio. How does this integration enhance the development workflow?

Step 1: Open Visual Studio

Step 2: Open the account settings

Step 3: Add an account and Select GitHub

Step 4: Sign in with your GitHub credentials

Step 6: Now, we can see the linked GitHub account in Visual Studio in account settings.

how the integration enhance workflow:

Seamless Git Operations: Perform commits, pushes, pulls, and branch management directly in VS Code.

Branch Management: Create, switch, and merge branches easily from within the editor.

Pull Requests and Code Reviews: Create, review, and manage pull requests and issues with GitHub extensions.

Integrated Terminal: Run Git commands and manage dependencies in the built-in terminal.

Enhanced Code Navigation: Use features like Code Lens and file comparison for better code understanding.

Issue Tracking: View and manage GitHub issues directly within VS Code.

Increased Productivity: Streamline development tasks and reduce context switching between tools.


Debugging in Visual Studio:

Explain the debugging tools available in Visual Studio. How can developers use these tools to identify and fix issues in their code?

Debugging Tools in Visual Studio:

Breakpoints: Pause code execution at specific lines to inspect variable values and execution flow.

Watch Window: Monitor the value of variables and expressions in real-time.

Immediate Window: Execute code and evaluate expressions while debugging.

Call Stack: View the sequence of function calls leading to the current point of execution.

Locals and Autos Windows: Display local variables and automatically-detected variables relevant to the current scope.

Exception Settings: Configure and manage how exceptions are handled during debugging.

Step Over/Into/Out: Control execution flow by stepping over, into, or out of code lines or functions.

Usage:

Set Breakpoints: Place breakpoints to halt execution and inspect the state of the application.

Use Watch and Immediate Windows: Evaluate and modify variables and expressions dynamically.

Examine Call Stack: Trace the path of execution to understand how the current state was reached.

Inspect Variables: Check variable values in Locals and Autos Windows to find anomalies.

Handle Exceptions: Monitor and manage exceptions to identify and address error conditions.


Collaborative Development using GitHub and Visual Studio:

Discuss how GitHub and Visual Studio can be used together to support collaborative development. Provide a real-world example of a project that benefits from this integration.

GitHub and Visual Studio Integration:

Source Control: Use GitHub within Visual Studio to manage code versions and branches.

Pull Requests: Create and review pull requests directly in Visual Studio.

Issue Tracking: View and manage GitHub issues within the IDE.

Code Reviews: Collaborate on code changes and feedback in real time.

Real-World Example:

Open Source Projects: Projects like React use GitHub for version control and issue tracking, and Visual Studio Code for development, enabling teams to collaboratively manage code and contributions.


references

Blischak, John D., Emily R. Davenport, and Greg Wilson. "A quick introduction to version control with Git and GitHub." PLoS computational biology 12.1 (2016): e1004668.

Tsitoara, Mariot. Beginning Git and GitHub. Springer, New York, 2020.

Masci, Paolo, and César A. Muñoz. "An integrated development environment for the prototype verification system." arXiv preprint arXiv:1912.10632 (2019).

various AI sources (gpt 4,gemini tool for lms)

Submission Guidelines:
Your answers should be well-structured, concise, and to the point.
Expand Down