Why Me?
I am the founder and creator of the computer science program at NCSSM, North Carolina's specialized magnet high school for grades 11 and 12. I introduced Python to NCSSM in 2004 and it has become a key component of the school's curriculum.
I was a faculty member at the Bergen Academies when its only school was the Academy for the Advancement of Science and Technology. This collection of schools grew from that time to be a collection of several specialized schools that shared curriculum and resources. I played a significant role in the development of its math and computer science programs.
I retired from NCSSM after 22 years of service in August of 2022.
I have designed and taught courses in Python, Java, C, and web development, and have taught students at all levels from beginner to advanced. All of these courses are based on freely available software that runs on Windoze, Mac, and Linux.
What's Pyhon?
Python is a programming language invented by Guido Von Rossum and which is named after Monty Python (not a snake). Python has a huge array of libraries that can help you do accomplish just about any computational task.
Python is a great language for beginners for a variety of reasons
- Python has an interactive mode in which you can "talk" to Python and experiment with code and expressions.
- Error messaging is excellent.
- Delimitation is achieved using whitespace. Students who begin in this language tend to have excellent formatting habits because Python forces you to do so.
- It runs on any modern computer system and on any platform and it's free. I have seen students running it on their phones.
- It looks a lot like English
- You never "outgrow" this language. It is a powerful professional tool with libraries and extensions that allow you to do high-performance computing.
- It has an optional mechanism called type hinting that allows you to run static type checking. This can be a very useful means of preventing ugly errors.
- Installing new libraries is easily done via the
pip
package manager. - FileIO is quick and simple.
For these reasons, I introduced it to NCSSM in 2004. It is now ubiquitous in the NCSSM curriculum. It is heavily used by the science and math departments, as well as computer science and engineering.
Learning Modules
03-Oct-2023 These are currently under construction.
Python Cram School 101-102
These two workshops are for people who are already decent programmers in another language such as JS, Java, Ruby, or C/C++. The goal here is to give such a person full Turing-complete powers in Python.
The first part covers Python's scalar types, Python memory managment, functions, conditional logic, and Python's documentation. Particular attention will be paid to matters of scope and to the call stack and how it controls the execution of Python programs. We will apply this knowledge to iteration via recursion.