|
 |
 |
 |
Carnegie Mellon develops Java programming tools employing human-centered design techniques
June 18, 2009
PITTSBURGH-Researchers at Carnegie Mellon University's School of Computer Science have developed two new tools to help computer programmers select from among thousands of options within the application programming interfaces (APIs) that are used to write applications in Java, today's most popular programming language. The tools - Jadeite (www.cs.cmu.edu/~jadeite) and Apatite (www.cs.cmu.edu/~apatite) - take advantage of human-centered design techniques to significantly reduce the time and guesswork associated with finding the right classes and methods of APIs. APIs are standardized methods that a Java program uses to ask the computer's operating system or another program to do something, such as opening a file or sending an email. Choosing APIs for accomplishing a given task is at the heart of Java programming, but is not intuitive, said Brad A. Myers, professor of human-computer interaction. With more than 35,000 methods listed in 4,100 classes in the current Javadoc library of APIs - and more being added in every new version - not even the savviest developer can hope to be familiar with them all. "This is a fundamental problem for all programmers, whether they are novices, professionals or the growing number of end-users who just need to modify a Web page," Myers said. "It's possible to design APIs so that they are easier to use, but that still leaves thousands of existing APIs that are hard to use but essential for Java programming. Jadeite and Apatite help programmers find what they need among those existing APIs." Jadeite (Java Documentation with Extra Information Tacked-on for Emphasis) improves usability by enhancing the existing Javadoc documentation. For instance, Jadeite displays the names of API classes in font sizes that correspond with how heavily used they are based on Google searches, helping programmers navigate past little-used classes. The commonly used "PrintWriter" is in large, prominent letters, while the lesser used "PrintEvent" is in smaller type. Jadeite also uses crowd-sourcing to compensate for the fact that an API sometimes doesn't include methods that programmers expect. For instance, the Message and MimeMessage classes don't include a method for sending an email message. So Jadeite allows users to put so-called placeholders for these expected classes and methods within the alphabetical listing of APIs. Users can edit the placeholder to guide programmers to the actual location of the desired method, explain why a desired method is not part of the API, or note that a desired functionality is impossible. Finding the way to create certain types of objects, such as SSL sockets that enable secure Internet communications, may not be obvious to programmers the first time they encounter these objects. In these cases, Jadeite includes examples of the most popular code used by programmers to create these objects, allowing the user to learn from the examples. User studies showed that programmers could perform common tasks about three times faster with Jadeite than with the standard Javadoc documentation. Apatite (Associative Perusal of APIs That Identifies Targets Easily) takes a different approach, allowing programmers to browse APIs by association, seeing which packages, classes and methods tend to go with each other. It also uses statistics about the popularity of each item to provide weighted views of the most relevant items, listing them in larger fonts. Both Jadeite and Apatite remain research tools, Myers said, but are available for public use. Broader use of the tools will enhance the crowd-sourcing aspects of the tools, while giving the researchers important feedback about how the tools can be improved. Research by Jeffrey Stylos, who was awarded a Ph.D. in computer science this spring, underlies both Jadeite and Apatite. Besides Myers, research programmer Andrew Faulring and undergraduate computer science student Zizhuang Yang contributed to the development of Jadeite and computer science undergraduate Daniel S. Eisenberg led the implementation of Apatite. Eisenberg's work on Apatite earned first place in the Yahoo! Undergraduate Research Awards competition at Carnegie Mellon this spring. Carnegie Mellon University

|
Effective Java (2nd Edition)
by Joshua Bloch (Author)
Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day. This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing. Each chapter in the book consists of several “items”...
|

|
Head First Java, 2nd Edition
by Kathy Sierra (Author), Bert Bates (Author), Bert Bates (Author)
Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study.
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in...
|

|
Sams Teach Yourself Java in 24 Hours (Covering Java 7 and Android) (6th Edition) (Sams Teach Yourself in 24 Hours)
by Rogers Cadenhead (Author)
Sams Teach Yourself Java™ in 24 Hours, Sixth Edition Rogers Cadenhead Covers Java 7 and Android In just 24 lessons of one hour or less, you can learn how to create Java applications with the free NetBeans visual editing tools. Using a straightforward, step-by-step approach, popular author Rogers Cadenhead helps you master the skills and technology you need to create desktop and web programs, web services, and even an Android app in Java. Each lesson builds on what you’ve already learned, giving you a rock-solid foundation for real-world success. Full-color figures and clear step-by-step instructions visually show you how to program with Java. Quizzes and Exercises at the end of each chapter help you test your knowledge. Notes, Tips, and...
|

