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.
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: Create a computer program 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 AS92004: Create a computer program. This is a second assessment opportunity for this standard and is done over a longer period of time for those students who don't do their best work in exams.
Website Design is next. This is a portfolio that will sent away to be assessed externally against AS92007: Design a digital technolgies outcome. Student will use kaitiakitanga and manaakitanga to develop a design for a website with a purpose and a target audience. Note that the design is a series of sketches, wireframes and a final (hopefully high fidelity) mock up. It must not contain any HTML/CSS. The design they make here will be used in the final Website Project completed later in the year.
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. Students will be expected to sit a derived grade exam in Term 3 so learning this topic needs to done before then. The final exam is an External Exam during the standard NCEA exam period in November.
Website Development is last. Students will learn HTML and CSS before beginning development of the website they designed earlier in the year. Development includes using Github for version control and to host their site so it becomes a publicly visible live website. This will be assessed against AS92005: Develop an outcome.
Unit 5: Web Design
(approximately 5 weeks)
In this unit your learn about design a website. That will include wireframes, low-fidelity mock ups, high fidelity mock ups, shoosing good color palettes and layout tips and tricks.
Note THIS DOES NOT INCLUDE ANY HTML/CSS!!!! A Design is NOT a finished website!
Unit 6: Learn HTML & CSS
(approximately 3 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.
This is a great time to start learning about HCI, So you can use it in your design.
Unit 4: Website Outcome
(approximately 6 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.
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.
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.