CSE161

Course CSE161
Title Laboratory for Computer Science A: Honors
Credits 1
Course Coordinator

Eugene Stark

Description

Must be taken concurrently with lecture component, CSE 160; a common grade for both courses will be assigned. Two and one-half hours of laboratory per week. Sessions will focus on development of pragmatic programming skills and use of programming environments and tools in a supervised setting.

Prerequisite Corequisite: CSE 160
Course Outcomes

After this course, students can :

  • Construct software modules consisting of several hundred lines of code in an object-oriented language.
  • Use programming tools such as syntax-directed editors, debuggers, documentation generators and testing frameworks.

Textbook

No required textbook

Major Topics Covered in Course
  • Objects, methods, and classes
  • Object state, mutability and immutability, object interaction
  • Accessors and mutators
  • Fields, parameters, and local variables
  • Abstraction and modularization
  • Arrays, collections, and iterators
  • Library classes, documentation, using the Javadoc documentation generator
  • Designing classes: modularity and information hiding, cohesion, coupling, refactoring
  • Programming style: naming, commenting, formatting, avoiding code repetition, using a syntax-directed editor
  • Testing and debugging: using a debugger, unit testing, regression testing, using the JUnit testing framework
  • Regular expressions and programming applications
  • Recursion
  • Inheritance, polymorphism, overloading and overriding, static and dynamic type, subtyping, dynamic method lookup
  • Abstract classes and interfaces
  • Handling errors: exceptions and handlers
  • Files and input/output, streams, readers and writers, character sets
  • Introduction to graphical user interfaces, using the Swing framework
  • Introduction to object-oriented design, using CRC cards

Laboratory Projects
Course Webpage