Thomas Maszerowski Headshot

Thomas Maszerowski

Visiting Lecturer

Department of Software Engineering
Golisano College of Computing and Information Sciences

Thomas Maszerowski

Visiting Lecturer

Department of Software Engineering
Golisano College of Computing and Information Sciences

Currently Teaching

GCIS-123
4 Credits
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments.
GCIS-124
4 Credits
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security.
GCIS-127
4 Credits
This accelerated course covers material from the first-year sequence of computing courses and provides the theoretical and practical foundation for all subsequent computing courses that require software development. The course stresses problem solving while covering modern software models, and theoretical approaches. Concepts of object-oriented design are a large part of the course including theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expertise, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. The abstract nature of objects is discussed in several domains.
SWEN-262
3 Credits
An introduction to the principles of the foundations of contemporary software design. Topics include software subsystem modeling, design patterns, design tradeoffs, and component-based software development, with a focus on application of these concepts to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed.
SWEN-561
3 Credits
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll.
SWEN-562
3 Credits
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience.