0% found this document useful (0 votes)
2 views14 pages

Software Engineering Notes

Uploaded by

ruthosoro2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views14 pages

Software Engineering Notes

Uploaded by

ruthosoro2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Day 1Welcome to the World of Software

Engineering! 🚀💻

Welcome! 🎉

👋 Hello, future Software Engineers!


Welcome to this exciting journey where we learn to create awesome
things using code! 🚀
Are you ready to discover how your favorite apps and games work? Let's
dive in!

What is Software Engineering? 🤔

Imagine building a robot 🤖 or creating an app like Instagram!

Software Engineering is all about:


🔹 Writing instructions (called code) for computers.
🔹 Building apps, games, and websites that make our lives easier.
🔹 Solving real-world problems through technology.

What Do Software Engineers Do?

Think of software engineers as architects and builders! Here’s what we


do:

1. Design apps and systems that users love. 📱


2. Write code that makes things work smoothly.
3. Test and fix bugs (nobody likes bugs 🐛 in their apps, right?).
4. Collaborate with a team to create amazing stuff. 🤝
The Magic Tools of a Software Engineer 🧰

Here are some cool tools you'll learn to use:


Programming Languages like Python ,⚡Java ☕ , and JavaScript ⚡

🔹 Code Editors like VS Code 🔤, where you’ll write your magic spells (code)!
🔹 Version Control (Git 🦸) to keep track of all your changes.

Fun Fact: Every line of code you write is like giving your computer a
command to follow!

How We Make Things Work!

Imagine a chef cooking a meal! Each ingredient is a piece of code, and


when you put it all together:
🔹 It runs like a recipe.
🔹 You give your computer clear instructions (the code).
🔹 It serves up an app, game, or website as the final dish! 🍲

Why Software Engineering is So Fun! 🎮

⚡ You can create anything: From video games 🎮 to mobile apps 📱 to


robots 🤖!
🧠 It’s like solving puzzles: Every coding problem is exciting.
🌍 Make a difference: Your apps could help people worldwide! 🌟

Meet Some Cool Programming Languages! 🌟

💡 Programming languages are how we talk to computers.


Here are some fun ones you’ll get to meet:

● Python 🐍: Simple and super beginner-friendly.


● HTML, CSS & JavaScript ⚡: For making websites interactive.
● Dart & Flutter, Java ☕: Powerful for building mobile apps!

Imagine them as tools in your superhero toolkit 🦸!

How Do We Learn Coding? 🤓

Don’t worry if you’re new! You’ll learn coding step by step, like playing a
video game! 🎮
🔹 Level 1: Learn the basics (like how to write simple instructions).
🔹 Level 2: Build small projects (like calculators or simple games).
🔹 Level 3: Work on real-world projects (like websites or apps).

A Day in the Life of a Software Engineer 💻

Morning: Write some code, drink coffee ☕.


🤝 Mid-day: Team meeting to discuss projects.
🐛 Afternoon: Fix bugs and test your app.
🎉 Evening: Celebrate when everything works perfectly!

Fun Fact Time! 🎉

Did you know?

● YouTube was built by 3 people in just a few months!


● Python was named after a comedy show, not The Snake! 😂

Ready to Start Your Journey? 🚀


✨ Now that you know what Software Engineering is, are you excited to
start learning?
Don’t worry—we’ll go step-by-step, and you’ll be coding like a pro in no
time!

Your First Challenge! 🏆

🎮 Mini-Challenge: Write your first line of code!


Here’s an example in Python 🐍:

>>>python

print("Hello, World! 🌍")

>>>

Try it! It’s like saying hello to the computer! 😊

Let's make it more fun and create a mini-calculator 📱

# 🎉 Welcome to the Fun Calculator! 🎉

# We're going to add, subtract, multiply, and divide two numbers like a
boss! 😎
# Step 1: Ask the user to input the first number

# We're using 'float()' to make sure our numbers can have decimals too.
Fancy, right? ✨

num1 = float(input("Enter the first number: "))

# Step 2: Ask the user to input the second number

# Same trick here—using 'float()' for decimal magic!

