Software Engineering (CS391) Lecture Notes PDF
Document Details
Uploaded by BenevolentPeachTree
Assiut University
Dr. Ahmed Hosny
Tags
Summary
These lecture notes provide an overview of a Software Engineering course (CS391) at Assiut University. The notes cover various aspects of the course, including lecture guidelines, course roadmap, grading details, lab guidelines, and office hours. The document also includes information about the course instructor and teaching assistants.
Full Transcript
Software Engineering (CS391) Assistant Professor: Dr. Ahmed Hosny CS Department Faculty of Computer and Information Assiut University Dr. Ahmed Hosny - CS391 2 Dr. Ahmed Hosny - CS391 3 Meet Dr. Ahmed Hosny Assistant Professor at CS Department, Faculty of Computers and Information....
Software Engineering (CS391) Assistant Professor: Dr. Ahmed Hosny CS Department Faculty of Computer and Information Assiut University Dr. Ahmed Hosny - CS391 2 Dr. Ahmed Hosny - CS391 3 Meet Dr. Ahmed Hosny Assistant Professor at CS Department, Faculty of Computers and Information. Master’s in Cloud Computing. Ph.D in Cloud and Fog Computing. 15+ years of experience in the IT industry. Hands-on CTO, Software Engineering Manager, Tech Philosopher Yet, “Software Engineer” is my favorite role Dr. Ahmed Hosny - CS391 4 Contact and Follow Telegram: @ahmedhosnyibrahim Twitter: @DrAhmedHosny_ LinkedIn: https://www.linkedin.com/in/ahmedhosnyibrahim/ Dr. Ahmed Hosny - CS391 5 Meet Your TAs Eng. Hadeer Ahmed Eng. Abdallah Ahmed Eng. Mohamed Taha TA at Science Faculty TA at CS Dept. TA at CS Dept. Dr. Ahmed Hosny - CS391 6 Meet Our Course Guests Eng. Hassan Ibrahim Eng. Mazen Gad Eng. Muhammad Adam Staff Software Engineer at talabat Product Manager at Senior Software Engineer Dirayaah at Contensi Dr. Ahmed Hosny - CS391 7 Lecture 1 Dr. Ahmed Hosny - CS391 8 Lecture Guidelines Punctuality Matters: Please arrive within the first 15 minutes of the lecture. Feel free to exit quietly at any time if needed. Respectful Use of Devices: Kindly keep your cell phones on silent and tucked away during the lecture. Recording Policy: Recording is reserved for my side only. Thank you for respecting this policy. Questions Welcome: Feel free to ask questions anytime, or jot them down to discuss later. Stay Engaged: Your focus and attention are key to making the most of this lecture! Dr. Ahmed Hosny - CS391 9 Course Roadmap Dr. Ahmed Hosny - CS391 10 t ware Sof pment Mi elo ogies dte Dev dol rm h o es, Met #2 Ex ni pa 05 am Com racts, s t ic Con th 06 ws , E al n La nic io ch t ting 03 a Te ent ical Wri o cum chn CV D d Te ing an Writ 01 04 ware t of t men #1 S lop es e gi ying Dev dolo 02 A ppl et ho d M Job an iews t erv Dr. Ahmed Hosny - CS391 In 11 ary Fin mm Su a rse lE Cou xa m and d s uct ps 11 Pro tu ar St Di Pr ussi ath sc ac on P eer W t ic a r C n d S ing 09 al a r e n g ine #1 E de Gui 10 07 ware and t e Sof ctur igns h ite Des 08 ath Arc stem er SW P Sy Mi re Ca and ring dte nee #2 rm i Eng uide Ex G am Dr. Ahmed Hosny - CS391 12 Grading 25% Midterm Exam 25% Weekly Section Assignments and Deliverables / Quizzes (Individulas) 50% Final Exam No registration = No section nor project grades Dr. Ahmed Hosny - CS391 13 Lab Guidelines Attendance Counts: Regular attendance is crucial. + You’ll receive a first warning after 2 absences + and a second warning after 4. + 5 absences may result in being ineligible for exams or grades. Teamwork with Your TA: Please collaborate respectfully and work closely with your TA for a productive lab experience. Timely Submissions: Ensure that any assignments are submitted on time to stay on track. Follow TA Guidelines: Kindly adhere to the rules and instructions provided by your TA. Dr. Ahmed Hosny - CS391 14 Course Disqualification Cheating, Copying, or Stealing No attendence Dr. Ahmed Hosny - CS391 15 Office Hours Online Hours: Available upon Request Offline Hours: + Wednesday: 12:00 – 2:00PM + Thursday: 10:00AM – 12:00 Dr. Ahmed Hosny - CS391 16 Follow Course Updates and Announcments https://t.me/+4snHZAcL1fw5ODk0 Dr. Ahmed Hosny - CS391 17 Ready?? Dr. Ahmed Hosny - CS391 18 Software Engineering Definition ISO/IEC/IEEE Systems and Software Engineering Vocabulary (SEVOCAB) defines software engineering as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software Dr. Ahmed Hosny - CS391 Check http://www.computer.org/sevocab 19 Software Engineering Includes Methodologies to design, develop and test software to meet customers’ needs. Software is engineered. That is, the software products are properly designed, developed and tested in accordance with engineering principles. Quality and safety are properly addressed. Mathematics may be employed to assist with the design and verification of software products. Sound project management and quality management practices are employed. Support and maintenance of the software are properly addressed. Dr. Ahmed Hosny - CS391 20 CV Writing 01 Curriculum Vitae vs. Resume Dr. Ahmed Hosny - CS391 21 Curriculum Vitae vs. Resume Both are used to present yourself and your skills. Both are used as a first step to apply for any job. Some employers may use the terms interchangeably. A CV (abbreviation for the Latin word curriculum vitae, or “course of life”) is a detailed and comprehensive document that describes the course of your academic and professional accomplishments. A resume is a document that summarizes your career history, skills and education. The term originates from the French word résumé, which translates to “abstract” or “summary.” Dr. Ahmed Hosny - CS391 22 Curriculum Vitae vs. Resume Curriculum Vitae Resume No Maximum Length Length 1-2 Pages (Summary) (Detailed) Academic Roles, Experience / Private, Public, Research Positions Career Type Industry Begins with Education Begins with Work and progresses Arrangement Experience and chornologically progresses reverse- chornologically Dr. Ahmed Hosny - CS391 23 Ref: https://www.indeed.com/career-advice/resumes-cover-letters/difference-between-resume-and-cv Curriculum Vitae vs. Resume Curriculum Vitae Resume In other regions of the world, such as the UK, New Zealand and parts of Europe, employers In the U.S., a resume and use the term CV to describe CV are two distinctly both CV and resume-style different types of Region documents and don’t use the documents used for term “resume” at all. In South different purposes. Africa, Australia and India, the terms CV and resume are often used interchangeably. Dr. Ahmed Hosny - CS391 24 Ref: https://www.indeed.com/career-advice/resumes-cover-letters/difference-between-resume-and-cv Through out this Course we will use the term CV Dr. Ahmed Hosny - CS391 25 What is ATS? An applicant tracking system (ATS) is software used by organizations to manage the hiring process. When you apply online, the ATS scans your CV and extracts information like skills, job titles and educational background. When scanning a CV, ATS looks for basic information like contact details, job titles and education history. It also looks for keywords that come directly from the job posting. Dr. Ahmed Hosny - CS391 26 What is ATS? Examples: + https://www.livecareer.com/resume/check + https://nodeflair.com/resume-checker + https://www.resume-now.com/resume/ats-resume-checker + Google by ATS Checker Dr. Ahmed Hosny - CS391 27 General CV Structure Dr. Ahmed Hosny - CS391 28 Header Name Title Contact Information (Email, Phone, Address) LinkedIn (Optional) Github (Optional) No Photo / No Picture / No Avatar Dr. Ahmed Hosny - CS391 29 Summary Brief of yourself Your skills and experience Your career goals Should be in one paragraph no more than three lines. Be brief and specific Dr. Ahmed Hosny - CS391 30 Education Your Degrees (Current and Ongoing) Experience Detailing relevant professional experience. Should include Title/Role, Company/Institute/Work Place Should include start date, end date (or Present). Bullet Points of your contributions and responsibilities including the techonogolies and tools used + Quantifying your contributions are very important + Action-Oriented Bullet Points: Using action verbs (e.g., "designed," "implemented," "optimized"). In reverse-choronologically order Dr. Ahmed Hosny - CS391 31 Projects Highlighting personal and professional projects with emphasis on impact and technologies used Key Skills List all key relevant technical skills. Skills are grouped as: + Programming Languages + Databases + Frameworks + Tools Skills can be grouped into domains: Frontend, Backend, DevOps, Databases, Testing Being realistic about proficiency (e.g., avoiding "expert" without proof). Dr. Ahmed Hosny - CS391 32 Certifications and Courses Listing relevant certifications (e.g., AWS, Azure, Google Cloud). Additional Sections Awards, Open-source contribution, publications, volunteering Dr. Ahmed Hosny - CS391 33 Where to Put Soft Skills? Soft skills such as: teamwork, communication, problem- solving, and leadership in software development. Soft skills should appear: + Contribution description (Experience Section) + Projects and Volunteering Dr. Ahmed Hosny - CS391 34 No Lies…. Avoid mentioning wrong address. + If your location is Assiut, write this as your address. If you have an already existing address in another state, you can write it. + If you are willing to relocate but you do not have an address yet, write: Assiut (Ready to relocate) Assiut (Willing to relocate) Assiut (Open to relocation) Avoid including experience that you do not have. Avoid including dummy projects Dr. Ahmed Hosny - CS391 that you did not work on 35 Finished Your CV? What's Next... Dr. Ahmed Hosny - CS391 36 1. CV Review (Common Mistakes) Typos, grammatical errors, and inconsistencies. + Capital and small letters + Dots, commas + Verbs (present, past) + Wrong technical terms Too many colors and graphical icons Formatting inconsistency CV length. Should not exceed 1 page until you are 5 years of experience Using too much technical jargon Missing links Dr. Ahmed Hosny - CS391 37 2. GitHub Best Practices For each project, have a readme.md file. Ensure meaningful commits (versions for now) messages Dr. Ahmed Hosny - CS391 38 3. Get Feedback Peer Reviews: Importance of having other professionals review your CV. Professional Services: When to consider using CV-writing services for software engineers. Check your CV against ATS Checker Dr. Ahmed Hosny - CS391 39 4. Tailoring you CV You can have multiple CVs. A CV per Role Tailor each CV to show relevant skills and experience first. Tailor each CV with the right title. Tailor each CV with Job description. Dr. Ahmed Hosny - CS391 40 5. CV Naming Your CV should have a meaningful name. Avoid cv.pdf, mycv.pdf, cv-final.pdf.. Common samples to name your CV are: + Firstname_Lastname_CV.pdf + Firstname_Lastname_Role_CV.pdf + Firstname_Lastname_YEAR_CV.pdf + Firstname_Lastname_Role_YEAR_CV.pdf Dr. Ahmed Hosny - CS391 41 6. Cover Letters A cover letter complements your CV but is not always required. It serves as an introduction and highlights your key qualifications. Use it to express your enthusiasm for the role and company. When to Include a Cover Letter Job Posting Requests It: If the job description asks for one, always include it. When You Need to Stand Out: Use a cover letter to differentiate yourself, especially for highly competitive roles. If Changing Fields/Industries: Explain any career transitions or gaps in your experience. Dr. Ahmed Hosny - CS391 42 6. Cover Letters.. Address the hiring manager by name if possible. Avoid generic greetings like “To Whom It May Concern.” State who you are, the role you are applying for, and why you're excited about it. Summarize 2-3 relevant skills or achievements that match the job description. Explain why you want to work at the specific company and how you align with its mission or values. Politely invite the hiring manager to review your CV or portfolio, and mention your willingness to interview. Dr. Ahmed Hosny - CS391 43 6. Cover Letters.. Keep it short with 3-4 paragraphs Avoid repeating things that are mentioned in your CV. Ensure it has no typos and easy to read Dr. Ahmed Hosny - CS391 44 LinkedIn Profile Your Name is Clear and Correct. Your title should also represent what you are looking for Profile should reflect the same experience in the CV. Sometimes, your social contributions are noted. Take Care Dr. Ahmed Hosny - CS391 45 Section Assignment Deliver your own CV with a cover letter next section Dr. Ahmed Hosny - CS391 46 Things to Read https://novoresume.com/career-blog/software-engineer-resume https://www.indeed.com/career-advice/resumes-cover-letters/ cv-of-software-engineer Read Section 9.1, 9.2, 9.3 from “Overview of Software Engineering” Chapter from “World of Computing” Book. (LINK) Dr. Ahmed Hosny - CS391 47 Lecture 2 Dr. Ahmed Hosny - CS391 48 Job Applying and Interviewing ting Wri CV 01 ying 02 A ppl d Job an iews t erv In Dr. Ahmed Hosny - CS391 49 Research and Market Scanning Phase Dr. Ahmed Hosny - CS391 50 1. Decide what you are looking for Accept the fact that it is a hard decision to take Accept the time it takes till you know what you are really into Read a lot about the current job market. List common skills that are always looked for. Dr. Ahmed Hosny - CS391 51 Common Roles Software Engineer Backend Software Engineer / Backend Developer Frontend Software Engineer / Frontend Developer Mobile Software Engineer / Mobile Developer Full Stack Software Engineer / Full Stack Developer DevOps Engineer / Cloud Infrastructure Engineer Network Administrator Dr. Ahmed Hosny - CS391 52 Common Roles.. Cyber Security Engineer Quality Control Engineer / Tester Database Administration Data Engineer / Big Data Engineer ML Engineer / MLOps Engineer ………and more Dr. Ahmed Hosny - CS391 53 2. Search for Roles you have decided Read the job description carefully Read the job requirement carefully Do this Again and Again and Again Dr. Ahmed Hosny - CS391 54 Searching and Applying Dr. Ahmed Hosny - CS391 55 Position Listing Popular Jobs Platforms: + LinkedIn + Wuzzuf + Indeed + Glassdoor + Twitter / X Jobs + Company career pages Dr. Ahmed Hosny - CS391 56 Position Recommendations Networking and Referrals + Open-source communities + Technical Meetups + Connecting with Peers Dr. Ahmed Hosny - CS391 57 Read Job Description and Requirements Pay extra attention to company business domain. Pay extra attention to company headquarters’ location. Understand what this company or employer is looking for in terms of technicalities and personality. Dr. Ahmed Hosny - CS391 58 Apply to the Job It is Ok to apply if you are exceeding 55% of what they are looking forward. It is nearly impossible to exact matching every detail in the job description (can happen later in your career …) You might need to tailor your CV for specific jobs. Dr. Ahmed Hosny - CS391 59 Applying for a Job is a Full Time Job Dr. Ahmed Hosny - CS391 60 Preparing to the Interview Dr. Ahmed Hosny - CS391 61 Your CV Passed the First Phase You are having an interview for a job. Be Positive and Confident, Congratulation your effort and CV landed you an interview. Make sure to go back to the right job description and read it again. Getting the interview invite over a phone call? Ask for a confirmation over your email. Make sure you know what interview you are going into Dr. Ahmed Hosny - CS391 62 Educate yourself about the Company Read about the company. + Product/s + Market/s + Challenges + Reputation Search for people who are working in this company. Do a research about your interviewer. Dr. Ahmed Hosny - CS391 63 Interview Types HR Interview / Screening Inteview Technical Interview + Coding interview can be part of the technical interview System Design Interview Behavioral Interview Take-Home Task Dr. Ahmed Hosny - CS391 64 Tips, Tricks and Etiquette Plan for this day and be ready before the interview time Dress formal. Talk positively and politely. Review your CV. Practice presenting yourself and your skills. For online interview, do not turn off your camera unless requested For online interview, check your mic, speaker, and your PC beforehand. For online interview, make sure you are in a quiet place and clean background. Dr. Ahmed Hosny - CS391 65