Skip to content Skip to navigation

Software Methodology

01:198:213

This course teaches essential principles, techniques, tools, and methods used to develop large software programs in Java. These include object-oriented programming and design, Unified Modeling Language (UML), testing and debugging, using and documenting APIs, asynchronous (event-driven) programming in a Graphical Use Interface (GUI) framework, code maintenance and version management using CVS, software development using Eclipse, introduction to building software on mobile platforms, introduction to multithreading and network programming, object persistence,

Credits: 
4
Prerequisite: 

01:198:112. Please note that courses for which a student has received a grade of D cannot be used to satisfy prerequisite requirements.

Topics: 
   - Inheritance, interfaces, abstract classes, polymorphism
   - Unified Modeling Language (UML)
   - Essential design patterns, including Singleton, Model-View-Controller (MVC),
     Template Method, State
   - Black-box unit testing, debugging, developing large applications in Eclipse
   - Object persistence, serialization
   - Code management using CVS
   - Designing and implementing GUIs using Java Swing and AWT
   - Frames, dialogs, panels, widgets, tables, layouts, colors, fonts, drawing, painting
   - The Swing MVC architecture and working with data models
   - Event handling
   - Introduction to software development on mobile platforms
   - Introduction to multithreading
   - Introduction to network programming
Expected Work: 

Regular homework assignments, team projects.

Exams: 
Final
Learning Goals: 
Computer Science majors ...
  • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
  • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
  • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).
Semester: 
Spring
Course Type: 
Undergraduate

Check the University Schedule of Classes to see if this course is open.

Request an Special Permission Number here if the class is full.