programming skills to the next level with object oriented approach
This is an intermediate programming course for someone with basic programming knowledge and want to learn how to write a non trivial program from scratch. Some college level math and physics knowledge are definitely helpful. The demo projects are python but can be translated to other general-purpose programming languages very easily. (Or the design can be reused in another implementation language) All the demo projects here are small enough for learning but not trivial.
What you’ll learn
- Practical use of data structure and object-oriented analysis and programming.
- Simple game design, play against machine.
- Apply math and physics in your program.
- Algorithms.
Course Content
- Design from Scratch — Introduction –> 1 lecture • 8min.
- Project 1 – TicTacToe –> 3 lectures • 42min.
- Project 2 – Space Invaders –> 3 lectures • 46min.
- Project 3 – Tetris –> 2 lectures • 38min.
- Project 4 – Physics Simulation –> 2 lectures • 30min.
- Project 5 – Maze –> 2 lectures • 45min.
- Project 6 – Customer Service Simulation –> 2 lectures • 28min.
Requirements
- General Purpose Programming Language Knowledge.
- Object-Oriented Concepts: class, field, property, methods, inheritance etc.
- Basic Data Structures and Algorithms: queue, stack, tree, graph etc..
- High school or college Math and Physics.
This is an intermediate programming course for someone with basic programming knowledge and want to learn how to write a non trivial program from scratch. Some college level math and physics knowledge are definitely helpful. The demo projects are python but can be translated to other general-purpose programming languages very easily. (Or the design can be reused in another implementation language) All the demo projects here are small enough for learning but not trivial.
The goal of this course is to improve your overall problem solving skills using software.
The course is designed to focus on how to structure a program which has algorithms, UI and a few backend objects involved using OOP.
There are many other areas of knowledge that are important for a software engineer not covered here such as multi-threading, database etc. Having those may lose the focus of the course and introduce unnecessary issues for students to debug the projects. However, with good understanding of the course, students may find it helps learning other important areas in software development such as modeling large complex system (UML), Design Patterns & Architecture, etc.
To make best use of the course:
students are expected to have some knowledge of the following
– General Purpose Programming Language Knowledge
– Object-Oriented Concepts: class, field, property, methods, inheritance etc.
– Basic Data Structures and Algorithms: queue, stack, tree, graph etc.
– High school or college Math and Physics