Week 01: Digital Solutions - Application Design and Programming
Class Task and Information
- The great reasons why even kids who want to become doctors or lawyers (or farmers) would benefit from learning app building:
- Apps teach real-world skills like design, marketing, video production, project management, presentation skills, and special media use.
- The app building process requires creativity, innovation, critical thinking, and problem-solving — all fundamental to success in lots of jobs.
- Good app developers are collaborators, willing to work with others to ensure the app is accomplished on time and according to specs.
- Good app developers are decision makers, not afraid to be risk-takers in building something no one has done before.
- Lesson 01:
- Australia day - Public holiday
- Lesson 02:
- Important coding concepts:
- abstraction and symbolism – variables are common in math, but also in education. Tools, toolbars, icons, images all represent something bigger
- creativity – think outside the box
- if-then thinking – actions have consequences
- debugging – write-edit-rewrite; try, fail, try again. When you make a mistake, don’t give up or call an expert. Fix it.
- logic – go through a problem from A to Z
- sequencing – know what happens when
- Introduction Video and provocation:
- Task 02:
- Define and decompose real-world problems precisely, taking into account functional and non-functional requirements and including interviewing stakeholders to identify needs (ACTDIP038)
- Design algorithms represented diagrammatically and in structured English and validate algorithms and programs through tracing and test cases (ACTDIP040)
- Learning intentions:
- Pattern Recognition
- Tutorial Lecture 01: Intro Algorithms - ACTDIP038 ACTDIP04
- Students are to view the above educational snippet.
- Write down the key points.
- Introduction to Algorithms:
- An algorithm is a sequence of steps that, when followed, leads to the solution of a problem. It has a defined set of inputs and delivers an output. Each step in the algorithm leads to another step or completes the algorithm.
- Algorithms must show Logical Flow or Sequence
- Must be broken down into logical steps, instructions or chunks
- Must be able to be repeated and have the same outcome
- Not written in syntax (code language) but English Like
- Are designed to be translated into other programming languages
- Algorithms are used as Design Tools
- Algorithms tools enable Software Engineers to deign solutions for software programmers to implement.
- There are lots of different design tools, however we will be focused on the following:
- Flow Charts
- Pseudo Code
- Structure Charts
- Mind Maps (QCAA required)
- Algorithmic Design Tools help us as developers create a blueprint to be translated into syntax
- These design tools are "English Like" and do not contain any syntax for a particular language
- Breaking down a difficult problem into more manageable pieces
- Pattern recognition
- Identifying parts of the problem that are similar or have been tackled before.
- Hiding the complicated but that we don't need to consider.
- Abstraction is about the level of detail that you consider. It is important to remember that algorithms are passed onto programmers to implement and they will require enough information to achieve the required outcomes.
- Starting Point - Flow Charts
- The above are the symbols that are used to create and algorithm for a computational problem.
- Sample Class Question: Go to the Beach or Not?
- Inputs - What information do you need to know?
- Processing - How do you make a decision?
- Output - What information do you present back to the user?
- User communication - How do programmers talk to the end users?
- What conventions do you think programmers should use?
- What words would you use to say that you passed or failed a test?
Task: Using the flow chart tools, create a diagram to work out what bus you are required to catch after school to get home or the beach or university?
- Lesson 03:
- What Is User Experience?
- What’s usability, and why does it matter?
- Six components of great app experiences
- Task 01:
- Random Group Generator (Class will split at random into 5 groups)
- Elect the following people using a dice roll: (Digital dice Roll 3D)
- First person to roll the following numbers will do:
- Scribe for the group
- Proof reader
- Reporter for the group
- Wild Card - the motivator / outside the box
- Roll again
- Record the person and their function in the group
- Discussion and work clock
- Investigation Questions: In your working groups
- Looking at the key indicators for successful UX, Discuss and write a definition / explanation for each of the 6 identified section. note: this will be done without technology.
- How considering all six components can make apps better
- Developing Algorithms:
- Task 01: Develop a flow chart for the following problems
- Add a series of numbers together and show the result.
- Take in 2 numbers and ask the user of they want to +, -, x , divide the numbers and show the result.
- Tell the user if the number they enter is a Factor of 2 or 5 (Dividable without remainder).
- Design a 3 question quiz and give the user a score at the end.
Readings / Homework
- Complete all set tasks and ensure notes are up to date for assessment.