|
Java, A Beginner's Guide, 5th Edition
by Herbert Schildt (Author)
Essential Skills--Made Easy! Learn the fundamentals of Java programming in no time from bestselling programming author Herb Schildt. Fully updated to cover Java Platform, Standard Edition 7 (Java SE 7), Java: A Beginner's Guide, Fifth Edition starts with the basics, such as how to compile and run a Java program, and then discusses the keywords, syntax, and constructs that form the core of the Java language. You'll also find coverage of some of Java's most advanced features, including multithreaded programming and generics. An introduction to Swing concludes the book. Get started programming in Java right away with help from this fast-paced tutorial. Designed for Easy Learning: Key Skills & Concepts--Chapter-opening lists of specific skills covered in the chapter Ask...
|

|
Java The Complete Reference, 8th Edition
by Herbert Schildt (Author)
The Definitive Java Programming Guide In Java: The Complete Reference, Eighth Edition, bestselling programming author Herb Schildt shows you everything you need to develop, compile, debug, and run Java programs. Updated for Java Platform, Standard Edition 7 (Java SE 7), this comprehensive volume covers the entire Java language, including its syntax, keywords, and fundamental programming principles. You'll also find information on key elements of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. In addition, new Java SE 7 features such as try-with-resources, strings in switch, type inference with the diamond operator, NIO.2, and the Fork/Join Framework are discussed in detail. Coverage includes: ...
|

|
Java For Dummies
by Barry Burd (Author)
The top-selling beginning Java book is now fully updated for Java 7!Java is the platform-independent, object-oriented programming language used for developing web and mobile applications. The revised version offers new functionality and features that have programmers excited, and this popular guide covers them all. This book helps programmers create basic Java objects and learn when they can reuse existing code. It's just what inexperienced Java developers need to get going quickly with Java 2 Standard Edition 7.0 (J2SE 7.0) and Java Development Kit 7.0 (JDK 7). Explores how the new version of Java offers more robust functionality and new features such as closures to keep Java competitive with more syntax-friendly languages like Python and Ruby Covers object-oriented programming basics...
|

|
Introduction to Java Programming, Comprehensive (8th Edition)
by Y. Daniel Liang (Author)
Introduction to Java Programming, Comprehensive, 8e, features comprehensive coverage ideal for a one-, two-, or three-semester CS1 course sequence. Regardless of major, students will be able to grasp concepts of problem-solving and programming — thanks to Liang’s fundamentals-first approach, students learn critical problem solving skills and core constructs before object-oriented programming. Liang’s approach has been extended to application-rich programming examples, which go beyond the traditional math-based problems found in most texts. Students are introduced to topics like control statements, methods, and arrays before learning to create classes. Later chapters introduce advanced topics including graphical user interface, exception handling, I/O, and data structures....
|

|
Beginning Programming with Java For Dummies
by Barry Burd (Author)
One of the most popular beginning programming books, now fully updated Java is a popular language for beginning programmers, and earlier editions of this fun and friendly guide have helped thousands get started. Now fully revised to cover recent updates for Java 7.0, Beginning Programming with Java For Dummies, 3rd Edition is certain to put more first-time programmers and Java beginners on the road to Java mastery.Explores what goes into creating a program, putting the pieces together, dealing with standard programming challenges, debugging, and making the program work Offers new options for tools and techniques used in Java developmentProvides valuable information and examples for the would-be programmer with no Java experienceAll examples are updated to reflect the latest changes in...
|

|
Learn to Program with Java
by John Smiley (Author)
More than 100,000 programmers owe their careers to Professor John Smiley. In this unique guide, the guru himself will teach you, in a classroom setting, how to program in Java. Learn from more than 100 questions and answers as well as real-world programming projects.
|

|
Building Java Programs: A Back to Basics Approach (2nd Edition)
by Stuart Reges (Author), Marty Stepp (Author)
Building Java Programs: A Back to Basics Approach, Second Edition, introduces novice programmers to basic constructs and common pitfalls by emphasizing the essentials of procedural programming, problem solving, and algorithmic reasoning. By using objects early to solve interesting problems and defining objects later in the course, Building Java Programs develops programming knowledge for a broad audience.
|
|