James Heliotis Headshot

James Heliotis

Professor
Department of Computer Science
Golisano College of Computing and Information Sciences

585-475-6133
Office Hours
Mon 13:00 Tue 14:00 Thu 14:00
Office Location
Office Mailing Address
Computer Science Department Rochester Institute of Technology 102 Lomb Memorial Drive Rochester NY 14623-56

James Heliotis

Professor
Department of Computer Science
Golisano College of Computing and Information Sciences

Education

BS in Engineering, Cornell University; MEng in Electrical Engineering, Cornell University; Ph.D. in Computer Science, University of Rochester

Bio

James Heliotis received his Bachelor of Science and Master of Engineering in Electrical Engineering degrees from Cornell University in 1975 and 1976. After a few years as an engineer and real-time systems programmer at Xerox Corporation, he returned to academia and received his Ph.D. in Computer Science from the University of Rochester in 1984.

Since 1983 he has taught in the Department of Computer Science at the Rochester Institute of Technology, with teaching assignments in the department of Software Engineering as well. He currently holds the rank of Full Professor.

Dr. Heliotis has also done software development training and consulting for several companies in the Rochester area, including Xerox, Kodak, Tropel, Frontier, Heidelberg, and ITT.

His interests are in computing education as well as object technology, software engineering, software development tools, real-time systems, and aspect-oriented software.

585-475-6133

Areas of Expertise
Computer Science Education
Software Development Tools
Programming Languages
Software Design

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-344
3 Credits
This course is a study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design and implementation. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be 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-746
3 Credits
This course investigates and evaluates various software tools used in the development of software. Topics include simple dependency-based tools such as make and ant as well as full-featured integrated development environments. Working with and proposing modeling languages for such tools is an important part of the course. Programming projects will be required.

Select Scholarship

Published Conference Proceedings
Heliotis, James. "A Python Helper Class for Beginning Data Structures." Proceedings of the 31st Annual Regional Conference of the Consortium for Computing Science in Colleges, Eastern Region. Ed. Vincent Cicirello and Aakash Taneja. Stockton, NJ: n.p., Print.
Invited Keynote/Presentation
Heliotis, James, Ivona Bezakova, and Sean Strout. "Programming Board Game Strategies in CS2." Frontiers in Education 2013. IEEE Computer Society, ASEE, IEEE. Oklahoma City, OK. 23 Oct. 2013. Conference Presentation.