Robert St Jacques
Principal Lecturer, Software Engineering
Department of Software Engineering
Golisano College of Computing and Information Sciences
Robert St Jacques
Principal Lecturer, Software Engineering
Department of Software Engineering
Golisano College of Computing and Information Sciences
Education
BS, MS, Rochester Institute of Technology
Currently Teaching
GCIS-127
Software Development for Transfers
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
Engineering of Software Subsystems
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 (including AI-assistance) to concrete design problems. The relationship between design and related process issues such as testing, estimation, and maintenance are also discussed.
SWEN-440
Software System Requirements and Architecture
3 Credits
Principles and practices related to identifying software system stakeholders, eliciting functional and quality requirements, translating requirements into architectural structures, and analyzing candidate architectures with respect to the requirements.
SWEN-514
Engineering Cloud Software Systems
3 Credits
The course focuses on designing and implementing applications using cloud software systems infrastructure and technologies. The course introduces the basic concepts and knowledge on cloud computing systems and application infrastructure. It also briefly introduces key technologies and paradigms related to developing big data applications in the cloud. The course contains a set of related topics which are covered via hands-on class instruction, application development in teams, course materials, and class discussions. Programming projects and demo presentations are required.
SWEN-601
Software Construction
3 Credits
This is a programming based course to enhance individual, technical engineering knowledge and skills as preparation for masters level graduate work in computing. Students will be introduced to programming language syntax, object oriented concepts, data structures and foundational algorithms. An emphasis will be placed on obtaining practical programming skills, through regular programming assignments and practicum.
SWEN-783
Software Engineering Masters Project I
3 Credits
The first course in a two-course project experience. Students will need to determine, before they take the course, whether they will complete a thesis or a practical project. Students that choose thesis will work with an advisor (called a sponsor) to complete a scientific research study that results in a complete Master’s Thesis. Thesis project details will be determined by the student and their advisor. Students that choose the practical project will preferably work in a group to develop solutions to problems posed by either internal or external customers (also called sponsors). The size of the group may vary, and while a group is preferred, exceptions may be made to allow for one-person projects. The project may require considerable software development or evolution and maintenance of existing software products, and culminates with the completion and presentation of the first major increment of the project solution. Projects will be solicited by the department prior to students selecting (or being assigned to) the project that they will work on for the capstone. Sponsors may be internal or external to the software engineering department; they may be members of other departments, other colleges, other universities, or they may be industry professionals. The primary requirement for sponsors is that the sponsor be an expert in their field.
In the News
-
February 17, 2026
Honing résumés and mock interviews pave the way to co-ops
Muhammad Rafikov, a second-year computer science student, is heading to the Spring University-Wide Career Fair on the lookout for his second co-op. During this search, he plans to bring along everything he learned from his first internship last summer at Google.