num2 = float(input("Enter the second number: "))

# Step 3: Time to do some math! 🧠 Let's compute the sum, difference,


product, and quotient.

# Add the two numbers (Yay! Addition is the first step to fun!) ➕

sum_result = num1 + num2

# Subtract the second number from the first (Negative vibes, but
necessary! 😜) ➖

difference_result = num1 - num2


# Multiply the two numbers (More bang for your buck! )✖️

product_result = num1 * num2

# Divide the first number by the second (Be careful with zero here, no
math disasters! 😅) ➗

# We'll assume the user is being responsible and not dividing by zero for
now!

quotient_result = num1 / num2

# Step 4: Show the user what we got! 🥳 Time for the big reveal! 🎉

print(f"Results of your two numbers:")

print(f"Sum: {sum_result}") # ➕

print(f"Difference: {difference_result}") # ➖

print(f"Product: {product_result}") # ✖️

print(f"Quotient: {quotient_result}") # ➗
#😎
And that's it! You've just made a mini-calculator! 😎 💻

You Got This! 🎉

Remember: Everyone starts as a beginner, but with practice, you'll create


amazing things.
The world of software engineering is fun, creative, and full of possibilities.
Let’s start this adventure together!

Q&A Time! 🤔

Ask me anything! What are you most excited to learn? 😄

Thank You and Keep Coding! 🎉

🚀 Thank you for joining this fun introduction to software engineering!


💻 See you in the next lesson where we’ll start coding together! 🌟
📒click the link below to dive deep into software engineering 👇

Introduction to Software Engineering

Next Lesson: CLI with GIT

DAY 2: CLI & Version Control Adventure! 🚀


👋 Hey there, Future Coders!
Today, we're diving into the Command Line Interface (CLI) and Version Control systems like
Git & GitHub! You’ll learn to control your files like a pro ninja 🥷 and collaborate like a tech
wizard .

What is the CLI?


💡 The Command Line Interface (CLI) is like chatting directly with your computer in its own
language!
While you can point and click with a mouse, using CLI lets you type commands to get things
done super fast! 🎯

Windows Terminal Commands 🪟


Creating a Word Document:
echo "This is a Word document" > my_document.docx

Renaming a File:
ren my_document.docx new_document.docx

Copying a File:
copy new_document.docx backup_document.docx

Cutting (Moving) a File:


move new_document.docx C:\Documents\Moved_Document.docx
Linux Terminal Commands 🐧
Creating a Word Document:
touch my_document.docx

Renaming a File:
mv my_document.docx new_document.docx

Copying a File:
cp new_document.docx backup_document.docx

Cutting (Moving) a File:


mv new_document.docx ~/Documents/Moved_Document.docx

Mac Terminal Commands 🍏


Creating a Word Document:
touch my_document.docx

Renaming a File:
mv my_document.docx new_document.docx

Copying a File:
cp new_document.docx backup_document.docx

Cutting (Moving) a File:


mv new_document.docx ~/Documents/Moved_Document.docx

What is Git? 🤔
Git is a version control system that helps you track changes to your files (especially code!)
over time.
Think of Git as a time machine ⏳ for your project—if you make a mistake, you can go back
and fix it!

What is GitHub? 🌐
GitHub is a cloud-based platform where developers can store and manage their Git
repositories.
It’s like social media for code—you can collaborate, review, and share your projects with
the world! 🌍

How Git and GitHub are Related? 🔗


- Git runs locally on your machine, managing your project versions.
- GitHub stores these versions online so you can share your project, collaborate, or back it
up safely.

Git Commands – Let’s Get Our Hands Dirty!


1. Git Configuration:
git config --global [Link] "Your Name"
git config --global [Link] "you@[Link]"
2. Initializing Git in a Project:
git init

3. Encrypting Git (SSH Key Setup):


ssh-keygen -t rsa -b 4096 -C "you@[Link]"

4. Adding Files to Git:


git add .

5. Committing Changes:
git commit -m "Add awesome new feature"

6. Cloning a Repository:
git clone [Link]

7. Creating a Branch:
git branch new_feature

