Module 2 - Application Development.
Module 2 - Application Development.
Building a software application goes far beyond the simple idea of writing code. While the
code forms the backbone, it's the entire lifecycle and the methodology behind how
applications are developed that truly define their functionality, usability, and success. From
conceptualizing the idea to maintaining and updating the application, the process involves a
In this module, we will dive into the world of software application development by exploring
Paradigms and Languages, and learning about the importance of Integrated Development
Environments (IDEs) and Tools that make development efficient and effective.
Application development refers to the process of creating software applications that run on
various devices or systems. This includes not only coding but also designing, testing,
deploying, and maintaining software. The process ensures that the application meets the
user’s needs and performs efficiently across its intended platforms.
Web Applications – Runs on browsers and accessed via the internet. (e.g., Gmail,
Facebook)
1. Planning & Requirement Analysis – Defining project scope and gathering user
needs.
6. Maintenance & Updates – Fixing bugs and adding improvements over time.
Programming paradigms define the approach or style used to solve problems through code.
Different paradigms offer unique ways of organizing and solving problems.
Scripting Languages – Used for automation and web development (e.g., JavaScript,
PHP, Python).
JavaScript: Primarily used for web development (both front-end and back-end).
Python: Known for simplicity and versatility in fields like data analysis, web
development, and automation.
Java: A widely-used language for building platform-independent applications.
IDEs and development tools are crucial in making the coding process faster, more efficient,
and less error-prone. IDEs are software applications that provide comprehensive facilities
to programmers for software development. They integrate many tools into one interface to
streamline development.
Code Editor: Helps write and modify code with syntax highlighting.
Version Control: Integrates with tools like Git to manage code changes.
IDEs and development tools streamline coding, debugging, and deployment. Popular
choices include:
Development Tools:
Version Control (Git, GitHub, GitLab) – Tracks code changes and collaboration.
Containerization (Docker): Tool for creating and managing containers that
encapsulate applications.
Package Managers (npm, pip, Maven) – Manages software dependencies.
Testing Frameworks (JUnit, Selenium, Jest) – Ensures code quality.
Database Management Tools (MySQL Workbench, MongoDB Compass) –
Handles data efficiently.
Objective: Each group will choose one of the 8 learning activities provided in the module
and create a tutorial-style video demonstrating the steps to complete the chosen task. The
video should be clear, concise, and instructional in nature. It should guide viewers through
each step in a way that makes it easy to understand and follow.
Tasks:
As a group, choose one of the 8 learning activities provided in the module. Ensure
everyone in the group agrees on the activity that you want to tackle.
Discuss who will handle which part of the tutorial, e.g., who will demonstrate the
setup, explain the theory, or show the results.
Plan your video by outlining each step of the process. Be clear on how you will explain
each part and what visuals you will show.
Organize your environment for clear and focused visuals. Ensure that the screen is
visible, and the audio is clear.
Use screen recording software (e.g., OBS Studio, Loom, or Camtasia) to capture your
actions while you demonstrate the activity. You can also record yourself talking
through the process using a microphone.
Speak clearly and keep the pace steady. Be sure to explain what you're doing, why it's
necessary, and any challenges the viewers may face.
Keep the video direct and to the point. Aim for a length of 5–10 minutes—don’t
add unnecessary information.
Edit your video to remove any unnecessary parts or mistakes. Ensure the video flows
smoothly.
Add any text or diagrams that may help clarify the steps.
Make sure that the audio is clear, and there is no background noise.
Before submitting, review the video to make sure it covers all the necessary points
clearly and accurately.
Double-check that the instructions are easy to follow and that you’ve demonstrated
each step properly.
Submit the video by following your instructor’s submission guidelines (e.g., upload it
to a platform like Google Drive or YouTube, and share the link).
To help ensure the success of your project and avoid common pitfalls, follow these
recommendations:
o Technical Resources: Make sure everyone in your group knows how to use
the necessary tools. If you're unfamiliar with screen recording or video editing
software, review tutorials or guides. Free tools like OBS Studio, Loom, or
Camtasia are recommended.
o Instructor Support: If you run into technical issues, reach out to your
instructor for assistance with software or tools.
o Split the responsibilities within your group clearly. For example, one person
can be in charge of recording, another for explaining the steps, and someone
else for editing the video. This will help avoid confusion and ensure an even
distribution of work.
o Submit a draft version of your video to your instructor for feedback before
finalizing it. This gives you a chance to make any necessary revisions and
improve the clarity of your presentation.
o Give yourselves time for a practice run before recording the final version.
This allows you to make sure the process flows smoothly and gives everyone
the chance to get comfortable with their roles in the video.
o While keeping the video concise is important, ensure you provide enough
depth to properly explain the concepts. Don’t skip important steps just to keep
the video short. A good rule is to focus on clarity, not brevity alone.
o Ensure all group members have access to the materials needed for the activity.
If there are any issues with access to software or tools, try using free
alternatives or reach out to your instructor for support.
o Ensure your video and tutorial content are accessible for all viewers,
including providing captions or subtitles for those who may need them.
o Before you start recording, test your screen recording and audio equipment. If
the sound is unclear or the visuals aren’t high-quality, you may need to adjust
your setup.
o Ensure your screen is visible and easy to read. Avoid having too much clutter
on your desktop or screen that could distract from the demonstration.
Excellent (30-35 points): The video meets all the criteria with little to no
improvement needed. Clear, engaging, and accurate.
Good (24-29 points): The video is generally clear and informative but may have
minor flaws that detract slightly from the learning experience.
Fair (17-23 points): The video has some significant issues that hinder clarity,
engagement, or accuracy.
Needs Improvement (0-16 points): The video has serious problems with clarity,
technical quality, or accuracy.
Note: Complete rubric can be found in the submission link in the Canvas Platform.
Objective: Learn how to use Git for version control within VS Code.
1. Install Git:
o Open the terminal in VS Code (you can use Ctrl+``) and run git init` to initialize
a Git repository in the project folder.
o In the Source Control panel in VS Code, stage the changes by clicking the "+"
icon next to the file.
o Commit the changes by adding a commit message and clicking the checkmark.
o Follow the instructions to connect your local repository to GitHub (via remote
URL).
o Use VS Code to push your local commits to the remote GitHub repository. You
can do this from the terminal or directly through the Source Control panel.
1. Requirement Analysis:
o Define the purpose of a simple web application, such as a To-Do List. Outline
its core features (e.g., adding tasks, marking them as complete).
2. Design:
o Draw a basic wireframe for the user interface (UI). Use tools like Figma,
Sketch, or even pen and paper.
o Decide on the structure of the application (e.g., HTML for layout, CSS for
styling, JavaScript for functionality).
3. Development:
o Set up a basic folder structure for your web app with an index.html file,
styles.css, and script.js.
o Write the HTML structure and link the CSS and JavaScript files. Implement the
functionality in JavaScript to allow adding and removing tasks.
4. Testing:
o Test the functionality by interacting with the web app. Check if tasks can be
added and marked as complete correctly.
5. Deployment:
o Write a class for a Car in your chosen programming language (e.g., Python,
JavaScript). Include attributes such as color and model, and methods like
drive() and stop().
o Create a simple pure function in your language that takes a list of numbers
and returns the sum of all even numbers in the list.
o Write a brief summary comparing OOP and FP approaches. How would you
approach a problem (like building a car simulation) in both paradigms? Which
paradigm do you prefer, and why?
Objective: Learn how to create and run a Docker container for a simple application.
1. Install Docker:
o Create a basic Python app, like a "Hello World" script, and save it as app.py.
3. Write a Dockerfile:
o Run the container using docker run hello-world. The output should
display "Hello World" from the Python app running inside the container.
o Choose an IDE (IntelliJ IDEA for Java or PyCharm for Python) and install it.
o Start a new project in your chosen IDE and write a simple "Hello World"
program in the language the IDE supports.
3. Explore Features:
4. Compare to VS Code:
o Compare your experience with using VS Code. Which IDE do you prefer, and
why? Consider aspects like speed, ease of use, integration with version control,
and debugging capabilities.
Objective: Learn how to manage code branches using Git to enable collaborative
development.
o In your project, create a new branch using git branch <branch-name>, then
switch to it with git checkout <branch-name>.
o Make changes to your code (e.g., add a new feature or fix a bug). After saving
the changes, use Git to stage and commit them.
3. Merge Branches:
o After testing your changes, merge your branch back into the main branch using
git merge <branch-name>.
o Create a situation where two people are working on the same file, and you both
make conflicting changes. Resolve the conflict using a merge tool or manually.
Objective: Learn how to run multiple services in Docker using Docker Compose.
o Set up a basic web application with two components: a front-end (HTML, CSS,
JavaScript) and a back-end (Python, Node.js, or another language).
o For a Node.js app: Ensure you have a Procfile and package.json with
dependencies listed.
o For a Python app: Ensure you have a requirements.txt file with all
dependencies.
3. Deploy to Heroku:
o In your terminal, use the following commands to log in, create a Heroku app,
and push the code:
heroku login
git init
heroku create <your-app-name>
git push heroku master
o Start Minikube:
minikube start
Objective: Learn how to organize and manage tasks in a software development project using
Trello, a popular tool for visual project management.
1. Create a Trello Board: Set up a new Trello board for your project. Name it after your
project or team, and choose an appropriate background to help organize the work
visually.
2. Set Up Lists for Workflow Stages: Create several lists on your board that represent
the different stages of your project workflow, such as:
o Backlog (for tasks that need to be done but haven't been started yet)
3. Add Cards for Individual Tasks: Add cards to the Backlog list for individual tasks
or features that need to be completed. Each card should have:
4. Assign Members and Set Due Dates: Assign specific team members to each card to
clarify who is responsible for each task. You can also set due dates and attach files
related to the task for easy access.
5. Move Cards through Workflow: As work progresses, move the cards through
different lists (e.g., from Backlog to In Progress) to visually track the status of tasks.
This helps everyone see what has been done, what is currently being worked on, and
what is left to complete.
o GitHub Integration: Link Trello cards to GitHub issues or pull requests for
seamless tracking of code changes.