
All students deserve access to critical skills for success in today's evolving high technology industries. As a teacher, I support this student success by creating safe environments for them to learn, develop and practice both technical and soft skills.


Pedagogical foundations, industry expertise
Naomi Freeman bridges business and tech to deliver concrete skills needed for today's workplaces.
As a computer programming educator, my teaching philosophy is rooted in my disciplinary identity and the belief that education should empower students to become proficient problem solvers and innovative thinkers in the field of programming. With industry experience in software development, business and data analysis, my knowledge of algorithms, data structures, and software development influences my approach to teaching and learning. My goal as a teacher is to create an inclusive and stimulating environment that fosters critical thinking, creativity, and practical application of programming concepts.
I lead with inductive teaching, prioritizing active student engagement and discovery. Presenting students with real-world coding challenges encourages them to develop their problem-solving skills and deepen their understanding of programming principles and promotes independent thinking and the ability to analyze and solve complex programming problems.In designing lessons, I strive to create a dynamic and student-centered classroom. I incorporate a variety of teaching methods, such as hands-on coding exercises, group projects, and code reviews. By utilizing a universal design framework for inclusive classrooms, all students can actively participate and contribute to the learning process, regardless of their prior programming experience.
I set clear learning objectives and provide a roadmap for their programming journey through a comprehensive syllabus. Assignments are designed to be meaningful and practical, allowing students to apply their knowledge to real-world scenarios. By offering flexibility and opportunities for students to explore projects aligned with their interests and career goals, I foster creativity and autonomy in their learning experience.
Feedback is an integral part of the programming learning process. I prioritize high frequency, constructive feedback that focuses on both code correctness and effective programming techniques. By providing specific and actionable feedback, I help students understand their strengths and areas for improvement. I also encourage students to provide input on the course and my teaching practices, fostering a feedback loop for continuous improvement.
Throughout the course, I work to engage students in dialogic feedback, wherein students can move more and more towards providing feedback for each other that is both constructive and helpful to the core intent of the work that has been created, rather than coming from an opinionated place on the part of the feedback giver.
Students learn to receive feedback both during code review and pair programming sessions in the class, as well as during weekly demos in programming courses, where students are invited to ask for support and feedback on their work, including new perspective, approaches and general feedback from other students/peers in the class. The goal is for students to move toward evaluative judgment by the end of the course, wherein students are able to make decisions about the quality both of others' work and of their own.
Creating an inclusive learning environment is paramount to me. I cultivate a classroom culture that celebrates diversity, encourages collaboration, and promotes mutual respect among students. Through humanist and pragmatic approaches, I create a supportive space where students feel comfortable asking questions, seeking help, and taking risks with their coding.
One of my strengths as a programming teacher is organizing regular project demonstrations where students showcase their coding skills and creativity. These demonstrations reinforce programming concepts, foster collaboration, and enhance presentation and communication skills. The classroom becomes a "lifelong kindergarten", as Mitchel Resnick writes in his book Play, which focuses on 4 core P's that I emulate in the classroom: passion, projects, peers, and play. These four P's demonstrate, to me, the "how" of creating intrinsic learner motivation that is long-lasting and creates meaningful connections in students' cognitive frameworks.
As an educator, I remain updated with the latest programming languages, technologies, and industry practices. Through professional development opportunities, I enhance my teaching skills and incorporate innovative coding strategies and tools into my practice. Reflecting on my teaching methods and engaging in self-assessment allows me to provide the best programming education for my students.
In conclusion, my teaching philosophy in computer programming is grounded in my disciplinary identity and guided by goals of empowering students to become proficient problem solvers and innovative thinkers. Through inductive teaching, universal design and humanist and pragmatic approaches, I strive to create an inclusive learning environment where students excel in programming and thrive in their future careers.
Inclusive Classroom Practices
I create safe and inclusive learning environments that accommodate
diverse learning styles and backgrounds.
Humanist and Pragmatic Teaching Philosophies
I emphasize collaboration, critical thinking, and real-world applications, fostering student engagement and success.
Inductive Methods and Interactive Learning
I guide students to discover and explore technical concepts themselves through interactive cases, group problem-solving, and project-based learning.

This is what learning looks like





















Testimonials




