Bruce Herring Headshot

Bruce Herring

Lecturer
Department of Software Engineering
Golisano College of Computing and Information Sciences

Bruce Herring

Lecturer
Department of Software Engineering
Golisano College of Computing and Information Sciences

Education

BS, MS Florida State University

Currently Teaching

CSCI-141
4 Credits
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
CSCI-142
4 Credits
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
SWEN-220
3 Credits
An introduction to the use of mathematics to model software as part of the software process. Included will be models of software structure and functionality, concurrent and distributed computation, and structured data.
SWEN-261
3 Credits
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class.
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.
SWEN-563
3 Credits
This course provides a general introduction to real-time and embedded systems. It will introduce a representative family of microcontrollers and require students to program on these devices. Fundamental material on real-time operating systems, such as requirements specification, scheduling algorithms and priority inversion avoidance will be presented. The features of a commercial real-time operating system will be discussed and used for course projects.
CMPE-663
3 Credits
This first course in a graduate elective sequence will begin by presenting a general road map of real-time and embedded systems. The course will be conducted in a studio class/lab format with lecture material interspersed with laboratory work. This course will introduce a representative family of microcontrollers that will exemplify unique positive features as well as limitations of microcontrollers in embedded and real-time systems. These microcontrollers will then be used as external, independent performance monitors of more complex real-time systems. The majority of the course will present material on a commercial real-time operating system and using it for programming projects on development systems and embedded target systems. Some fundamental material on real-time operating systems and multiprocessor considerations for real-time systems will also be presented. Examples include scheduling algorithms, priority inversion, and hardware-software co-design.
EEEE-663
3 Credits
This first course in a graduate elective sequence will begin by presenting a general road map of real-time and embedded systems. The course will be conducted in a studio class/lab format with lecture material interspersed with laboratory work. This course will introduce a representative family of microcontrollers that will exemplify unique positive features as well as limitations of microcontrollers in embedded and real-time systems. These microcontrollers will then be used as external, independent performance monitors of more complex real-time systems. The majority of the course will present material on a commercial real-time operating system and using it for programming projects on development systems and embedded target systems. Some fundamental material on real-time operating systems and multiprocessor considerations for real-time systems will also be presented. Examples include scheduling algorithms, priority inversion, and hardware-software co-design.

Latest News

  • June 3, 2019

    Graphic of GenCyber logo with 0s and 1s circling a globe.

    RIT hosts NSA-funded summer camps for teenagers to learn cybersecurity

    RIT is helping the area’s sharpest young minds gain an interest in cybersecurity careers through free summer programs for middle and high school students. The Co-ed RIT GenCyber camp will be held July 8–12, while the RIT GenCyber for Girls camp will be held July 22–26.