Web applications are everywhere from Amazon to Zoom. And Web applications run on data.
In this NCEA Level 1 Module you'll become a Full Stack Developer! Don't worry, we'll be keeping it really simple and there will be plenty of time to learn these technologies and get things wrong. But you'll need to persevere and stick with. It will be worth it.
You will use Python for server code, SQL to interface with a database and HTML/CSS for the User Interface. You'll also be using github to keep track of your code, as you develop, test and enhance your application.
The Level 3 calendar alligns with the level 2 in case you want to run them concurrently.
Term 1 is spent learning the skills you'll need in the main project without any risk or assessment.
Term 2 is the main project with one github repo and one development log. This is split into a design phase, followed by three sprints of development.
The sprints are seperated by study for the external and a derived grade exam in term three.
The external is held during the NCEA exam period.
It is highly recommended that you have completed Level 1 and/or Level 2 Software Engineering.
A good understanding of HTML/CSS, SQL, Python and Flask is required. Term 1 can be spent learning and refreshing your skills before starting on the project in term 2.
The following three "Refresher" sections serve to help you quickly do this and should be completed before the end of term one.
Unit 4: Flask Assessment
(approximately 16 weeks)
Now you will put all that learning in practice and design and develop your own web application on any topic you choose.
Your Github repository and your development log will be assessed for the bulk of the credits available. This must include design, development, project management, testing and reflection.
NCEA Assessments:
AS91892: Use advanced techniques to develop a database (4)
AS91893: Use advanced techniques to develop a digital media outcome (4)
AS91896: Use advanced programming techniques to develop a computer program (6)
AS91897: Use advanced processes to develop a digital technologies outcome (6)
Total Credits: 20
Course Length: Full Year
Suggested Timetable:
This course is designed to have an identical calendar and task to the Level 2 Software Engineering!
The main step up is that we expect at least one many-to-many relationship within the database. As you may also see from the marking criteria, Relevant Implications need to be addressed (not just explained) and you may apply slightly higher expectations for the qualitative requirements that use terms like "effectively", "efficiently" and "comprehensively".
ALL of Term 1 should be gaining foundational knowledge in the "Learning" section. Particularly if the kids have not done the level one learning.
It's best you set checkpoints of learning for each of the sections to help keep your students on track. You could ask them to submit screenshots of their progress or their test scores. All sections have OPTIONS! So either let the kids choose or choose for them but you do not need to expect them to do them all (unless they are superhuman)
Term 2: First 2-3 weeks on the Design and Planning part of their Document. Check this BEFORE MOVING ON!
Term 2+3: Development Phase. 3 Sprints of 4 weeks with testing at the end of each sprint.
NCEA Assessments:
AS91902- Use complex techniques to develop a database
AS91903 - Use complex techniques to develop a digital media outcome
AS91906 - Use complex programming techniques to develop a computer program
AS91907- Use complex processes to develop a digital technologies outcome
AS91908 (External): Demonstrate understanding of a computer science concept (3)
Total Credits: 23
Software requirements:
Any Web Browser (eg Chrome, Edge, Firefox or Safari)
Visual Studio Code: https://code.visualstudio.com/
Python: https://www.python.org/downloads/
Git: https://git-scm.com/downloads
SQlite Studio: https://sqlitestudio.pl/
The world of computer science and programming is rapidly changing. The use of AI, software and algorithms have impacts on people, both positively and negatively. We have a responsibility to understand those impacts and be responsible creators. Writing code for humans, making interfaces that consider how humans think and interact, and being responsible with our data are all part of this course.
Building software is not like building a house or a bridge. Software is more fluid and you can iterate quickly and keep the clients involved throughout the development. Agile development is a recognized and widely used development process that you will use in this course. It will involve planning, testing and trialling in an iterative manner and adapting to what you learn as you develop your outcomes.
Programs are everywhere. You are reading this on a webpage and someone had to write the code behind it. And data sits in behind it all. This course gives you the freedom to solve problems. You'll choose a purpose and a problem to solve in both your database outcome and your webpage development projects and you'll be prepared to combine those technologies in the future to develop full stack web applications.
Algorithms and Computer Science fills the area of software engineering. Decomposition of problems and writing algorithms to achieve your goals is heavily integrated into this course. Programming, Data and Human Computer Interaction are the backbone of what you will do throughout the year.