Online Courses & Instruction
Portfolio
You can register for Naomi's 2017 Building a Command Line Interface Application with NodeJS course on LinkedIn Learning:
https://www.linkedin.com/learning/building-your-first-cli-app-in-node/build-a-cli-app-in-node
Course Description:
Put your Node.js skills to practical use by building a CLI App in Node.js. Many software developers, system administrators, and other advanced users frequently use command-line interfaces (CLIs) to perform tasks more efficiently, configure their machine, or access programs and features not typically available through the more popular graphical interfaces. If you're looking for a good course to build your Node skills or you've ever been curious about what it takes to develop an app or tool in the CLI, then this course is for you. Join Naomi Freeman as she demonstrates how to build a command-line developer tool in Node.js that automates a few key Git commands. Discover how to leverage the Node.js and npm ecosystem of packages and modules to connect to the GitHub RESTful API with Ocktokit
Learning objectives
- Initializing a Git repository
- Creating the user interface
- GitHub authentication
- Creating a prompt for user input
- Validating user input
- Authenticating with GitHub
- Creating a GitHub repository
- Automating Git commands
Skills covered
- Node.js
- CLI
Naomi's 2015 Introduction to REST APIs on Treehouse has been sunsetted and can no longer be registered for.
You can view the trailer by clicking the image above.
Course Description:
A common piece of functionality across web applications is having an API, or Application Programming Interface, which allows other apps to interact with your app. At Treehouse, Naomi Freeman will show you how to add an API to the existing todo list application ODOT. You'll learn all about REST, HTTP verbs, how APIs work, building out Rails routes, and using JSON, namespacing, and versioning to create an API.
You can register for free in this 2023 Ecommerce Data Analytics course by clicking the enroll button at the bottom of this page: https://www.noroff.no/en/accelerate/ecommerce-data-analytics
Are you looking to enhance your Ecommerce capabilities? In this self-paced online course, you can learn how to leverage data analytics for your online business without the need for coding expertise.
Course Description:
Data analytics is crucial to managing and optimising sales through online channels, particularly for Ecommerce stores. This course will provide you with the skills to create data collection touchpoints, install tools for data analytics, test and collect analytics from your site, and present findings in a visual report.
As online purchases become increasingly prevalent, understanding how to leverage data is essential for making informed decisions and optimising your online store. Tailored for small business owners, start-up founders, and digital marketers, this course introduces the fundamentals of data analytics for ecommerce. You will learn a range of foundational topics, including data collection, testing methodologies, business analysis, and reporting and visualisation.
The curriculum is designed to be practical and hands-on, ensuring that participants develop a solid understanding of the tools and techniques used in data analytics for ecommerce. You will learn how to create data collection touchpoints, install and use various data analytics tools, and conduct tests to gather valuable insights about your customers and their preferences. This will enable you to make data-driven decisions to enhance the user experience and drive sales growth for your ecommerce store.
Throughout the course, you will also explore key concepts in the ecommerce landscape, learn about different data types and sources, and understand how to use Google Analytics and other tools to analyse your store's performance. In addition, you will gain the ability to communicate your findings effectively through reporting and visualisation, ensuring that you can translate data-driven insights into actionable strategies for your business.
The course is designed to be self-paced, allowing participants to learn at their own speed and convenience. No prior programming skills or knowledge are required, making it suitable for anyone looking to gain a practical understanding of data analytics for ecommerce. By the end of this course, you will be well-equipped to apply data analytics to your existing or new ecommerce store, driving growth and success in the ever-evolving digital landscape.
Course information
Where: The course is available online so that you can study from anywhere.
When: Enrol anytime and learn at your own pace.
Duration and extent:Self-paced online course (video lectures, interactive quizzes, and practical assignments).
Price: Free
What you will learn:
- The role of data analytics in Ecommerce management and the overall consumer experience.
- How to identify consumer needs and preferences through data analysis.
- Creating data collection touchpoints and installing essential tools for data analytics.
- Testing and collecting analytics from your Ecommerce site.
- Presenting findings in a visually appealing and easily digestible report.

Research & Publications
Soft Computing in Connected Healthcare Systems
CRC Press, Taylor & Francis Group
Applying Privacy by Design to Connected Healthcare Ecosystems
Coming 2023
D-Core Research Group
"Our Research reports combine the right insights, analytics, and due diligence on emerging crypto and digital assets to drive stronger performance across the board for blockchain investors."

Talks
Brighton Ruby: Keynote - "Resilience" (2022)

You can watch the full talk here: https://brightonruby.com/2022/resilience-naomi-freeman/
Once upon a time there was a pandemic, and Zoom parties and COVID leave. Now your team has been told to come back to work - as if these past two years were not work. How can we build resilience in our engineering teams to help them through this transition?
Business of Data Festival - "Human vs. Machine: Avoiding a War on AI" (2022)
What are the best methods of combining human insight with augmented analytics? How do we ensure both elements are harmonious? What lessons can we quickly learn to ensure success?