• Home
  • Resume
  • About
    • Kenneth (Kenny) Mui photo

      Kenneth (Kenny) Mui

      Hi there! Feel free to email me if you want to talk. I will try to respond within 24 hours :)

    • Learn More
    • Email
    • LinkedIn
    • Github
    • Devpost
  • Projects
  • Posts
    • All Posts
    • All Tags
  • Courses

Best Programming Language and IDE to Teach CS

13 Mar 2020

Reading time ~4 minutes

Which programming language(s) should universities teach, and which integrated development environment (IDE) should they use?

At most universities, this is an ongoing debate. Currently, UW-Madison teaches its students Java in three introductory courses and encourages the use of Eclipse as an IDE. With languages like Python, JavaScript, and C++, it can be challenging to choose the right programming language to teach students. I believe that Java is still the best programming language to teach students while using Eclipse as an IDE.

Is there one programming language universities should teach?

Java is the best programming language to teach because it is used in many fields of study, a large community supports it, and it introduces programmers to low-level concepts without being too abstract. When someone learns Java as a first language, it allows them to have lots of flexibility when they move into the professional workplace. Although fields like data science might use Python, it is easier to switch from Java to Python since Python does not deal with any brackets, data type declarations, and it has more semantic meaning. Likewise, web developers might use JavaScript or PHP. Both of these languages are very similar to Java and won’t take an experienced Java developer much time to transition. However, there are many fields that primarily use Java such as stock trading, insurance, and mobile development. Furthermore, there is a large community surrounding Java. Seeking help through websites like StackOverflow is very easy since Java is one of the top languages that users ask questions about. Having a large community of users is essential for new programmers since they might run into errors they have never seen before. Also, just like Python Tutor, there’s an online tool available for Java users to visualize their code. According to “Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education,” this tool is beneficial for both professors and students. Professors can use this tool to help demonstrate the structure of programs using computers instead of drawing it out. In addition, students can use this tool as a study aid to help them debug their programs and visualize the execution of tricky code snippets. Java Visualizer was used heavily in my first computer science class at UW-Madison in lectures and labs, which helped me solidify fundamental topics in computer science. For example, Java Visualizer helped me understand how the stack and heap are separate from each other and connected by pointers. Using Java, users don’t have to worry about implementing any pointers or allocating/freeing any blocks of memory. Even when I am tutoring in the Computer Science Learning Center, I often use Java Visualizer to help explain concepts like linked lists. Overall, Java is great for teaching the core fundamentals of programming, and it is still used heavily in the real world.

What is the best IDE for beginners?

Eclipse should be used over other IDEs such as BlueJ because of its sophisticated debugger, code completion, and error detection. Some people might say that the Eclipse debugger is too complicated for beginners. However, I believe that after learning how to use Java Visualizer, it’s much easier to learn Eclipse’s debugger. With Eclipe’s debugger, programmers can choose to go into method calls or simply skip over them. While there are many options available to users in Eclipse, most users will only need to know where the run and debug buttons are. Furthermore, some people might say that Eclipse is not beginner-friendly because it does not visualize the hierarchy of classes, allow users to instantiate objects using a GUI, and separate code segments with colors. From what I have noticed, many programs at UW-Madison require many files and classes. Therefore, the BlueJ class hierarchy would get very cluttered on small screens. The other two benefits of BlueJ would be helpful to have, but I believe that Eclipse’s sophisticated autocompletion and error detection will be more beneficial for beginners. When programmers have compiler errors in Eclipse, the IDE will present the user with solutions that can be integrated with just one click, which saves programmers lots of time. Also, users can easily see which methods and variables an object has access to by typing “.” after an object or string. Although Eclipse’s IDE is not the most beginner-friendly IDE in terms of visualization and complexity, it will save even beginner programmers lots of time in the long-run.

My own experiences

My experiences as a student at UW-Madison and tutor in the Computer Science Learning Center has led me to believe that Java and Eclipse is the right combination as of now. In my personal experience, I found it challenging to transition from Python to Java because of the use of brackets and declaration of variable types. As a result, I think that it is easier for people to start learning how to program in Java and then branch out to other languages such as C or Python. With countless resources for Java and IDEs like Eclipse, universities like UW-Madison should not change their current curriculum just yet.



Educational Share Tweet +1