Skip to content
Open
Show file tree
Hide file tree
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
Empty file added .github/.keep
Empty file.
38 changes: 38 additions & 0 deletions .github/workflows/classroom.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Autograding Tests
'on':
- push
- repository_dispatch
permissions:
checks: write
actions: read
contents: read
jobs:
run-autograding-tests:
runs-on: ubuntu-latest
if: github.actor != 'github-classroom[bot]'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Quiz 1
id: quiz-1
uses: classroom-resources/autograding-io-grader@v1
with:
test-name: Quiz 1
setup-command: ''
command: Which of the following best describes software engineering?
input: |-
a) The study of hardware components
b) The process of designing, developing, and maintaining software
c) The analysis of networking protocols
d) The management of data storage systems
expected-output: b) The process of designing, developing, and maintaining
software
comparison-method: exact
timeout: 10
max-score: 10
- name: Autograding Reporter
uses: classroom-resources/autograding-grading-reporter@v1
env:
QUIZ-1_RESULTS: "${{steps.quiz-1.outputs.result}}"
with:
runners: quiz-1
49 changes: 46 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,79 @@
[![Open in Visual Studio Code](https://classroom.github.com/assets/open-in-vscode-2e0aaae1b6195c2367325f4f02e2d04e9abb55f0b24a779b69b11b9e10269abc.svg)](https://classroom.github.com/online_ide?assignment_repo_id=18352275&assignment_repo_type=AssignmentRepo)
# SE_Day1
Software Engineering Day1 Assignment

#Part 1: Introduction to Software Engineering

Explain what software engineering is and discuss its importance in the technology industry.

#Ans:
Software engineering is basically the entire process of designing, developing, testing, deploying, and maintaining high-quality software systems.
I has made possible various aspects of modern life, including communication, commerce, entertainment, and healthcare, all through interactive softwares.

Identify and describe at least three key milestones in the evolution of software engineering.

Identify and describe at least three key milestones in the evolution of software engineering.
#Ans
Key Milestones include:
1. Establishment of software engineering as a discipline - 1960s
2. Invention of structured programming - 1970s
3. The rise of agile methodologies - 2000s.

List and briefly explain the phases of the Software Development Life Cycle.
#Ans:
Software Development Life Cycle (SDLC):
- Requirements: Gathering user needs and system requirements.
- Design: Creating high-level and detailed designs of the software structure and user interface.
- Implementation: building the software according to the design specifications.
- Testing: Conducting various tests to ensure the software meets quality standards and functional requirements.
- Deployment: Releasing the software to users or customers.
- Maintenance: Providing ongoing support, updates, and enhancements to the software after deployment.


Compare and contrast the Waterfall and Agile methodologies. Provide examples of scenarios where each would be appropriate.
#Ans:
- Waterfall: This sollows a sequential approach kind of like water does in a waterfall. ie; building a complex healthcare system.
- Agile: Iterative and incremental approach focused on flexibility, collaboration, and responding to change. ie; a scenario where some modules are flexible to change.


Describe the roles and responsibilities of a Software Developer, a Quality Assurance Engineer, and a Project Manager in a software engineering team.

#Ans:
- Software Developer: Responsible for writing code and implementing software solutions.
- Quality Assurance Engineer: Ensures software quality by designing and executing test plans.
- Project Manager: Oversees the planning, execution, and delivery of software projects.

Discuss the importance of Integrated Development Environments (IDEs) and Version Control Systems (VCS) in the software development process. Give examples of each.
#Ans:
- Integrated Development Environments (IDEs): Software suites that provide comprehensive tools for writing, debugging, and testing code e.g: Visual Studio Code.
- Version Control Systems (VCS): Software tools for tracking changes to source code and coordinating work among team members e.g: Git.


What are some common challenges faced by software engineers? Provide strategies to overcome these challenges.
#Ans
- Version Control Systems (VCS): Software tools for tracking changes to source code and coordinating work among team members e.g: Git.
- Keeping Up with Technology: Stay updated through continuous learning, industry blogs, and hands-on practice.
- Debugging Complex Issues: Use debugging tools, systematic problem-solving, and seek help when needed.
- Meeting Deadlines: Prioritize tasks, use time management techniques, and communicate effectively.


Explain the different types of testing (unit, integration, system, and acceptance) and their importance in software quality assurance.

#Ans:
- Unit Testing: Testing individual components or modules of software.
- Integration Testing: Testing interactions between different components or subsystems.
- System Testing: Testing the entire software system as a whole.
- Acceptance Testing: Testing the software against user requirements to ensure it meets user needs.

#Part 2: Introduction to AI and Prompt Engineering


Define prompt engineering and discuss its importance in interacting with AI models.
#Ans:
Prompt engineering is all about crafting questions or statements to get the best possible responses from AI models.
It helps so that we get clear and concise responses.


Provide an example of a vague prompt and then improve it by making it clear, specific, and concise. Explain why the improved prompt is more effective.
#Ans:
- Vague Prompt: "Tell me about AI."
- Improved Prompt: "Explain how AI is used in healthcare for diagnosis and treatment recommendations."

- The improved prompt specifies the context (healthcare) and focus (diagnosis and treatment), making it easier to generate a relevant and useful response.