Sean Strout Headshot

Sean Strout

Principal Lecturer
Department of Computer Science
Golisano College of Computing and Information Sciences

585-475-4599
Office Location

Sean Strout

Principal Lecturer
Department of Computer Science
Golisano College of Computing and Information Sciences

Education

BS in Computer Science, Rochester Insititute of Technology; MS in Computer Science, Rochester Insititute of Technology

585-475-4599

Currently Teaching

CSCI-242
4 Credits
This course serves as a means of bringing transfer students with some programming and data structures background to the same skill level that the computer science program's first year students have after completing CSCI 141 and 142. Problem solving skills and the choice and application of appropriate algorithms and data structures are at the core of the course. Assignments (both in class and for homework) requiring a design and an implementation are an integral part of the course. Larger programming projects are also required.
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.
CSCI-140
4 Credits
This accelerated course covers material from the first-year sequence of courses and provides the foundation for all subsequent Computer Science courses. The course stresses problem solving while covering modern software development techniques and introducing essential software tools. Topics include 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. Note: Requires department permission for registration.
CSCI-641
3 Credits
The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class. The instructor will post specifics prior to registration. With the approval of the program coordinator, the course can be taken for credit more than once, provided each instance deals with a different paradigm and language. A term project involving independent investigation is also required. Note: students who complete CSCI-541 may not take CSCI-641 for credit.
CSCI-541
3 Credits
The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class. The instructor will post specifics prior to registration. With the approval of the program coordinator, the course can be taken for credit more than once, provided each instance deals with a different paradigm and language.