Applied Programming Modules
Applied Programming Modules
I want a proposal that makes use of 6 modules to build a web and mobile app
with features for reading and studying Old Norse literature (the Eddas and
Sagas) I want to integrate the Cleasby & Vigfusson Old Norse dictionary, and
the "A Concise Dictionary of Old Icelandic" dictionary by Geir Zoëga. As well
as the "Ordbok Öfver svenska medeltids-språket", the dictionary of Medieval
Swedish by K.F Söderwall, the "Ordbog til det ældre danske Sprog", the
dictionary of Old Danish by Otto Kalkar, and the "Ordbog over det gamle norske
Sprog" dictionary by Johan Fritzner.
These public domain dictionaries are available for use like the following on
GitHub: [Link]
I want the app to have study features like those of a bible study software like
Sefaria: a Living Library of Jewish Texts Online or Logos Bible Software. For
example I want to have highlights and notes, do word studies, look at
manuscript variations, and the ability to compare translations of the Eddas and
Sagas as well as the original Old Norse and have the dictionaries implemented
well for study.
I want to choose six modules and make a plan for the software I will build that
builds upon the previous modules.
Each module will involve 12-24 hours of work.
Each module will require you to use your current programming knowledge to learn
new languages, tools, techniques, and libraries. During the first week of the
course, you completed a Course Plan where you selected the modules you wanted
to complete this semester. You are allowed to select different modules but you
must make sure that the module you select is something that you have not
previously learned (unless you plan to learn more advanced topics). Even though
you can only select each module once during the semester, you can build upon
software written for a previous module. For example, over three modules you
could first learn Kotlin, then create an Android app with that Kotlin code, and
then finally you can connect your Android app with a cloud database like
Firestore.
Each module will be completed in a two week Sprint. You will need to submit a
plan during the first week. The plan document describes the expectation for
time spent working on the module. By the end of the second week, you will need
to submit your final product for the module. Your module will be graded based
on your compliance to common and unique module requirements described below.
If you are modifying software written in a previous module to support your new
module, then you should reuse the same GitHub repository. However, the
documentation and video need to be updated to reflect the changes made to your
software by the new module. Included below is a description of each module.
Language Modules
C++
Module
The C++ language is an object-oriented language that is used for embedded and
application development. It is based on the C language. C++ requires the use of
a compiler and linker, which are operating system– and processor-specific. C++
includes the Standard Template Library (STL), which provides support for data
structures and threading.
Write one or more programs in C++ that demonstrates some of the following:
Variables
Expressions
Conditionals
Loops
Functions
Classes
Data structure from STL (such as a vector, list, or map)
Guidance
There are multiple options for getting C++, including the following:
Project Ideas
Java
Module
The Java language is an object-oriented language that is used for embedded and
application development. Java requires the use of a compiler and a Java Virtual
Machine (JVM) which can both be obtained by installing the Java Development Kit
(JDK). Compiled code (often with a .class or .jar extension) will run on any
computer that has a JVM. Java contains a substantial library which includes
many classes for data structures (Java Collection Framework), file management,
and threading. In Java, every file contains a single class. A static main
function is created in one of the classes and is used to provide a starting
point for the program.
Write one or more programs in Java that demonstrates some of the following:
Variables
Expressions
Conditionals
Loops
Functions
Classes
Data structure from Java Collection Framework (such as ArrayList, TreeSet,
or HashMap)
Guidance
Project Ideas
Expense Tracker: Create a program that helps users track their daily
expenses and provides insights into spending habits.
Text-based RPG Game: Design a text-based role-playing game with character
creation, battles, and a storyline.
Weather Forecast App: Create an application that retrieves weather data from
an online API and displays current weather conditions and forecasts.
Basic Social Media Platform: Develop a simplified social media platform
where users can create profiles, post updates, and follow other users.
Stock Portfolio Tracker: Build an application that tracks stock prices and
allows users to manage their stock portfolios.
Task Scheduler with Calendar: Create a task scheduler with an integrated
calendar that allows users to manage events and tasks.
Movie Recommendation System: Create a movie recommendation system that
suggests movies to users based on their preferences and viewing history.
Guess the Number Game: Develop a number guessing game where the computer
generates a random number, and the player has to guess it within a limited
number of attempts.
Student Gradebook: Create a program to maintain a student gradebook,
including adding, updating, and calculating grades.
Basic Paint Program: Create a simple paint program with drawing tools like
brushes, shapes, and colors.
Kotlin
Module
Write one or more programs in Kotlin that demonstrates some of the following:
You may use this module also to learn Swift or Dart. You may need to modify
some of the requirements if you learn Swift or Dart instead.
Guidance
To set up your development environment for Kotlin, complete the following:
The Java Development Kit (JDK) is needed since Kotlin is built on top of it.
Install the latest version of either JDK (commercial) or OpenJDK (open
source) from Oracle. In industry, there are license considerations between
these two options. For your work in this course, either choice is
acceptable.
Install IntelliJ Idea (Free Community Version). This is an IDE like Visual
Studio Code. Kotlin support will be installed automically. When you create a
project in IntelliJ, select "Kotlin" and "JVM | IDEA". When you create
files, select "Kotlin File/Class" to create .kt files.
Project Ideas
R
Module
R Documentation
What is R
Guidance
Visual Studio Code has support for R. Please review this document.
Project Ideas
Erlang
Module
The Erlang language is an example of functional languages like Haskell, F#, and
Clojure. Functional languages (unlike the imperative languages you have learned
previously) have the following characterstics:
The goal with functional programming is to write code with higher quality due
to the strictness of the language. Like Python, the Erlang language determines
variable types automatically. Other languages like Haskell are strictly typed.
You can use this module to learn any Functional Programming language. If you
pick a different language, you may need to modify the requirements.
Guidance
Install Erlang You want to make sure that erl shell program is in the path.
Visual Studio Code has support for Erlang. The Erlang extension can be
installed in Visual Studio Code. The erl shell can be executed from the
terminal.
Project Ideas
JavaScript
Module
Store useful values inside variables. In the above example for instance, we
ask for a new name to be entered then store that name in a variable called
name.
Operations on pieces of text (known as "strings" in programming). In the
above example we take the string "Player 1: " and join it to the name
variable to create the complete text label, e.g. "Player 1: Chris".
Running code in response to certain events occurring on a web page. We used
a click event in our example above to detect when the label is clicked and
then run the code that updates the text label.
And much more!
What is even more exciting however is the functionality built on top of the
client-side JavaScript language. So-called Application Programming Interfaces
(APIs) provide you with extra superpowers to use in your JavaScript code.
APIs are ready-made sets of code building blocks that allow a developer to
implement programs that would otherwise be hard or impossible to implement.
They do the same thing for programming that ready-made furniture kits do for
home building — it is much easier to take ready-cut panels and screw them
together to make a bookshelf than it is to work out the design yourself, go and
find the correct wood, cut all the panels to the right size and shape, find the
correct-sized screws, and then put them together to make a bookshelf.
Display output to the screen. This can be done with [Link] writing to
the terminal, or in a browser using html.
Native Array ES6 functions
Recursion
Use a JavaScript library written by someone else in your code (could be an
npm package if using Node, or a cdn link for any JS library)
You can use this module to learn any Functional Programming language. If you
pick a different language, you may need to modify the requirements.
Guidance
Project Ideas
To-Do List: Create a web-based to-do list application that allows users to
add, remove, and mark tasks as completed.
Weather Forecast: Create a web app that fetches and displays weather
forecasts based on user-entered locations.
Recipe Finder: Create a recipe finder application that allows users to
search for recipes based on ingredients they have.
Interactive Storyteller: Build an interactive storytelling app where users
can choose their own adventure by making choices in the story.
Currency Converter: Develop a currency converter application that converts
between different currencies based on exchange rates.
Memory Game: Build a memory game where players need to match pairs of cards
with JavaScript animations and effects.
Polling App: Create a real-time polling application where users can create
and participate in polls.
URL Shortener: Build a URL shortener service that shortens long URLs and
provides statistics on link usage.
Interactive Art Gallery: Design an interactive art gallery that allows users
to explore and interact with artwork online.
Social Media Dashboard: Develop a dashboard that aggregates social media
feeds and displays updates in real-time.
C#
Module
Variables
Expressions
Conditionals
Loops
Functions
Classes
Structures and Unions
Guidance
Project Ideas
Text Adventure Game: Develop a text-based adventure game where players make
choices to progress through the story.
Employee Management System: Build a console-based employee management system
with features like adding, editing, and displaying employee details.
Library Catalog System: Design a library catalog system that allows users to
search for books, check availability, and borrow or return books.
Basic Paint Program: Create a simple paint application that allows users to
draw and manipulate shapes on a canvas.
Inventory Management System: Create a program that simulates an inventory
management system for tracking products and quantities.
Stock Portfolio Tracker: Create a program for tracking stock portfolios,
displaying real-time stock prices, and calculating portfolio value.
Recipe Management System: Design a recipe management system where users can
add, search, and organize recipes.
File Encryption and Decryption Tool: Create a program for encrypting and
decrypting files using cryptographic algorithms.
Tic-Tac-Toe Game: Build a UI where two players can add Xs or Os to the
board.
Task Scheduler and Reminder: Build a task scheduler with reminders and
notifications for important events and deadlines.
TypeScript
Module
TypeScript understands JavaScript and uses type inference to give you great
tooling without additional code.
Guidance
Project Ideas
File Uploader and Downloader: Write a program that allows users to upload
and download files from a server.
Basic Drawing App: Create a simple drawing application in the browser using
TypeScript and HTML5 Canvas.
Authentication System: Build a user authentication system, including
registration, login, and user profile management.
CRUD API: Create a simple CRUD (Create, Read, Update, Delete) API using
TypeScript and [Link].
Recursive Directory Scanner: Write a TypeScript script that recursively
scans a directory, lists its contents, and displays the file structure.
List Sorting Algorithms: Implement sorting algorithms (e.g., bubble sort,
quicksort) and compare their performance on large datasets.
Async/Await Example: Write asynchronous functions that fetch data from an
API and display the results in the terminal.
Recursive Fibonacci: Write a program to calculate and display Fibonacci
numbers using recursion.
Basic Note-taking App: Build a note-taking application that allows users to
create, edit, and organize notes.
Basic Quiz or Survey Generator: Create a tool for designing and taking
quizzes and surveys with customizable questions and options.
Rust
Module
The Rust language is used for embedded and application development. While
similair to C or C++, it has improvements including memory management and
variable ownership. Support is provided for object-oriented methodologies as
well as data structures and threading. Rust comes with a build environment
called Cargo which is used both for library management and building.
Write one or more programs in Rust that demonstrates some of the following:
Modify your program to use a data structure (e.g. Vec, LinkedList, Hashmap).
Modify your program to use slicing.
Modify your program to demonstrate object oriented techniques using
both struct and impl .
Guidance
Install Rust.
Visual Studio Code has support for Rust. The Rust extension can be installed
in Visual Studio Code. The cargo build tool can be run from the terminal.
Follow chapter 1 of the Rust Programming Language Book for step by step
instructions for building a Hello World application using the cargo tool.
Project Ideas
Basic File I/O: Write a program that reads from and writes to text files,
demonstrating file input/output operations.
Factorial Calculator: Write a program to calculate the factorial of a number
using recursion.
Basic Web Scraper: Build a program that scrapes data from a website and
displays specific information.
File Encryption and Decryption: Create a program for encrypting and
decrypting files using cryptographic algorithms.
Password Manager: Build a secure password manager that allows users to store
and retrieve passwords.
Basic API Client: Write a program that consumes data from a public API and
presents it to the user.
Markdown to HTML Converter: Create a program that converts Markdown files to
HTML, showcasing text processing.
Basic API Server: Develop a simple RESTful API server to handle CRUD
operations.
Fibonacci Sequence Generator: Develop a program to generate and display
Fibonacci numbers up to a specified limit.
Hangman Game: Build a command-line version of the Hangman game where players
guess a hidden word.
Other Modules
Cloud Databases
Module
Cloud data storage is a convenient solution which removes the requirement for
an individual or company to maintain their own database server. Tools
like Google Firebase, Amazon DynamoDB, and MongoDB will provide you a database
which you can access using an API (function calls from a library). The use of
these cloud databases is frequently free for simple projects, but will cost
when scaled up. Cloud databases provide a mix of various types of databases,
including relational and key/value. A key/value database (which is recommended
in the instructions) will store data into maps that can be queried either in
whole, in parts, or in filtered parts. A key/value database is also commonly
called a NoSQL database. The APIs for each database will vary and provide these
capabilities.
Develop software that interacts with a cloud database. The software must have
the following characteristics:
You must create a database using a cloud service for your program to use
including at least one table to store data into.
Your software must demonstrate the ability to insert, modify, delete, and
retrieve (or query) data.
Guidance
You should consider using Python and Firestore (part of Google Firebase) for
this module. Here are some useful notes when using this suggested environment:
Use firebase-admin to access a Firestore database from Python. You can use
pip to install: pip install firebase-admin
You will need to create a free Firebase account, create a Firebase project,
and create a Firestore database in the project.
During the process of getting your account and database set up, you will
need to download a Service Account File, which is a JSON file. This file
along with the project name will be needed when you initialize your
connection to the Firestore database within your code. The Service Account
File is secret and should not be shared in the GitHub repository.
Here is a list of websites that you might find useful when working in the
suggested environment:
Project Ideas
Data Analysis
Module
As the processing power of computers has increased, the world has become able
to capture the large amounts of data that it produces. Surveys, transactions,
and observations are captured every hour of every day. A data scientist has the
skills to capture, organize, and analyze large amounts of data and look for
patterns, trends, and statistical relevance between datasets. Since the
possibilities of data analysis are endless, programming languages are used to
write customized software to analyze data. Some languages, like R, were
designed specifically for data analysis. Libraries
like Pandas, NumPy, Matplotlib, Scrapy, BeautifulSoup, and TensorFlow provide
the capabilities to do the analysis with the familar Python programming
language.
Write software to analyze a set of data to answer two questions about that data
as detailed below:
You can also use this module to explore Machine Learning. You will need to
propose a project different requirements in your project plan.
Guidance
You should consider using Python and Pandas for this module. You should also
consider using Kaggle to obtain a free dataset. Here are some useful notes when
using this suggested environment:
You need to install Pandas on your computer. You can use pip to install: pip
install pandas .
You can download a dataset from [Link]. You should look for a dataset
that has good documentation, which will help you understand the data.
Here is a list of websites that you might find useful when working in the
suggested environment:
Project Ideas
Stock Market Analysis: Analyze historical stock price data to identify
trends, calculate returns, and visualize stock performance.
E-Commerce Sales Analysis: Analyze sales data from an online store to
identify top-selling products, customer behavior, and seasonal trends.
Weather Data Analysis: Analyze historical weather data to identify climate
trends, temperature variations, and extreme weather events.
Healthcare Data Analysis: Analyze healthcare data to identify patient
demographics, disease patterns, and healthcare resource utilization.
Housing Market Analysis: Analyze housing market data to identify price
trends, housing demand, and regional variations.
Sports Data Analysis: Analyze sports statistics to evaluate player
performance, team rankings, and historical trends.
Restaurant Reviews Analysis: Analyze restaurant reviews to identify popular
cuisines, customer preferences, and review sentiment.
Education Data Analysis: Analyze educational data to assess student
performance, graduation rates, and educational disparities.
Job Market Analysis: Analyze job market data to identify in-demand skills,
salary trends, and job openings.
Environmental Data Analysis: Analyze environmental data (e.g., air quality,
pollution) to identify environmental trends and potential health impacts.
Game Framework
Module
Games bring entertainment and education to many people using their computers
and devices. However, we frequently don't realize the software code that is
running behind those games. Games have several components to them, including
the following:
Guidance
You should consider using Python and Arcade for this module. Here are some
useful notes when using this suggested environment:
You need to install Arcade on your computer. You can use pip to install: pip
install arcade .
You should consider using Sprite classes in Arcade for any moving objects in
the game.
If you have any picture or sound files you want to include with your game,
make sure they are in the same folder as your Python code.
Here is a list of websites that you might find useful when working in the
suggested environment:
Project Ideas
Classic Pong Game: Create a simple Pong game, where two players can control
paddles to bounce a ball back and forth.
Space Invaders Copy: Build a Space Invaders-style game, featuring alien
enemies and a player-controlled spaceship.
Flappy Bird: Create a Flappy Bird-inspired game, where players navigate a
bird through obstacles.
Memory Matching Game: Develop a memory matching game, featuring a grid of
cards that players flip to find matching pairs.
Tic-Tac-Toe: Implement a classic Tic-Tac-Toe game, allowing two players to
take turns.
Snake Game: Develop a Snake game, where players control a growing snake to
eat food and avoid collisions.
Chess Game: Design a two-player Chess game, featuring standard chess rules
and gameplay.
Asteroids Clone: Build an Asteroids-inspired game, where players pilot a
spaceship to destroy asteroids.
Card Game: Create a card battle game, featuring collectible cards and
strategic gameplay.
Sudoku: Develop a Sudoku puzzle solver game, allowing players to input and
solve Sudoku puzzles.
GIS Mapping
Module
Create a website or mobile app that generates a map using a mapping library
like ArcGIS or Google Maps. The map should include markers showing useful
information. The map must have the following characeterstics:
Guidance
You are required to use ArcGIS. You should consider using Javascript and HTML
to create your map. ArcGIS offers many detailed tutorials for different
programming languages. Here is a list of websites that you might find useful:
Project Ideas
Local Landmarks Map: Create a map that displays notable landmarks in your
local area, such as parks, museums, and historical sites.
City Event Map: Develop an app that displays upcoming events in your city on
an interactive map, allowing users to click on markers for event details.
Public Transportation Tracker: Build a real-time public transportation
tracker that shows the locations of buses, trams, or subways on a map.
Weather Radar Map: Develop a weather app that displays live weather radar
data on an interactive map, allowing users to track storms and
precipitation.
Hiking Trail Finder: Create an app that helps users discover nearby hiking
trails, complete with trail information and difficulty levels.
Environmental Pollution Map: Create a map that visualizes environmental
pollution data, such as air quality and water contamination, for a specific
region.
Restaurant Locater: Build an app that uses GIS to help users find nearby
restaurants, displaying their locations and user reviews on a map.
Property Prices Heatmap: Build a real estate app that displays property
prices as a heatmap, helping users identify areas with affordable housing.
National Park Guide: Build an app that serves as a guide to national parks,
providing maps, trail information, and visitor centers.
Air Quality Index Map: Create a real-time air quality map that displays air
quality index values for different locations in your city.
Mobile App
Module
Mobile is everywhere, and the ability to make mobile applications has never
been more sought after or desirable than it is now. Android applications are
typically written in Java or Kotlin using Android Studio. iOS applications are
written in Swift using XCode (using a Mac).
Other platforms have been created to make it easier to port to multiple
platforms. React Native uses JavaScript to create apps that will run on both
platforms. Flutter uses the Dart language to achieve the same result.
Guidance
You should consider using Android Studio and either Java or Kotlin (depending
on which language you know best). The app should run on an Android phone. If
you don't have an Android phone, you can use the emulator provided within
Android Studio. Here is a list of websites that you might find useful when
creating an Android app:
The following links may be useful for some of the stretch challenges:
Permissions Overview
How to Enable Location Access in Android
Starting Activities with an Intent
Saving data in Shared Preferences
Project Ideas
Flashcard App: Develop a flashcard app for studying various subjects with
user-generated flashcard sets.
Language Learning App: Develop an app for learning new languages, including
vocabulary quizzes and pronunciation guides.
News Aggregator: Create an app that aggregates news articles from different
sources and displays them to users.
Travel Journal: Build a travel journal app that lets users record their
travel experiences with photos and notes.
Drawing and Painting App: Build an app that allows users to draw, paint, and
save their artwork.
Online Marketplace: Create a platform for buying and selling items, similar
to a classified ads website.
Language Translator: Develop an app that translates text or speech from one
language to another.
Event Booking App: Develop an app for booking tickets to concerts, movies,
or sporting events.
Health and Fitness App: Create a health and fitness app that offers workout
routines, diet tracking, and health statistics.
Travel Planner: Build a travel planning app that helps users organize their
trips, including itinerary creation and travel tips.
Networking
Module
Communication between two computers (or even two pieces of software on the same
computer) can be done using the networking stack. A network is more than just
physical wire (or wireless) that connects a computer to a network; it also
includes the data that is transmitted through that connection. The data is
organized into layers according to the Open Systems Interconnection (OSI)
model. These layers include the physical, datalink, network, and transport
layers. These layers are used to package, route, and transmit data between
computers. Common transport layers include TCP (Transmission Control Protocol)
and UDP (User Datagram Protocol). On top of all of these layers is the data
that we actually want to communicate to another computer. This data is
frequently organized by a message structure that both the sending computer and
receiving computer understand. Defined formats like JSON, HTML, or XML are all
commonly used.
Any information can be sent on a network connection. The software could be
collaborative (e.g. chat), problem-solving (e.g. provide answer to question),
content based (e.g. file or web server), or embedded (e.g. request data from a
sensor or turn on a light).
When developing networking software, there are two types of models we can look
at:
Write a program that allows one computer to communicate with another computer
using either of the following:
Client-Server Model—You will need to write one program for the client and
one program for the server.
Peer-to-Peer Model—You will need to write one program for the peer to both
send and receive.
The client or peer should send a request to the server or another peer. A
response should be sent back and used (e.g. displayed)
You can use either TCP or UDP.
Provide support for at least three different kinds of requests that the
server or the peer can respond to.
Provide a graphical user interface (GUI) for your program instead of the
command line.
Modify the server or the peer to obtain information from a local file or
database in response to a request from the client or another peer.
Guidance
You should consider using Python and standard networking libraries for this
module. Here are some useful notes when using this suggested environment:
Python already has libraries to read and write from TCP and UDP sockets and
servers. See the links below for information and examples.
You will need to run two programs at the same time to test your software. It
may be easier to run these programs on separate computers that have
different IP addresses. If you don't have this option, you might consider
installing a virtual machine running Linux, or configuring your software to
send and receive on different ports.
Here is a list of websites that you might find useful when working in the
suggested environment:
Project Ideas
Simple Chat Application: Create a basic chat application where clients can
connect to a server, send messages, and receive responses.
File Transfer Server: Develop a server that allows clients to upload and
download files securely over the network.
Remote Control Application: Build a remote control app that enables clients
to control a server's desktop or perform actions remotely.
Quiz Game Server: Build a server for hosting a multiplayer quiz game where
clients can connect and compete.
Weather Information Server: Create a server that provides real-time weather
information to clients based on their location.
File Sharing (Peer-to-Peer): Develop a peer-to-peer file-sharing application
where users can share files directly with each other.
Peer Discovery Service: Create a service that helps peers discover and
connect with each other on a local network.
Local Network Game: Build a multiplayer game that runs on a local network,
allowing peers to join and play together.
Secure Peer Communication: Create a secure peer-to-peer communication
platform with end-to-end encryption.
Peer-to-Peer Video Streaming: Develop a peer-to-peer video streaming
application for sharing video content directly between users.
Data can be stored in many different formats. An efficient method for storing
information is in a database. One common type of database is a relational
database, which organizes the data into tables and relates them together using
keys. Libraries have been written to make it easy for the programmer to read
and write to and from these databases. Most relational databases support
Structured Query Language, or SQL. SQL is a language that allows the programmer
to easily interact with the database. Examples of relational databases include
the following: Oracle, MySQL, Microsoft SQL Server, PostgreSQL, SQLite, and IBM
DB2.
You can read more about relational databases and SQL at sites including the
following:
Write a program that intereacts with a relational database using SQL. The
software must have the following characteristics:
You must create a database for your program to use including at least one
table to store data into.
Your software must demonstrate the ability to insert, modify, delete, and
retrieve (or query) data.
This module requires more than just creating the database and determining
SQL commands. You must write software that builds the SQL commands, submits
them, receives the results from the database, and uses the results in some
way.
Add additional tables to your database and perform a join in your software
between two of the tables.
Use at least two of the aggregate functions to summarize numerical data in
your database.
Demonstrate the use of a column containing a date or time along with a query
that demonstrates filtering within a date or time range.
Guidance
You should consider using Python and ulLite for this module. SQLite is already
support in Python by importing the sqlite3 library.
Here is a list of websites that you might find useful when working in the
suggested environment:
Project Ideas
Web Apps
Module
This module will have you create a web app using a framework that will generate
web pages dynamically on the host server. Django for Python and Node or React
for JavaScript are two common examples of web app frameworks.
When a request is made to your web app, the Django framework will call the
appropriate Python code (a function in your [Link] ) file). The Python code
will then parse the request and prepare a response. To prepare a response, your
code might read a database, download some data from another web server, or
perform some calculations. To produce the response, a template HTML file is
populated with data created by the Python function. The response is then
automatically sent back by the Django framework. Using a framework can reduce
the time it takes to create web content. In the case of Django, you also have
the benefit of using the Python programming language to process requests.
Django - Python
Node - Javascript
React - Javascript
Must have at least two HTML pages populated by content determined by your
Python (Django) or JavaScript (NodeJS) code. However, if you use React, then
you can keep to a single page with multiple interactions.
Your software must be interactive meaning that the content displayed in your
web app must be in some part based on user input.
The web app should run on your local computer using the test server provided
by your framework.
Guidance
Django:
[Link]:
React:
Project Ideas
Self-Chosen Project
Module
You select the programming language or the type of software to create. This can
be useful if there is a language, technology, or library that aligns well with
either your major or interests.
Like other modules, you will need to write software to demonstrate your
capability. It is highly recommend that you communicate with your teacher
before submitting your plan to get pre-approval. In your plan you need to
identify the requirements you will fulfill. If you are learning a new
programming language, you should consider the requirements in the other
language modules.
This module cannot be done for the first or second module in the course. You
must have at least a B in the course to select this module.
Note that the module plan must be submitted ahead of time before submitting the
final module (e.g you can't submit the plan and the module on the same day as
the instructor won't have time to approve of the self-chosen project.)
You need to propose a stretch challenge in your plan if you plan on pursuing
one.
Guidance