Programming Methodology

Computing Education Research Blog

  • Home
  • About the Computing Education Research Blog
  • Guzdial Papers
  • Resources for new CS Teachers

Stanford CS department updates introductory courses: Java is Gone

April 21, 2017 at 7:09 am
36 comments

See update here:  Stanford is NOT switching from Java to JavaScript: I was mistaken

Stanford has decided to move away from Java in their intro courses. Surprisingly, they have decided to move to JavaScript.   Philip Guo showed that most top CS departments are moving to Python .  The Stanford Daily article linked below doesn’t address any other languages considered.

The SIGCSE-Members list recently polled all of their members to talk about what they’re currently teaching.  The final spreadsheet of results is here .  Python appears 60 times, C++ 54 times, Java 84 times, and JavaScript 28 times.  I was surprised to see how common C++ is, and if Java is dying (or “showing its age,” as Eric Roberts is quoted below), it’s going out as the reigning champ.

When Java came out in 1995, the computer science faculty was excited to transition to the new language. Roberts wrote the textbooks, worked with other faculty members to restructure the course and assignments and introduced Java at Stanford in 2002. “Java had stabilized,” Roberts said. “It was clear that many universities were going in that direction. It’s 2017 now, and Java is showing its age.” According to Roberts, Java was intended early on as “the language of the Internet”. But now, more than a decade after the transition to Java, Javascript has taken its place as a web language.

Source: CS department updates introductory courses | Stanford Daily

ADDENDUM: As you see from Nick Parlante’s comment below, the JavaScript version is only an experiment.  From people I’ve talked to at Stanford, and from how I read the article quoted above (“more than a decade after the transition to Java, Javascript has taken its place”), I believe that Stanford is ending Java in CS106.  I’m leaving the title as-is for now. I’ve offered to Marty Stepp that if CS106 is still predominantly Java in one year, I will post a new blog post admitting that I was wrong.  Someone remind me in April 2018, please.

Share this:

  • Email
  • Reddit
  • Facebook
  • Print
  • Twitter
  • Google
  • LinkedIn
  • More
  • Pinterest
  • Tumblr

Entry filed under: Uncategorized . Tags: computing education , Java , programming languages , Python .

Google seeking input on next directions in CS Education Research ACM TURC 2017: Come see Amber, Dan, and me in China

