Positions and Research Opportunities


Ongoing Undergraduate Positions


Seeking Student front end developers (good pay, course credit or work study)
Description We are looking for an ambitious and skilled front end developer to aid in the development of an interactive online learning platform specifically designed for younger learners of the widely used NetLogo agent-based modeling environment, created and maintained by our lab. The requirements for this position are strong web programming abilities and the desire to take the leadership of the content creation and the implementation of the project. Tasks will include: - developing the project in HTML5 + Javascript + CSS - developing a simple content management system for future content updates

Seeking Student Web Developer (good pay or work study)
Description We are looking for a talented web developer to help us upgrade the NetLogo website's technology and user experience. We want you to help us deliver a better site for our users that is easier for our lab to maintain while learning new technologies and growing your skills. This job involves upgrading the content and design of the website as well as building a small web application. This position requires web programming skills (HTML, CSS, JS). Ideal candidates will have experience in one of the following areas: web design, web development (any language, python preferred), or website administration (any platform).

Seeking Student developers (good pay, course credit or work study)
Description Seeking Student developers (good pay, course credit or work study) We are looking for an ambitious and skilled software developer to aid in the development of our growing web app for scientific simulations: NetLogo Web. This project is a browser-based reimagining of the original NetLogo application, which our lab created several years ago and has gone on to become a widely-used modeling tool within the realms of science education and scientific research worldwide.
See more details.
NetLogo Web is an open source project, available on GitHub for all to see and experiment with (https://github.com/NetLogo/Galapagos, https://github.com/NetLogo/Tortoise), being worked on by professional software developers and students with a love for functional programming.
The only requirements for this position are strong programming abilities and the desire to work on a large, ambitious web application that pushes the boundaries of what is possible on the modern web. Tasks will be chosen based on the applicant's areas of interest, be they in the JavaScript-based simulation engine, the compiler written in Scala, or the HTML5-based web client.
More-specific examples of tasks that one might choose include:
Implementing language primitives to allow new simulation behaviors
Adding the ability to export a simulation's state and resume it at a later time
Implementing "multiplayer" simulations, where multiple people on different computers are controlling the same simulation
Performing optimizations of the compiler or simulation engine in order to speed up simulations
Allowing the construction of NetLogo programs through a blocks-based programming environment
Providing a GUI for inspecting individual agents within the simulation
Improving the NetLogo Web code editor to provide advanced IDE features like automatic refactorings
However, these are only examples and are not the only options available. The applicant will be able to choose what to implement and will be given the mentorship of the other developers along the way. Since NetLogo Web is still a young project, there is a lot of room to both have a large impact on the future of the project and to perform creative work in all areas.
Hide details.

NetLogo models library Integration manager (Course credit or work study)
Description: The NetLogo models library consists of hundreds of agent-based models and is in use by hundreds of thousands of users worldwide. This job entails coordinating a team of students to manage the model integration into the library. Candidate models are reviewed for style, clarity and importance, sent through a checkout process and eventually promoted to the library. This is also a good opportunity to learn about the emerging sciences of complex dynamic systems.
See more details.
Beginning Fall 2015
This position can be undertaken either for pay (part time, work-study or regular, minimum of 10 hours/week) or for C99 course credit.
Qualifications: Preference given to those who already know and have a facility with the NetLogo software, though fast learners will also be considered.
Hide details.

Curriculum Developer (Course credit or work study)
Desctiption: This position provides an opportunity to join a dynamic team of programmers, researchers and educators in a project sponsored by the National Science Foundation at Northwestern's new Center for Connected Learning and Computer-Based Modeling. The project mission is to develop a network of handheld computers and graphing calculators that can be used in math and science classrooms. The main use of this network, called HubNet, is to help students to understand the dynamics of complex systems through engaging in participatory simulations of such systems. The major responsibilities of this position will be to develop activities for using HubNet in classrooms and to field test these activities. This is also a good opportunity to learn about the new emerging sciences of complex dynamics and to learn how to program networks for rendering these dynamics.
See more details.
This position can be undertaken either for pay (work-study or regular, minimum of 10 hours/week) or for C99 course credit.
Qualifications: Enthusiasm for the project, ability to learn fast and good communication skills. Desirable qualifications include a knowledge of graphing calculators, middle school and a strong math/science background.
Hide details.

Java Programmer (Course credit or work study)
Description: This position would involve writing and maintaining the Java code behind our parallel modeling language NetLogo. Opportunities to design/implement compiler, interpreter and runtime engine, graphics, GUI, networked features, and more.
See more details.
This position can be undertaken either for pay (work-study or regular, minimum of 10 hours/week) or for C99 course credit.
Qualifications:The most desirable qualifications for applicants are enthusiasm for the goals of the project, the ability to learn new languages and systems quickly, good troubleshooting and debugging ability, good command of data structures and algorithms, and interest/ability in writing clean, high quality, readable and maintainable, platform-independent, bug-free code that will last. Also desirable: experience with Java, experience coding on a team, experience or interest in compilers and language design, and ability/interest in good HCI/GUI design.
Student applicants should either know Java or know a related language such as C++ or Common Lisp and have a strong desire to learn Java. CS311 Data Structures is a required prerequisite. (CS322 Compilers and CS343 Operating Systems are helpful but not required.)
Computer Modeler (Course credit or work study)
This position can be undertaken either for pay (part time, work-study or regular, minimum of 10 hours/week) or for C99 course credit.
Description: This position would involve learning a parallel modeling language called NetLogo and constructing models of complex systems using it. This involves analyzing the system's global behavior and finding local rules that generate that behavior. The domains of modeling cover a wide range of disciplines including mathematics, physics, biology, chemistry and economics as well as education and computer science. This is also a good opportunity to learn about the new emerging sciences of complex dynamics and to learn parallel modeling techniques for rendering these dynamics. 10-30 hours/week commitment.
QualificationsThe major qualifications are enthusiasm for the project, creativity, good analysis skills, and ability to learn fast. Also helpful would be strong math/science background and knowledge of Lisp/Scheme.
Video Research Assistant (part-time, work study or regular)
Description: This position would involve digitizing video recorded from projects, then labeling, cutting, and organizing the video clips.
Qualifications: Comfort with using and learning about computers and video.
Hide details.

Full Time Positions

These positions might interest you if you want to...
work with researchers at a university
make things for kids, teachers, and scientists
code in Scala and/or CoffeeScript
hack on compilers and interpreters
do functional programming
use the Play framework
write open source software
do all your work on GitHub (https://github.com/NetLogo)

Post-Doctoral Fellow
For STEM Education and Computational Thinking Project at Northwestern
Northwestern University (NU) School of Education and Social Policy seeks applicants for a postdoctoral fellow in the learning sciences. The candidate will be part of a team of researchers, faculty, and teachers involved in a newly funded initiative by the Spencer Foundation. The goal of this broaden participation in computing fields, increase student interest in STEM fields, and bring STEM curriculum more in line with science as it is practiced in the 21st century. In this effort we will develop, implement, and evaluate computational activities for high school and middle school STEM classrooms. The project will focus primarily on under-resourced schools and underrepresented youth to improve the equity of and access to the highest quality educational materials.
See more details.
This position provides opportunities for in-depth qualitative and quantitative research in schools. Successful candidates will be comfortable conducting research in school and classroom environments and coordinating with teachers and administrators. The candidate will be part of a collaborative research team involving Northwestern faculty from learning sciences and computer science. This is a dynamic and vibrant collaborative environment comprised of faculty, post- docs, students, computer programmers, modelers, and curriculum developers.
The candidate would co-supervise the work of graduate students and staff, publish research papers, contribute to grant writing and materials development, work closely with implementing schools, and help shape the overall scope and direction of the research. There will be close mentorship from the Co-PIs (Uri Wilensky, Michael Horn, Kai Orton and Kemi Jona) as well as opportunities to learn from other truly outstanding senior scholars and practitioners. Fellows will fully participate in research laboratories: Center for Connected Learning and Computer-Based Modeling (CCL) and Tangible Interaction Design and Learning (TIDAL) Lab.
A successful candidate will have a doctorate in learning sciences or a related field (e.g., science education, computer science education), strengths in research methods, have a science background, good communication skills, experience with classroom-based research, and a strong writer. Preference will be given to applicants with expertise in computational learning and work with middle or high school teachers and students.
Start date is as soon as possible and expected duration of the post-doctoral fellowship is two years with possibility of renewal for a third. To apply, please send a cover letter, CV, sample publications and names and contact info for three references to ct-postdoc@ccl.northwestern.edu. Application review will begin immediately and continue until the position is filled.
Northwestern is located in an attractive lakefront community adjacent to Chicago. For more information about the School of Education and Social Policy, please visit http://www.sesp.northwestern.edu/ . Minorities and women are strongly urged to apply.
Northwestern University is an Equal Opportunity, Affirmative Action employer. Hiring is contingent upon eligibility to work in the United States.
Hide details.

NetLogo Developer - Not currently accepting applications
See more details.
Description: The CCL is looking for a full-time developer to work on NetLogo. The Software Developer position is based at Northwestern University's Center for Connected Learning and Computer-Based Modeling (CCL). You'd be working in a small development team in a university research group that also includes professors, postdocs, graduate students, and undergraduates, supporting the needs of multiple research projects. A major focus would be on development of NetLogo, an open-source modeling environment for both education and scientific research. Our grants also involve development work on HubNet and other associated tools for NetLogo, especially our educational NSF grants involving building, delivering, and assessing NetLogo-based science curricula for secondary schools.
NetLogo is a programming language and agent-based modeling environment. The NetLogo language is a dialect of Logo/Lisp specialized for building agent-based simulations of natural and social phenomena. NetLogo has tens of thousands of users ranging from grade school students to advanced researchers. A collaborative extension of NetLogo, called HubNet, enables groups of participants to run participatory simulation activities in classrooms and distributed participatory simulations in social science research.
Responsibilities: Collaborates with the NetLogo development team in designing features for NetLogo, HubNet and web-based versions of these applications; Writes code independently, and in the context of a team of experienced software engineers and principal investigator; Creates, updates and documents existing models using NetLogo, HubNet and web-based applications; Creates new such models; Supports development of new devices to interact with HubNet; Interacts with commercial and academic partners to help determine design and functional requirements for NetLogo and HubNet; Interacts with user community including responding to bug reports, questions, and suggestions, and interacting with open-source contributors; Performs data collection, organization, and summarization for projects; Assists with coordination of team activities; Performs related duties as required or assigned.
Minimum Qualifications: A bachelor's degree in computer science or a closely related field or the equivalent combination of education, training and experience from which comparable skills and abilities may be acquired
Enthusiasm for writing clean, modular, well-tested code.
Preferred Qualifications: Experience with working effectively as part of a small software development team, including close collaboration, distributed version control, and automated testing
Experience with building web-based applications, both server-side and client-side components, particularly with html5 and JavaScript and/or CoffeeScript
Experience with at least one JVM language such as Java
Experience with Scala programming, or enthusiasm for learning it
Experience with Haskell, Lisp, or other functional languages
Interest in and experience with programming language implementation, functional programming, and metaprogramming
Experience with GUI design; language design and compilers
Interest in and experience with computer-based modeling and simulation, especially agent-based simulation
Interest in and experience with distributed, multiplayer, networked systems like HubNet
Experience working on research projects in an academic environment
Experience with open-source software development and supporting the growth of an open-source community
Interest in education and an understanding of secondary school math and science content.
Application information:
The Northwestern campus is in Evanston, Illinois on the Lake Michigan shore, adjacent to Chicago and easily reachable by public transportation. To apply, please contact Uri Wilensky, Director of the CCL, at ccl-developer-job@ccl.northwestern.edu Please put "Developer Job" in the subject line. Please include a PDF version of your resume and, optionally, links to any relevant development projects you feel illustrate your abilities.
Hide details.