CS2173 Java as a Second Language

A first course in Java for students experienced in another programming language. Students learn to implement problem solutions using the procedural and object-oriented language features of Java. Topics include: program structures and environment, arrays, exceptions, constructors and finalizers, class extension, visibility and casting, overriding vs overloading, abstract classes and interfaces, files and streams, class loaders, threads and sockets. Programming projects provide students the opportunity to implement techniques covered in class.


Recent completion of the complete series in another programming language course, or programming experience in another programming language.

Lecture Hours


Lab Hours


Course Learning Outcomes

  • Learn the syntax and structure of Java programming, including variables, control structures, loops, and data types. They will be able to read and write Java code effectively.
  • Understand and apply object-oriented programming concepts such as classes, objects, inheritance, polymorphism, encapsulation, and abstraction. They will be able to design and implement software using OOP principles.
  • Become proficient in using an IDE (NetBeans) for Java development. This includes writing, debugging, and testing Java applications within the IDE.
  • Understand UML (Unified Modeling Language) class diagrams and use them for software design. They will learn how to translate UML class diagrams into Java code.
  • Understand how to handle exceptions and errors in Java programs, ensuring robust and error-free code. They will also learn file input/output operations in Java, enabling them to read from and write to files.
  • Gain familiarity with the Java standard libraries, using them to add functionality such as collections, data structures, and utilities in their programs.
  • Understand the basics of multithreading in Java, enabling them to write programs that can perform multiple tasks simultaneously.
  • Learn the basics of creating graphical user interfaces (GUIs) in Java using Swing. They will be able to build user-friendly applications with interactive elements.