Course Catalog URL
Identifier
COMS 2270
Professor(s)
Last Updated: Spring 2025
Offered during Fall and Spring Semesters each year.
- Credits and contact hours: 3 credits
- Instructor's or course coordinator's name: Ambrose Laing, Matthew Tancreti
- Text book, title, author, and year: Big Java, 6th edition by Cay Horstmann or Java Concepts (Early Objects), 7th/8th edition by Cay Horstmann
- Other supplemental materials: None
Specific Course Information
- Brief description of the content of the course: Computer programming using objects as the mechanism for modularity, abstraction, and code reuse. Instance variables, methods, and encapsulation. Review of control structures for conditionals and iteration. Developing algorithms on strings, arrays, and lists. Recursion, searching, and sorting. Text parsing and file I/O. Interfaces, inheritance, polymorphism, and abstract classes. Exception handling. Tools for unit testing and debugging. Emphasis on a disciplined approach to specification, code development, and testing. Course intended for Com S majors. Many introductory programming courses have a similar list of topics, but cover them with less depth and with less attention to the discipline of specification and testing, and have shorter programming assignments. The main purpose of this course is to build your skill and proficiency in programming. Credit may not be applied toward graduation for both Com S 2070 and 2270.
- Prerequisites or co-requisites: COMS 1270 or SE/CPRE 1850; placement into MATH 1430 or Calculus
- Required, elective, or selected elective? Required
Specific goals for the course
- Specific outcomes of instruction: At the end of COM S 2270 the students should be able to:
- Write, debug, and document well-structured Java applications of up to 500 lines (2)
- Implement Java classes from specifications (1)
- Effectively create and use objects from predefined class libraries
- Understand the behavior of primitive data types, object references, and arrays
- Use decision and iteration control structures to implement algorithms
- Write simple recursive algorithms
- Use interfaces, inheritance, and polymorphism as programming techniques
- Use exceptions
Brief list of topics to be covered
- Managing files; using an integrated development environment
- Objects, classes, methods, fields, and constructors
- Primitive types and references
- Arithmetic expressions, String operations
- Overview of the software engineering process
- Unit testing with the JUnit framework
- Conditional statements and Boolean expressions
- Iteration
- Basic console and text file I/O
- One-and two-dimensional arrays
- Using a symbolic debugger
- Designing with interfaces
- Inheritance, polymorphism, abstract classes
- Exceptions and exception handling
- Recursion
- Searching and sorting