36 Comments Add your own

  • 1.


    Leland  |  April 21, 2017 at 8:00 am

    I think the headline is a bit misleading. Java is not gone from Stanford’s huge intro course CS106A and C and C++ are not gone from CS106B or CS 107. Looks like they are experimenting with a pilot version CS106J that uses Javascript.


    Reply

  • 2.


    Neil  |  April 21, 2017 at 12:20 pm

    I think a lot of ECE programs still do intro courses in C/C++, since that is the most common language for embedded systems etc. Another interesting analysis would be imperative/functional/(whatever JS is)


    Reply

  • 3.


    Nick Parlante  |  April 21, 2017 at 2:09 pm

    As Leland says, the javascript version is an experiment by Eric Roberts. I’m also building an experimental version rolling out 2017-18. My version emphasizes Codingbat-style autograding materials (which will be freely available). I’m interested in an approach that works well for Python or Java or any language.

    -Nick Parlante


    Reply

    • 4.


      rtoal  |  April 23, 2017 at 4:16 am

      So looking forward to this, Nick. Where will be announced?


      Reply

  • 5.

    Stanford CS department updates introductory courses: Java is Gone – Full-Stack Feed  |  April 21, 2017 at 4:01 pm

    […] Stanford has decided to move away from Java in their intro courses. Surprisingly, they have decided to move to JavaScript.  Philip Guo showed that most top CS departments are moving to Python.  The… Read more […]


    Reply

  • 6.


    rtoal  |  April 22, 2017 at 1:24 am

    Welcome to the JavaScript first approach! We’ve been doing things this way at LMU computer science since 2009 and have been very happy with this approach. Java, Python, C, and assembly all enter the curriculum by the end of the sophomore year, but JavaScript has always felt like the right place to start.


    Reply

    • 7.


      acbart  |  April 22, 2017 at 8:56 am

      If you don’t mind, I’d be very curious to hear what you find to be the biggest issues and advantages to using JS in your first course.


      Reply

      • 8.


        rtoal  |  April 23, 2017 at 3:46 am

        Sure. I put some thoughts here: https://gist.github.com/rtoal/046c7be95aa077a832fcd87f5b024446


        Reply

  • 9.


    dendisuhubdy  |  April 22, 2017 at 7:01 am

    Reblogged this on The Secret Guild of Silicon Valley .


    Reply

  • 10.

    Stanford CS department updates introductory courses: Java is Gone | The WordPress C(h)ronicle  |  April 22, 2017 at 10:00 am

    […] visit Computing Education Blog […]


    Reply

  • 11.


    Simon  |  April 22, 2017 at 1:02 pm

    From all language available they choose one of the worst. It will produce nothing but script kiddies with no sense of clean code or design.


    Reply

  • 12.


    Alfred Thompson  |  April 22, 2017 at 4:22 pm

    Honestly I still think the instructor is more important than the language.


    Reply

  • 13.

    Stanford is moving from using Java to JavaScript for their intro CS course – Full-Stack Feed  |  April 22, 2017 at 5:59 pm

    […] Stanford has decided to move away from Java in their intro courses. Surprisingly, they have decided to move to JavaScript.  Philip Guo showed that most top CS departments are moving to Python.  The… Read more […]


    Reply

  • 14.

    Stanford CS department updates introductory courses: Java is Gone | Artificia Intelligence  |  April 22, 2017 at 7:31 pm

    […] April 21, 2017 at 7:09 am […]


    Reply

  • 15.


    Garth  |  April 23, 2017 at 12:32 pm

    Univ of Montana has just switched from Java to Python for the intro CS major language. Second semester they go back to Java as the OOP language. My limited skill with Java does not allow me a strong opinion one way or the other. I do think doing two languages will strengthen the students.


    Reply

    • 16.


      gasstationwithoutpumps  |  April 24, 2017 at 12:16 am

      I think that starting in Python then switching to Java makes sense. Python gives you strong typing with less overhead than Java, and Java can be used afterwards to introduce static typing.

      Introducing a change to the first language is often difficult, as individual prejudices within a department can torpedo any significant changes, even (or especially) ones that would improve instruction.


      Reply

      • 17.


        Bijan Parsia  |  April 24, 2017 at 3:44 pm

        If you stay in Python you can use type annotations and mypy to introduce some manifest typing concepts. You could then move over to Cython for a bit more bare metal, enforced, and performance oriented manifest typing.

        Or you could slide over to Nim which people say feels Pythony but has manifest/static typing with performance implications.

        (I’m not opposed to swapping to Java, but smoothing the transition can help break the overstrong associations students get between particular manifestations of manifest typing and other properties.


        Reply

      • 18.


        Mark Guzdial  |  April 24, 2017 at 4:40 pm

        The last sentence did make me laugh out loud.


        Reply

  • 19.


    Brian Ray (@brianray)  |  April 24, 2017 at 3:54 pm

    https://www.linkedin.com/pulse/python-hype-survey-results-experience-any-drastic-decline-brian-ray


    Reply

  • 20.


    alfredtwo  |  April 26, 2017 at 4:33 pm

    Eric Roberts is teaching it – what are the odds it will be a failure? Probably not very good. This makes it hard to know if the language or the professor is the key to success. So much fuss over what language to use when more emphasis should probably me on who is teaching and how they do it apart from the language.


    Reply

  • 21.

    First programming language hoopla | Garths CS Education Blog  |  May 8, 2017 at 3:40 pm

    […] first language discussion is warming up again.  Universities seem to be abandoning Java for something else and the conversations start (see here and here).  Even the University of […]


    Reply

  • 22.


    Stanford has decided to move away from Java in their intro courses – ddeveloperrs blog  |  May 11, 2017 at 2:39 pm

    […] via Stanford CS department updates introductory courses: Java is Gone — Computing Education Blog […]


    Reply

  • 23.

    Riding the Whale | CR 254 | Jupiter Broadcasting  |  May 15, 2017 at 9:36 pm

    […] Stanford Boots Java for JavaScript […]


    Reply

  • 24.


    Nên học ngôn ngữ lập trình nào đầu tiên? – Trần Ngọc Minh Notes  |  May 22, 2017 at 10:14 pm

    […] lập trình nhập môn từ Java sang JavaScript. Tin tức này đã được đăng tải tại Computing Education Blog và đã khởi phát hàng trăm cuộc tranh luận trong giới chuyên gia và giảng viên […]


    Reply

  • 25.


    kenneth  |  May 31, 2017 at 6:29 am

    […] Stanford Boots Java for JavaScript […] So much fuss over what language to use when more emphasis should probably me on who is teaching and how they do it apart from the language.


    Reply

  • 26.


    Computer  |  June 24, 2017 at 11:43 pm

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […] So much fuss over what language to use when more emphasis should probably me on who is teaching and how they do it apart from the language.


    Reply

  • 27.


    Harold’s  |  June 30, 2017 at 8:39 am

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […] So much fuss over what language to use when more emphasis should probably me on who is teaching and how they do it apart from the language. […] Stanford Boots Java for JavaScript […]


    Reply

  • 28.


    nicholasjlennox  |  July 13, 2017 at 6:11 am

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […]


    Reply

  • 29.


    markmhamann  |  July 13, 2017 at 6:19 am

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […]


    Reply

  • 30.


    jeffreydhairston  |  July 18, 2017 at 6:59 am

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […]


    Reply

  • 31.


    gumersindo  |  August 1, 2017 at 10:42 am

    I think that starting in Python then switching to Java makes sense. […] Stanford Boots Java for JavaScript […] So much fuss over what language to use when more emphasis should probably me on who is teaching and how they do it apart from the language.


    Reply

  • 32.


    ardalionanguiano  |  August 10, 2017 at 8:32 am

    I think that starting in Python then switching to Java makes sense. […] Stanford Boots Java for JavaScript […]


    Reply

  • 33.


    charlesdoliver  |  August 20, 2017 at 5:11 am

    I think that starting in Python then switching to Java makes sense. […] Stanford Boots Java for JavaScript […]


    Reply

  • 34.


    toddbschlueter  |  August 30, 2017 at 7:15 am

    […] Stanford Boots Java for JavaScript […] […] Stanford Boots Java for JavaScript […]


    Reply

  • 35.


    200+ Quotes 2017 | ronatory  |  December 26, 2017 at 2:39 pm

    […] When Java came out in 1995, the computer science faculty was excited to transition to the new language. Roberts wrote the textbooks, worked with other faculty members to restructure the course and assignments and introduced Java at Stanford in 2002. “Java had stabilized,” Roberts said. “It was clear that many universities were going in that direction. It’s 2017 now, and Java is showing its age.” According to Roberts, Java was intended early on as “the language of the Internet”. But now, more than a decade after the transition to Java, Javascript has taken its place as a web language. — From Stanford CS department updates introductory courses: Java is Gone […]


    Reply

  • 36.


    Stanford is NOT switching from Java to JavaScript: I was mistaken | Computing Education Research Blog  |  February 19, 2018 at 7:01 am

    […] a blog post saying that Stanford was abandoning Java for JavaScript in their intro course (see post here).  The post was initiated by an article in the Stanford Daily. The post caused quite an uproar, […]


    Reply

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed .

Trackback this post  |  Subscribe to the comments via RSS Feed


Recent Posts

  • Join us at the University of Michigan to study Computing Education
  • US National Science Foundation increases emphasis on broadening participation in computing
  • A Guide to Teaching Computing to Adults in Informal Settings
  • In last five years, little progress in increasing the fraction of American CS BS degree recipients who are African Americans
  • High school students learning programming do better with block-based languages, and the impact is greatest for female and minority students
  • CRA Memo on Best Practices for Engaging Teaching Faculty in Research Computing Departments
  • How computing education researchers and learning scientists might better collaborate
  • Adaptive Parsons problems, and the role of SES and Gesture in learning computing: ICER 2018 Preview
  • CS educators listen to authority more than evidence: Time to move on
  • A Rawlsian Argument to provide computing education beyond MOOCs
  • We might want naive and delusional PhD students
  • Visiting NTNU in Trondheim Norway June 3-23
  • We can build new programming languages that people will teach, learn, and use: Scratch 3.0 in August
  • It Matters a Lot Who Teaches Introductory Courses if We Want Students to Continue
  • The Story of MACOS: How getting curriculum development wrong cost the nation, and how we should do it better

Top Posts & Pages

  • Confusion over the forms of programming problems: Mathematics/Physics versus CS

  • The state of the field in pre-college computer science education: Highly recommended Google report

  • Exploring the question of teaching recursion or iterative control structures first

  • The Role of Encouragement for Success in Computing Education, and how that differs by demographics

  • High school students learning programming do better with block-based languages, and the impact is greatest for female and minority students

  • Why should we teach programming (Hint: It’s not to learn problem-solving)

  • Stereotype threat and growth mindset: If we tell students intelligence is malleable, are we lying?

  • MOOCs are a fundamental misperception of how teaching works

  • Join us at the University of Michigan to study Computing Education

  • Guzdial Papers

Recent Comments

chaikens on Join us at the University of M…
orcmid on Join us at the University of M…
Join us at the Unive… on Katie Cunningham receives NSF…
Join us at the Unive… on CS Teacher Interview: Emmanuel…
Join us at the Unive… on SIGCSE 2018 Preview: Black Wom…
April 2017
MTWTFSS
« Mar   May »
 12
3 4 5 6 7 89
10 11 12 13 14 1516
17 18 19 20 21 2223
24 25 26 27 28 2930

#CS4All
ACM
Alice
APCS
assessment
BPC
broadening participation in computing
CE21
Code.org
cognitive science
computational literacy
computational media
computational thinking
computer science education
computing education
computing education research
computing for all
computing for everyone
contextualized computing education
CS1
CS10K
CS:Principles
CSEd Week
CSLearning4U
CSTA
curriculum
distance education
ebooks
ECEP
economics
educational psychology
educational technology
education research
end-user programming
engineering education
GaComputes
graduate education
higher education
high school
high school CS
ICER
image of computer science
image of computing
Java
jobs
K-12
K12
learning science
learning sciences
live coding
Logo
MediaComp
Media Computation
MOOCopalypse
MOOCs
NCWIT
NSF
peer instruction
perception of university
programming
programming languages
public policy
Python
robots
science education
Scratch
SIGCSE
STEM
teachers
teaching
undergraduate
undergraduate education
undergraduate enrollment
undergraduates
women in computing

Feeds

  • Entries (RSS)
  • Comments (RSS)

ComputingEd RSS

  • RSS – Posts
  • RSS – Comments

Blog Stats

  • 1,545,526 hits

CS Teaching Tips

csteachingtips.org

Browse More Teaching Tips


Blog at WordPress.com.

%d bloggers like this:

    MIT OpenCourseWare, Massachusetts Institute of Technology
    An icon depicting an envelope.Subscribe to the OCW Newsletter Click to visit our Facebook page. Click to visit our Twitter feed. Click to visit our YouTube page. Click to visit our blog on WordPress.
     

    Search Tips



    Exclude words from your search

    Put – in front of a word you want to leave out. For example, jaguar speed -car

    Search for an exact match

    Put a word or phrase inside quotes. For example, “tallest building”.

    Search for wildcards or unknown words

    Put a * in your word or phrase where you want to leave a placeholder. For example, “largest * in the world”.

    Search within a range of numbers

    Put .. between two numbers. For example, camera $50..$100.

    Combine searches

    Put “OR” between each search query. For example, marathon OR race.

    Introduction to Programming in Java

    A set of two images based on a small cup. Primitives fit into the cup, and objects don't.

    Primitives and references are discussed in lecture 4, which introduces object oriented programming. (Figure by the course instructors.)

    Instructor(s)

    MIT Course Number

    6.092

    As Taught In

    January IAP 2010

    Level

    Undergraduate


    Cite This Course

    Need help getting started?
    Don’t show me this again

    Don’t show me this again

    Welcome!

    This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.

    MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.

    No enrollment or registration. Freely browse and use OCW materials at your own pace. There’s no signup, and no start or end dates.

    Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don’t offer credit or certification for using OCW.

    Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)

    Learn more at Get Started with MIT OpenCourseWare

    Course Description

    Course Features

    • Lecture notes
    • Assignments: programming (no examples)

    Course Description

    This course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems.

    The course is designed for students with some programming experience, but if you have none and are motivated you will do fine. Students who have taken 6.005 should not take this course. Each class is composed of one hour of lecture and one hour of assisted lab work.

    This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month.

    Other Versions

    Other OCW Versions

    Archived versions: Question_avt logo

    • 6.092 Introduction to Software Engineering in Java (January IAP 2009)
    • 6.092 Introduction to Software Engineering in Java (January IAP 2008)

    Related Content

    Course Collections

    See related courses in the following collections:

    Cross-Disciplinary Lists

    • Introductory Programming Courses

    Find Courses by Topic

    • Computer Science > Programming Languages
    • Computer Science > Software Design and Engineering

    Evan Jones, Adam Marcus, and Eugene Wu. 6.092 Introduction to Programming in Java. January IAP 2010. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu . License: Creative Commons BY-NC-SA .

    For more information about using these materials and the Creative Commons license, see our Terms of Use .

    Close

    You are being redirected .