Unit II: NetLogo Programming

CS 1150 Programming Environments for Elementary Education—Spring 2018

Day 17: NetLogo Introduction

Logistics

Sample Exam Review

This class introduces you to programming but doesn't teach it like we would teach it to a CS major. However, we (I) do want to know how well you develop some basic understandings in comparison to them. Typically, CS majors will have seen questions like the ones on the exam you took last time. And you haven't really. Now you have and you will again. The goal today is to help you see/understand the issues being examined by the exam. This discussion will be your major learning activity. Please keep in mind that very similar items will be on the final exam and will be part of your grade.

  [ Return exams to students; develop & discuss solutions to each problem. ]       Questions/wonderings about any other exam items?     [   Any other questions/wonderings?  

Programming Basics

We have seen and done some programming in one language and are about to look at another. Let's consider for a moment what is similar and different about programming languages. They all share the same basic capabilities:

Most programming languages are designed with some particular purpose or set of purposes in mind. They share the above basics but have differences that relate to their purpose. Scratch was meant to be easy to learn and use, particularly for kids. Other languages are meant for solving problems in general or perhaps in some particular domain. Ease of learning and use is typically not important, per se, in most programming languages (though they are considerations).

One thing that seems to make Scratch relatively easy to program in (as compared to some other languages) is that you mostly have all the instructions right in from of you. All you have to do is look for the right one, choose it, put in in the proper place, and make sure of any data values in it. With other programming languages that is not so. You have to know or look up the instructions. And, you have to type the instructions which means there is a possibility of typing errors.

NetLogo Information

NetLogo is a variant of the Logo programming language. Logo was designed to teach programming to children. The main context for Logo programming was drawing, much as we have done in Scratch. Originally, Logo programs guided a physical robot that was place on paper on the floor. The robot could move around and could raise and lower a pen that attached to it. Logo and it use was the brain child of Seymour Papert who worked at MIT. (Disciples of his, produced Scratch.)

The focus in Logo programming was the creation of new instructions (referred to as procedures) that could be combined to accomplish larger tasks. The Logo language had basic actions similar to sprites in Scratch but it was cumbersome to just sequence the actions without putting them in a block and naming the block.

Early educational research with Logo programming indicated that essentially all students could learn to program and that being good at other school work was not required for being good at programming. Indeed, often students who performed less well in school (or came from low socioeconomic situations) often performed quite well at programming. Papert's main idea was to have students learn by doing instead of learning "about" stuff.

The NetLogo Environment

(You are expected to have read Sante Fe Institute's core concepts document (a PDF) and to have downloaded and installed NetLogo on your computer from the NetLogo site at Northwestern.   Any questions, comments, or wonderings about that material?     Any trouble installing NetLogo?  )

NetLogo is a programming environment much like the Scratch programming environment. It allows you to write and test programs and to save them to run or revise at a later time. Running a Logo program in this environment requires a particular set of steps.

Next Assignment—NetLogo Tutorials

NetLogo has two basic types of programs—agent-based simulations and student-created programs.

The agent-based simulations are typically and illustrate some cute thing or interactions between possibly real-life actors (e.g., chemical reactions, biological processes, objects in space, etc.). They are either instructor developed or their development is guided by an instructor. In theory they can be simple because the agents involved might follow very simple instructions and students "might" be able to create such instruction. However, I would imagine this would rarely create the emergent behavior seen in the Termites program.

Student developed programs, if done by novice programmers will likely involve turtle graphics similar to our drawing in Scratch. Such programs might, however, produce very interesting results or be quite complex.

The NetLogo tutorials activity is being used to familiarize you with the NetLogo environment and let you see some emergent behavior I hope you enjoy it.

Questions? Comments? Wonderings?  

Next Time

Day 18: NetLogo Tutorials Work Day

Logistics

Today's Activities

The plan for today is to:  1) respond to any questions you have on the the NetLogo tutorials;  2) allow time to work on the NetLogo tutorials assignment

Next Time

Questions? Comments? Wonderings?   See you Thursday.

Day 19: Finish NetLogo Tutorials

Logistics

Today's Activities

The plan for today is to:  1) respond to any questions you have on the the NetLogo tutorials;  2) introduce the next programming activity;  and 3) allow time to work on the NetLogo tutorials assignment

Next Time

Questions? Comments? Wonderings?   See you Thursday.

Day 20: NetLogo Initials Workday

Logistics

Today's Activities

The plan for today is to:  1) respond to any questions you have on the the NetLogo initials activity;  and 2) allow time to work on the initials project.

Next Time

Questions? Comments? Wonderings?   See you Tuesday.

Day 21: Finish NetLogo Initials; Start Dash Robot

Logistics

Today's Activities

The plan for today is to:  1) respond to any questions you have on the the NetLogo initials activity;  and 2) start working/playing/learning with robots.

Do you have any questions on the initials activity?  [Address questions.]

Robotics

Our next activity examines our final environment for programming--physical robots. Hopefully you will be able to see what the programming basics look like in this context. See the class notes on robots for introductory information.

Next Time

  • Continue working with dash

Questions? Comments? Wonderings?   See you Thursday.