COURSE 1:  INTRODUCTION TO SOFTWARE ENGINEERING

Module 2: Introduction to Software Development

IBM AI DEVELOPER PROFESSIONAL CERTIFICATE

Complete Coursera Study Guide

Last updated:

INTRODUCTION – Introduction to Software Development

This module introduces you to the fundamentals of application development. In Lesson 1, you’ll learn about the distinctions between front-end and back-end development in web and cloud applications, along with the technologies used in each. You’ll also discover how teamwork and pair programming can enhance the development process and increase efficiency. In Lesson 2, you’ll explore various tools that software engineers use to write, test, and release code, as well as gain an understanding of software stacks that support application execution. Finally, in the hands-on lab, you’ll learn how to use an integrated development environment (IDE) to develop and run your code.

Learning Objectives

  • Describe how websites and cloud applications work.
  • Identify the technologies you can use to create reactive and responsive websites.
  • Identify the back-end technologies you can use to create functionality in your websites.
  • Describe how teams and squads work in a software engineering context.
  • Identify the benefits of different pair programming styles.
  • Classify common web technologies into front-end and back-end technologies.
  • Identify commonly used types of development tools, including version control software, libraries, and frameworks.
  • Describe how some key developer tools work, including CI/CD tools, build tools, packages, and package managers.
  • Describe software stacks and identify the advantages of three popular stacks.
  • Identify parts of an IDE and use them to create a simple software application.

PRACTICE QUIZ: INTRODUCTION TO DEVELOPMENT

1. Which of the following technologies can you use to add styles and flair to a web page?

  • JavaScript 
  • Java
  • CSS (CORRECT)
  • HTML

Correct: Correct! CSS is used to add style and flair to a web page.

2. Which of the following technologies can you use to create websites that work across different web browsers?

  • CSS (CORRECT)
  • C++ 
  • Java 
  • JavaScript

Correct: Correct. You can use CSS to create websites that work in different web browsers.

3. Which of the following technologies enables you to use variables and nested rules to simplify your stylesheets?

  • HTML 
  • SASS (CORRECT)
  • CSS 
  • LESS

Correct: Correct! You can use SASS to simplify complex stylesheets.

4. Which type of developer is most likely to use SQL in web development?

  • Front-end developer
  • Back-end developer (CORRECT)
  • UI developer 
  • Middleware developer

Correct: Correct! Back-end developers use SQL to interact with databases.

5. Which of the following team meetings is usually held after a project is complete?

  • Mentor 
  • Code review 
  • Retrospective (CORRECT)
  • Kick-off

Correct: Correct! Retrospective meetings are usually held at the end of a project.

PRACTICE QUIZ: TOOLS IN SOFTWARE DEVELOPMENT

1. What can a JavaScript library like jQuery do for you?

  • Save development time (CORRECT)
  • Debug HTML errors
  • Help in version control 
  • Save data to a database

Correct: Correct! Libraries such as jQuery can save development time by reusing existing code.

2. True or false? Inversion of control helps you to create standardized apps.

  • False 
  • True (CORRECT)

Correct: Correct! Inversion of control helps you to create standardized apps.

3. Which of the following is performed by a build tool?

  • Providing code for reuse 
  • Transforming source code into binaries (CORRECT)
  • Storing code 
  • Installing packages

Correct: Correct! A build tool is used to transform source code into binaries

4. Fill in the blank. Package managers make the end-user’s life easy by _______________.

  • backing up data 
  • downloading and installing packages from repositories (CORRECT)
  • fixing errors in code automatically 
  • securing applications

Correct: Correct! Package managers download and install packages from repositories.

5. True or false? Software stacks always consist of the following three layers: presentation, business logic, and data.

  • True 
  • False (CORRECT)

Correct: Correct! Software stacks can consist of many layers.

QUIZ: INTRODUCTION TO SOFTWARE DEVELOPMENT

1. Which technology is a front-end developer most likely to work with?

  • SQL 
  • Databases 
  • Java 
  • HTML (CORRECT)

Correct: Correct! Front-end developers work with HTML.

2. Which of the following technologies can you use to ensure uniformity in look, feel, style, colors, font, and layouts on a website?

  • JavaScript 
  • XML 
  • CSS (CORRECT)
  • HTML

Correct: Correct! You can use CSS to ensure control of your website.

3. Which of the following are used in back-end development?

  • LESS 
  • SQL (CORRECT)
  • HTML 
  • CSS

Correct: SQL is used to query databases in back-end development.

4. Which of the following technologies provide a way for cloud apps to access resources from the back-end?

  • APIs (CORRECT)
  • Styles 
  • Routes
  • IDEs

Correct: APIs Provide a way for cloud apps to access from back-end.

5. Which of the following pair programming styles is a good way for a junior software engineer to learn from a more experienced colleague?

  • Strong style (CORRECT)
  • Ping-pong style 
  • Driver style 
  • Navigator style

Correct: Correct! Strong style pair programming is a great way for a junior software engineer to learn from a more experienced colleague.

6. Which of the following is a development framework?

  • JavaScript 
  • Git
  • Ruby 
  • Vue.js (CORRECT)

Correct: Correct! Vue.js is a JavaScript framework for UI development.

7. Which of the following statements about app development frameworks is correct?

  • Frameworks provide a way to build and deploy applications. (CORRECT)
  • Frameworks provide standard programs and subroutines that you can use in your own code. 
  • Frameworks can be changed during any phase of development. 
  • Frameworks keep track of what changes were made when and by whom and resolve any conflicts between changes.

Correct: Correct! Frameworks provide a way to build and deploy applications.

8. Which process automatically builds and tests your code?

  • Continuous integration (CORRECT)
  • Continuous delivery 
  • Continuous investigation 
  • Continuous development

Correct: Correct! Continuous integration automatically builds and tests your code.

9. Which of the following is a build tool?

  • npm 
  • Homebrew 
  • Babel (CORRECT)
  • Pip

Correct: Correct! Babel is a build tool.

10. Which of the following is an example of a software stack?

  • Maven
  • Chocolatey 
  • Ruby on Rails (CORRECT)
  • Conda

Correct: Correct! Ruby on Rails is a software stack.

CONCLUSION – Introduction to Software Development

In conclusion, this module provides a comprehensive introduction to the essential concepts of application development. By understanding the differences between front-end and back-end development, along with the technologies involved, you’ll gain a solid foundation. The emphasis on teamwork and pair programming will highlight the importance of collaboration in enhancing the development process.

Additionally, you’ll become familiar with the various tools and software stacks that are crucial for writing, testing, and releasing code. The hands-on lab will offer practical experience in using an integrated development environment (IDE) to develop and run code, ensuring you are well-prepared to apply these skills in real-world scenarios. This module aims to equip you with the knowledge and practical skills necessary for a successful career in application development.