generated from chankjen/SE_Day1
-
Notifications
You must be signed in to change notification settings - Fork 9.2k
Comparing changes to merge #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Sumbati10
wants to merge
5
commits into
Powerlearnproject:main
Choose a base branch
from
Powerlearnproject:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
90909b5
GitHub Classroom Autograding Workflow
github-classroom[bot] e1c094c
GitHub Classroom Feedback
github-classroom[bot] 0a373c9
Setting up GitHub Classroom Feedback
github-classroom[bot] e869606
add online IDE url
github-classroom[bot] a13cb5f
Update README.md file
Sumbati10 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,36 +1,166 @@ | ||
| # SE_Day1 | ||
| Software Engineering Day1 Assignment | ||
| [](https://classroom.github.com/online_ide?assignment_repo_id=18327534&assignment_repo_type=AssignmentRepo) | ||
| Software Engineering Day 1 Assignment | ||
|
|
||
| #Part 1: Introduction to Software Engineering | ||
| **Part 1: Introduction to Software Engineering** | ||
|
|
||
| Explain what software engineering is and discuss its importance in the technology industry. | ||
| **What is Software Engineering and Its Importance** | ||
|
|
||
| Software engineering is the systematic application of engineering approaches to software development. It involves designing, developing, testing, and maintaining software systems to ensure they are reliable, scalable, and efficient. Software engineering is crucial in the technology industry because it ensures the creation of high-quality software that meets user needs, enhances productivity, and drives technological advancements. | ||
|
|
||
| Identify and describe at least three key milestones in the evolution of software engineering. | ||
| **Importance in the Technology Industry** | ||
|
|
||
| - Reliability and Efficiency – Software engineering ensures that applications function as expected under different conditions. | ||
|
|
||
| List and briefly explain the phases of the Software Development Life Cycle. | ||
| - Scalability – Proper engineering practices allow software to handle increasing amounts of data and users. | ||
|
|
||
| - Security – Secure coding techniques prevent vulnerabilities and cyberattacks. | ||
|
|
||
| Compare and contrast the Waterfall and Agile methodologies. Provide examples of scenarios where each would be appropriate. | ||
| - Cost-Effectiveness – Systematic development reduces maintenance costs and resource wastage. | ||
|
|
||
| - Innovation – Facilitates advancements in AI, cloud computing, IoT, and other emerging technologies. | ||
|
|
||
| Describe the roles and responsibilities of a Software Developer, a Quality Assurance Engineer, and a Project Manager in a software engineering team. | ||
| **Key Milestones in the Evolution of Software Engineering** | ||
|
|
||
| **1950s-1960s**: Birth of Software Engineering | ||
|
|
||
| Discuss the importance of Integrated Development Environments (IDEs) and Version Control Systems (VCS) in the software development process. Give examples of each. | ||
| The term "software engineering" was first introduced in the 1968 NATO Software Engineering Conference to address the "software crisis." | ||
|
|
||
| Early programming was done in machine and assembly languages. | ||
|
|
||
| What are some common challenges faced by software engineers? Provide strategies to overcome these challenges. | ||
| The introduction of high-level programming languages like FORTRAN and COBOL improved software development. | ||
|
|
||
| **1970s-1980s**: Structured Programming and Waterfall Model | ||
|
|
||
| Explain the different types of testing (unit, integration, system, and acceptance) and their importance in software quality assurance. | ||
| The Waterfall model introduced a linear, structured approach to development. | ||
|
|
||
| Structured programming languages such as C and Pascal were widely adopted. | ||
|
|
||
| #Part 2: Introduction to AI and Prompt Engineering | ||
| The concept of software testing and quality assurance became more recognized. | ||
|
|
||
| **1990s-Present**: Agile, DevOps, and Cloud Computing | ||
|
|
||
| Define prompt engineering and discuss its importance in interacting with AI models. | ||
| Agile methodologies introduced iterative development and collaboration. | ||
|
|
||
| DevOps practices improved software deployment and operations. | ||
|
|
||
| Cloud computing and microservices architecture revolutionized software scalability. | ||
|
|
||
| **Phases of the Software Development Life Cycle (SDLC)** | ||
|
|
||
| - Requirement Analysis – Gathering and documenting functional and non-functional requirements. | ||
|
|
||
| - Planning – Defining the scope, timeline, and resources required for the project. | ||
|
|
||
| - Design – Creating system architecture, wireframes, and technical specifications. | ||
|
|
||
| - Implementation (Coding) – Writing and compiling the code based on design specifications. | ||
|
|
||
| - Testing – Conducting unit, integration, system, and acceptance testing to ensure functionality. | ||
|
|
||
| - Deployment – Releasing the software for production use. | ||
|
|
||
| - Maintenance and Support – Providing updates, bug fixes, and enhancements. | ||
|
|
||
| **Waterfall vs. Agile Methodologies** | ||
|
|
||
| Waterfall Methodology | ||
|
|
||
| - Follows a linear, sequential approach. | ||
|
|
||
| - Phases do not overlap; requirements are fixed. | ||
|
|
||
| - Best suited for projects with well-defined requirements (e.g., banking software, medical systems). | ||
|
|
||
| Agile Methodology | ||
|
|
||
| - Iterative and flexible; emphasizes collaboration and feedback. | ||
|
|
||
| - Features are developed incrementally. | ||
|
|
||
| - Best suited for dynamic projects with evolving requirements (e.g., mobile apps, e-commerce platforms). | ||
|
|
||
| **Roles in a Software Engineering Team** | ||
|
|
||
| **Software Developer** | ||
|
|
||
| - Writes, tests, and maintains software code. | ||
|
|
||
| - Collaborates with other team members to develop features. | ||
|
|
||
| **Quality Assurance Engineer** | ||
|
|
||
| - Conducts manual and automated testing. | ||
|
|
||
| - Ensures the software meets quality standards before deployment. | ||
|
|
||
| **Project Manager** | ||
|
|
||
| - Oversees project planning, execution, and delivery. | ||
|
|
||
| - Manages timelines, resources, and stakeholder communication. | ||
|
|
||
| **Importance of IDEs and VCS** | ||
|
|
||
| - Integrated Development Environments (IDEs) | ||
|
|
||
| - Provide tools for coding, debugging, and testing. | ||
|
|
||
| Examples: Visual Studio Code, IntelliJ IDEA, Eclipse. | ||
|
|
||
| Version Control Systems (VCS) | ||
|
|
||
| Track code changes, facilitate collaboration. | ||
|
|
||
| Examples: Git, GitHub, GitLab. | ||
|
|
||
| **Common Challenges Faced by Software Engineers & Solutions** | ||
|
|
||
| - Scope Creep – Use Agile methodologies and clear documentation. | ||
|
|
||
| - Technical Debt – Follow clean coding practices and perform code reviews. | ||
|
|
||
| - Security Vulnerabilities – Implement security testing and best practices. | ||
|
|
||
| - Performance Issues – Optimize code and conduct load testing. | ||
|
|
||
| **Types of Software Testing** | ||
|
|
||
| - Unit Testing – Tests individual functions or components (e.g., testing a login function). | ||
|
|
||
| - Integration Testing – Ensures modules work together (e.g., testing API calls between services). | ||
|
|
||
| - System Testing – Validates the entire system (e.g., testing an e-commerce checkout flow). | ||
|
|
||
| - Acceptance Testing – Confirms software meets user needs before deployment. | ||
|
|
||
|
|
||
|
|
||
| **Part 2: Introduction to AI and Prompt Engineering** | ||
|
|
||
| Definition and Importance of Prompt Engineering | ||
|
|
||
| Prompt engineering involves designing effective queries or prompts to interact efficiently with AI models. It ensures that AI outputs are relevant, precise, and contextually accurate. | ||
|
|
||
| Importance | ||
|
|
||
| - Enhances AI’s ability to generate useful responses. | ||
|
|
||
| - Reduces ambiguity and improves interaction quality. | ||
|
|
||
| - Enables better automation and decision-making. | ||
|
|
||
| Example of a Vague vs. Improved Prompt | ||
|
|
||
| - Vague Prompt: "Tell me about history." | ||
|
|
||
| - Improved Prompt: "Provide a detailed summary of World War II, including key battles, leaders, and outcomes." | ||
|
|
||
| Why the Improved Prompt is More Effective | ||
|
|
||
| - Specificity: Focuses on a particular historical event. | ||
|
|
||
| - Detail: Requests key battles, leaders, and outcomes. | ||
|
|
||
| - Conciseness: Ensures a well-structured and relevant response. | ||
|
|
||
|
|
||
| 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. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was this marked red?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is an unexpected value in the 'repository dispatch'.Im still figuring out how to fix the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok