About the course
DURATION
20 weeks
10 hours per week
PREREQUISITES
None
Designed for beginners
The future of work is here and software is making it possible. Every job, either directly or indirectly, depends on a range of applications to automate tasks, provide directions, analyse data and facilitate decision making. To fully understand where we are today and what is possible in the future, requires an understanding of computer science and programming. That is what you will learn in this course.
This course is designed to enable anyone to learn the fundamentals of computer science, from problem solving and computational thinking, through to programming and working with others to design complex software.
This course will provide you with the foundations and skills to teach yourself new programming languages, frameworks and algorithms. It will give you the confidence to explore artificial intelligence, cyber security, web application development, cloud computing, data science and more. In short, you will learn how to learn and thereby prepare yourself for an ever-changing world of work.
You will start from the very beginning with problem solving techniques and microprocessors, understand how a computer translates the code you write into 0s and 1s, and all the skills necessary write high quality, efficient code. By covering both theory and practice through a wide range of unique activities and projects that build your knowledge, we have created a learning experience like no other.
You will be part of a vibrant community of students, facilitated by passionate educators and participate in consultation groups with computer scientists. By the end of the course, you will not only be able to program, you will understand every step of the process and be prepared for further study in the field of computer science.
There are hundreds of online courses that will promise to teach programming with minimal effort but they often recycle content from YouTube and only scratch the surface of coding. CS101 is different. If you are motivated to learn real computer science and programming skills then you've come to the right place. :)
Download syllabusSkills
Through this course, you will develop a range of practical, technical and thinking skills:
Programming (C, Python)
Write clean and efficient code following best practices. Start with 0s and 1s, develop your skills in C, explore Python and learn how to learn new languages.
Computational thinking
Understand how to analyse and break down problems so they can be solved by computers.
Complex problem solving
Apply a range of techniques and strategies to solve problems by developing a scientific mindset.
Logic and reasoning
Explore the rules of programming, the role of logic gates and core concepts such as recursion, syntax, abastraction and more.
Algorithms
Follow a scientific approach to designing and choosing algorithms, then apply them to a range of problem spaces.
Automation
Understand the costs and benefits of automation and how to automate repetitive tasks.
Microprocessors
Understand how a computer interprets instructions from processors to modern programming languages.
Software design
Co-create solutions by coding in teams, coordinating on design, and reviewing each other’s code.
Testing and debugging
Appreciate and implement test driven development, develop strategies and mental resilience for debugging.
Professional practice and ethics
Understand the implications of the code you write, learn how to review other people's code and appreciate feedback.
Industry Experts
This course is designed from the ground up by some of the world’s leading computer scientists, software engineers at cutting edge technology companies and experienced educators who have studied and taught at top universities.
The following industry experts have contributed to the design and development of this course:
David Collien
Founder and CTO at OpenLearning, Educator. B. Science (Computer Science) UNSW
Hannah Beder
NSW Young Woman of the Year 2020, Tech Lead at Creatable, Cohort Lead at Code Like a Girl. B. Science (Computer Science), B. Science (Honours) UNSW
Shaun Thompson
Senior Learning Designer at OpenLearning, PhD (Mathematics) University of Newcastle
Hien Nguyen
EdD Penn State University, B Science (Computer Science) Texas A&M University
Jessica Rahman
PhD Candidate (Computer Science) Australian National University
Cameron Cooke
Expert in Advanced Computer Vision at Airbus, Ex Senior Emerging Technology Engineer at Qantas
Martha Winata
Entrepreneur, CEO and Co-founder Get Sandwich, Ex Product Manager at Nasdaq OMX, B. Science (Information Systems) UNSW
Min’an Tan
Entrepreneur, Co-founder Get Sandwich, Ex Developer at Atlassian, B. Engineering (Software Engineering) UNSW
Alex North
Software Engineer and entrepreneur. Staff Engineer at Protocol Labs, Ex Google, Canva, Posse. BSc Comp. Sci. UNSW
Prashant Varanasi
Senior Software Engineer at Uber, Ex Google, Microsoft. B. Science (Computer Science) UNSW
Industry Partners
We are proud to partner with some of the world’s most innovative technology companies and leading universities to ensure that this course provides learners with the skills necessary to succeed in the digital economy.
Support and mentoring model
Taking the plunge into a remote course can be a little scary for some people. Here at CS101 we make sure you get all the support you need with our tailored support and mentoring model. With this model we focus on:
Weekly consultation group of up to eight people with a coach
Each week you will be able to join a consultation group to discuss challenging concepts and brainstorm ideas. These sessions are run by a computer science coach and are limited to eight people to encourage meaningful interaction.
Ongoing learning community facilitation
You will be part of a supportive, positive and collaborative learning community that is tightly integrated into the projects and activities that you will complete throughout the course and is facilitated by a team of computer scientists.
Fortnightly portfolio review and feedback
All the projects and activities you complete will be automatically added to your portfolio, which will be reviewed every fortnight and you will receive constructive feedback on how you're progressing and areas for improvement.
Course Outcomes
This course covers the fundamentals of Computer Science. Whether you are upskilling for your current role or starting fresh, below is a list of outcomes which you'll achieve at the end.
Identify and appreciate the qualities of high quality programming code
- Upholding good style and producing code of good clarity and design quality
- Proposing improvements to other’s code design and clarity in code reviews
- Adherence to, and refinement of a style guide
- Contributing to the discussion of what good code style, and what undesirable “hacky” each look like
Value the writing of functional software for both its social utility and as an expression of creative skill
- Identifying opportunities to automate tasks, or solve personal or professional problems by writing programming code
- Explore creative expression by building programs with a playful or artistic purpose
- Critique personal and professional ethical considerations when writing software
Cultivate a scientific mindset for solving problems using code
- Follow a scientific approach to designing and choosing algorithms
- Apply a methodical, optimistic, persistent, and resilient strategy to debugging, troubleshooting, and solving problems
- Produce a strategy for exploring, questioning, and experimenting with a problem space scientifically and skeptically
- Probe a problem space to prioritise exploration, and reverse-engineer “black boxes” using a scientific approach
Identify and appreciate good programming practices
- Appreciation for writing unit tests
- Exploring the practice of writing unit tests before implementation
- Identifying and critiquing the scope and contracts of functions
- Cultivating an adversarial attitude toward code execution
Demonstrate the fundamental design principles for writing good software
- Function scope and abstraction
- Recursion
- Branching
- Iteration
- Working with Collections: Arrays and Lists
- Abstract and Concrete Data Types
- Mutability, direct and indirect addressing
- Structural design of programs
Understand how computers work in order to predict how programs will be translated into machine code and executed
- Differentiate between automata, calculators, and the ability to perform universal computation
- Compare how different types are stored in machines
- Examine how a compiler operates and how a machine executes code
- How addressing, memory allocation and data storage operate
- Identify the difference between imperative and declarative programming
Solve novel problems by building correct and functional software programs
- Code solutions according to good software design principles
- Debug and unit test effectively
- Decipher error messages and interpret code syntax
- Identify and rectify memory errors such as buffer overflows
Co-create solutions by coding in teams, coordinating on design, and reviewing each other’s code
- Negotiate, design and develop code specifications with a team
- Code solutions which adhere to agreed upon interfaces and obey defined contracts
- Review other’s code and identify style, functionality, and design enhancements
- Design and write unit tests for other’s code
Develop critical thinking skills while programming
- Formulate and articulate ideas for solving problems with code
- Recognise and test assumptions which have been made and their consequences
- Distinguish between relevant and irrelevant information and feedback provided by automated and human sources
- Identify trade-offs and secondary problems
Practice the skills required to independently research and explore new programming concepts
- Independently perform research to seek out clarifications and related concepts
- Curate and prioritise each source of information as it relates to solving a specific problem
- Find and distinguish reliable communities of practice and sources of information
- Build a habit for experimenting and contributing findings back to a community of practice; trying things out to see what happens and sharing
Career paths
The knowledge, skills and attitudes that you’ll develop in this course will provide you with a strong foundation in computer science and prepare you for the future of work. A background in computer science will enable you to move into a range of roles, depending on your prior work experience and background, including:
- product manager
- innovation lead
- data scientist
- software developer
- database specialist
- technology consultant
- software analyst
- solutions architect
- project manager
If you are already working, having a background in computer science will enhance your skills and make you more efficient at your job by enabling you to solve problems in new ways and automate time-consuming tasks.
Course structure
This course covers the fundamentals of Computer Science, from problem solving and processors to programming, ethics and algorithms. Whether you are up-skilling for your current role or aiming to become a programmer, this course will provide you with critical skills and a solid foundation in just 12 weeks.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
CHAPTER ONE
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Certification
This course is aligned to the Australian OpenCreds Micro-credential Framework and is approved by OpenLearning’s quality assurance department. Upon successful completion of this course you will receive an OpenCred:
- 150 hours of learning
- Professional Learning
- Industry recognised
- Aligned to the Australian Qualifications Framework
The OpenCred will be in the form of a digital credential that includes both a badge and a certificate that you will be able to share on social media.
Alongside your OpenCred, you will have an online portfolio of your work across all the projects and activities that you have completed in this course.
You will be able to control access to your digital credential and portfolio so that you can share it with employers and educational institutions.
Pricing
A once-off payment provides you with unlimited access to the course for 12 months, with mentoring and support for the duration of the cohort (20 weeks from the start date).
SPECIAL OFFER FOR 7 MARCH 2022 COHORT
Financing options available to pay over 6 months.
Money Back Guarantee
Within 7-days from the start date of the course
Why study with CS101?
This course is designed from the ground up to take you on a journey from 0s and 1s through to programming complex applications. You won't be going on this journey alone - we'll be with you every step of the way.
Original content designed by experts
Designed from the ground up computer scientists and educators with original content, activities and projects. Validated by leading technology companies and software engineers to ensure that you're gaining the foundational skills that everyone in the industry needs.
Constant support
We've designed a support model that fits around your schedule and enables you to improve. You'll receive feedback every fortnight on your portfolio as you progress through the course. Every week, you can select a consultation group of eight people to discuss topics and ideas, and a facilitator will guide the community and encourage discussion.
Community-based learning
Programmers rarely work alone, they brainstorm with others, write programs that interact with other programs and they give each other constructive feedback. That is what you will experience in this course. You will be part of a vibrant learning community that is driven by activities and projects, and facilitated by experts in the field.
Interactive learning
CS101 is designed from the ground up to maximise opportunities for peer interaction and engagement for the purpose of developing a broad range of computer science and professional skills. Delivered on OpenLearning and designed around the principles of social constructivism, you will interact because it's fun, not because you are forced to do so.
Testimonials
This course will transform the way you think and work, preparing you for an uncertain future.
Discover why experienced software engineers, tech company founders and educators believe that CS101 is the missing link in the tech sector today.
This an excellent program that will help address the growing technical skills gap.
As an industry partner, Chronosphere is changing the tech landscape by diversifying the future workforce through education opportunities and new pathways into tech for those with non-traditional tech backgrounds.
CS101 is different from other computing programs. Two features stand out – the first aspect is social learning and the second is a focus on creating the scientific mindset.
This course give you plenty of opportunities to think about what is happening and why - when you're learning a new concept, rather than just straight jumping into coding.
It is important to build a solid foundation and develop a holistic view when starting to learn Computer Science, and this program is designed with that in mind.
Learners will not only learn to code but also have opportunities to have deep and active learning experiences. Can’t wait to see learners, like yourselves, in the CS101 program!
It is important to build a solid foundation and develop a holistic view when starting to learn Computer Science, and this program is designed with that in mind. Learners will not only learn to code but also have opportunities to have deep and active learning experiences. Can’t wait to see learners, like yourselves, in the CS101 program!
One of my favourite things about working on the program so far is having a bit of fun with the course, like having a play with the course’s graphics. We believe that the more fun we have with creating the course, the higher the chance that the learners will have fun going through the course themselves.
Frequently Asked Questions
This course is 100% online and can be completed entirely through your web browser. The course makes use of various programming tools and applications that have been designed to run within your web browser so there is no software to install. However, you are encouraged to program on your computer using a range of applications (not within the web browser) and instructions will be provided inside the course.
The course is delivered on the OpenLearning platform and we encourage you to access this via Desktop web browser for the best learning experience. We've also published a list of recommended web browsers and system requirements here: https://help.openlearning.com/t/y7grg4/minimum-system-requirements-for-maximising-your-openlearning-experience
You can contact contact@cs101.com for technical support and questions regarding enrolment or payment. CS101 is delivered on the OpenLearning platform and the courses are managed by the CS101 team at OpenLearning.
Yes, you will receive a digital credential upon completion of this course, which includes both a certificate and a digital badge. The credential is an OpenCred, which is a type of micro-credential developed by OpenLearning that adheres to a strict quality assurance and verification process.
Yes, there is a discount of 50% off the full price of the first course for a limited time.
This course provides you with the foundational skills in computer science and programming, which will make you more employable in a range of professions and enable you to teach yourself new programming languages and tools. However, this course is not specifically designed to get you a job as a programmer and we would recommend taking all four CS101 short courses if you are looking to get a job as a computer scientist or programmer.
Yes, we have a 7-day money-back guarantee from the start date of your cohort. So, if you're unhappy or change your mind within the first 7 days then you can contact our support team to request a full refund.
You will be able to access the course for at least one year from the date of the intake. The course is designed such that everyone in the cohort goes through at the same pace with the aim of completing within 6 to 8 weeks from the start date, depending on the course. The course facilitators will be in on hand from the start of the cohort. That said, you will be able to take your time in completing it if you do fall behind. For best results, try to keep up :)
You do not need a technical background or any experience in computer science or programming to take this course. We will start from the very beginning so you can build up your knowledge and confidence as the course progresses.
You should set aside about 5 to 7 hours per week to take this course. If you fall a bit behind, don't worry, you will be able to access the course for at least a year from the start date of the course.