Amal Chaaben Headshot

Amal Chaaben

Lecturer

Department of Computer Science
Golisano College of Computing and Information Sciences

Amal Chaaben

Lecturer

Department of Computer Science
Golisano College of Computing and Information Sciences

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.
CSCI-605
3 Credits
This course focuses on identifying advanced object-oriented programming concepts and implementing them in the context of specific problems. This course covers advanced concepts such as event-driven programming, design patterns, distributed and concurrent programming, and the use, design and implementation of applications. Assignments (both in class and as homework) requiring a solution to a problem and an implementation in code are an integral part of the course. Note: This course serves as a bridge course for graduate students and cannot be taken by undergraduate students without permission from the CS Undergraduate Program Coordinator.
SWEN-601
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.

In the News

  • March 17, 2023

    RIT students Mohammed Raeesul Irfan Riaz Ahmed, Eric Karschner, and Quinn Tucker

    CS@RIT hosts regional programming competition

    CS@RIT recently hosted regional competitors of the International Collegiate Programming Contest (ICPC), with 84 registered teams from 19 universities competing. The top four universities will advance to the North America Championship, from which the top teams will advance to the World Finals. Two RIT teams performed well, placing 13th and 17th overall. The contest involves teams of up to three students solving problems within five hours, using a single computer.