Software Engineering

Learn Python
Database Application Development
Learn HTML & CSS
Website Outcome
Human Computer Interaction

About

Software engineering is one of the most in-demand careers in modern time. Careers.govt.nz rates job prospects as "very high" and starting salaries at 50k-100k. The ability to code is becoming a "must have" skill even for people who don't end up in the industry as careers in web development, data science, game development, business analytics, IT and telecommunication, robotics, and AI all benefit from a sound foundational knowledge of programming.

This course will cover Programming, HCI and Web Development as you learn foundational knowledge of the Python,  HTML and CSS languages.

~~~ Big Ideas in Software Engineering ~~~

The discipline of Digital Technologies embodies whanaungatanga. Outcomes are made by people, for people, within cultural, social, and environmental contexts

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.

Digital outcomes are created for a purpose by following established processes

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.

The discipline of Digital Technologies embodies auahatanga. Outcomes solve problems and enhance and expand human possibilities.

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.

All digital technologies are underpinned by algorithms and computer science principles

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.

~~~ OVERVIEW OF COURSE ~~~

Python is the worlds number one programming language and is used extensively by high school and University courses to teach programming. So it's a great place to start. This course will teach and assess Python against AS92004 worth 5 Credits in term 1.

SQL and Data are still in super high demand and the course integrates the learning of database design with Python. After learning about data design and how to use SQL to query, you will learn how to use the SQLite3 library in Python to allow you to write database programs. Your work in this unit will be assessed against AS92005: Develop a digital technologies outcome. You'll also get a LOT more practice with your Python but your database program cannot be assessed against the programming standard.

Website Development is next. While HCI might be a good fit to learn next as you'll be able to use it in the design and development of your website, there might already be enough to learn. HTML and CSS and all that goes with website design including layouts, using version control, github hosting and wireframing might already be enough. This provides a second opportunity to be assessed against AS92005 Develop an outcome (again!)

HCI is essential knowledge and being able to understand Neilsen's Heuristics as they apply to any computer interface will carry you into the future as you develop your digitech outcomes in following following years. This unit prepares you for AS92006: Demonstrate understanding of usability in human-computer interfaces. This is an External DCAT exam which will be assessed in Term 4. 

~~~ TIMELINE ~~~

~~~ COURSE MATERIAL ~~~

Unity 1: Learn Python

(approximately 8 weeks)

Learn the basics of Python. Sequence, Selection, Iteration and Storage through tutorials and challenges.

Unit 2: Database Application Development 

(approximately 8 weeks)

You'll learn SQL and Database design and combine them with Python to make a basic Database Application. Includes the option to extend this into a basic Web Application using the Flask Web Framework for Python.

Unit 3: Learn HTML & CSS

(approximately 4 weeks)

You'll learn the basics of HTML and CSS to display content in the browser. You'll also learn how to use git for version control and github to store your code and host a webpage.

Unit 4: Website Outcome 

(approximately 9 weeks)

You'll put your knowledge of HTML and CSS practice to make a website of your own design. You'll need to use version control and a basic agile process to refine your website over three "sprints" of development. The final outcome will be website hosted live on github pages. 

Unit 5: HCI 

(approximately 4 weeks)

Understand Human Computer Interaction through Neilsens Heuristics and be able to identify good and bad interfaces in a variety of applications. This will assist in helping you design good webpages and applications in the future. This will be assessed as a DCAT in term four at the end of this unit.

NZ CURRICULUM

Digital Technologies Progress Outcomes

Within authentic contexts and taking account of end-users, students determine and compare the “cost” (computational complexity) of two iterative algorithms for the same problem size. They understand the concept of compression coding for different media types, its typical uses, and how it enables widely used technologies to function.

Students use an iterative process to design, develop, document and test basic computer programs. They apply design principles and usability heuristics to their own designs and evaluate user interfaces in terms of them.

Through usability heuristics, students draw on interactive design principles that guarantee usability and provide a simple, quick testing-regime.

In authentic contexts, students investigate and consider possible solutions for a given context or issue. With support, they use an iterative process to design, develop, store and test digital outcomes, identifying and evaluating relevant social, ethical and end-user considerations. They use information from testing and apply appropriate tools, techniques, procedures and protocols to improve the quality of the outcomes and to ensure they are fit-for-purpose and meet end-user requirements.