8. Switching Between Branches:


git checkout new_feature

9. Merging Branches:
git merge new_feature

10. Forking a Repository:


- Go to the GitHub repository you want to fork.
- Click the Fork button (on GitHub).

11. Pushing to GitHub:


git push origin main

That’s a Wrap! 🎉
You’ve just learned to navigate the CLI like a pro on Windows, Linux, and Mac, and have
been introduced to Git and GitHub! Now, go ahead and practice these commands in your
own projects! 🚀

Q&A Time! 💬
Any questions? Feel free to ask! 😄

Advanced Git & GitHub Mastery

1. Advanced Branching Strategies 🚀


● Feature Branch Workflow: Each feature has its own branch for isolated
development.
○ Example: git checkout -b feature/amazing-feature
● Git Flow Workflow: Multiple branches (main, develop, feature, release, hotfix).

○ Tip: Helps manage release stages!


○ Example: git flow init
● Trunk-Based Development: Commit frequently on the main branch with short-
lived branches.

○ Example: git checkout main then git merge feature-branch

2. Rebase vs. Merge 🎭


● Merge: Creates a merge commit to combine branches.

○ Example: git checkout main && git merge feature-branch


○ Fun Fact: Keeps branch history but can be cluttered!
● Rebase: Rewrites commit history into a linear form.

○ Example: git checkout feature-branch && git rebase main


○ Note: Great for local branches, avoid on shared branches.

3. Interactive Rebase 🎨
● Reordering & Squashing Commits:

○ git rebase -i HEAD~3


○ Pick, squash, or edit commits to tidy up history.
● Squash for Clean History:

○ Example: Squashing three “oops” commits into one.


○ Code: pick, squash, and edit in the rebase editor.

4. Cherry-Picking 🍒
● Apply a Specific Commit to Another Branch:
○ Use git cherry-pick <commit-hash> on main to bring in specific
changes without the entire branch.
○ Pro Tip: Useful for “hotfixes” without merging the whole branch!

5. Git Tags and Releases 🎉


● Tagging Commits: Perfect for marking versions.
○ Annotated Tag: git tag -a v1.0 -m "Version 1.0 release"
○ Lightweight Tag: Just git tag v1.0 and done!

6. Amending Commits ✏️
● Oops? Fix Your Last Commit!:
○ git commit --amend to modify or add to your latest commit.
○ Heads-up: Only amend local commits, not shared ones!

7. GitHub Actions for Workflow Automation


● Example Workflow: Automate test runs on each push.

yaml

name: CI on: [push, pull_request] jobs: build: runs-on:


ubuntu-latest steps: - uses: actions/checkout@v2 - name: Run
tests run: pytest

● Matrix Builds: Test across multiple Python versions.

yaml

jobs: test: strategy: matrix: python: [3.6, 3.7, 3.8]


steps: - uses: actions/setup-python@v2 with: python-version:
${{ [Link] }}
8. Advanced Merging Techniques 🔀
● Interactive Rebase & Squash: Combine PRs into a single clean commit.
● Cherry-Picking: Pick specific features without a full merge.
● Squash Merging: Combines commits into one for clean history in long projects.

9. Conflict Resolution in Rebase and Merge ⚔️


● Conflict Markers in Files:

Plain Text

<<<<<<< HEAD // Main branch code ======= // Feature branch


code >>>>>>> feature-branch

● Resolving with git mergetool: Open conflicts in a visual tool!

10. Working with Large Repos and BFG Repo Cleaner 🧹


● Remove Large Files with BFG Repo-Cleaner to tidy up history.
○ Example: java -jar [Link] --strip-blobs-bigger-than 50M
<repo>

11. GitHub Insights & Project Management 📊


● GitHub Projects: Use boards to organize and prioritize tasks.
● Insights: Monitor team progress with analytics on commits and activity.

Remember: Practice Makes Perfect! 💪


Additional Learning Materials

Advanced Git & GitHub PDF

Advanced Git & GitHub PPTX

SSH Key Fix

Advanced Git and GitHub

Git Extra

Next Lesson: Environment Setups

You might also like