# Courses

# COMP1400

**Raptor** is used by COMP1400. It is available on all the machines in computer science labs. Also can be used remotely using NoMachine Client.

Students can download the tool on their machines([Raptor](https://raptor.martincarlisle.com/ "Raptor")).

RAPTOR is a flowchart-based programming environment, designed specifically to help students visualize their algorithms and avoid syntactic baggage. RAPTOR programs are created visually and executed visually by tracing the execution through the flowchart. Required syntax is kept to a minimum. Students prefer using flowcharts to express their algorithms and are more successful in creating algorithms using RAPTOR than using a traditional language or writing flowcharts without [Raptor](https://raptor.martincarlisle.com/ "Raptor").

#### How to access Delta and using NoMachine Client

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/image.png)

RAPTOR Avalonia Edition runs on MAC and Linux, More information is available on the landing page of the RAPTOR website.

# New Page



# COMP 3150



# COMP 3670/4670/8677



# COMP 2057 Prof. David Mayo

Before connecting to the server, please ensure that you have access to Computer Science resources.

Please visit

[https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca) and synchronise your password.

**Please use [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn) to connect to campus, and also use [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn) on the eduroam wifi.**

The following resource is dedicated to Prof David Mayo's class.

**Server:**  electron.cs.uwindsor.ca

Protocol to be used: **SFTP ( Secure File Transfer Protocol)**

This server only supports **the secure FTP** protocol. Please do not use FTP or SSH. This server will not provide you with a login shell even if the password is correct.

A screenshot of Filezilla on Mac

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/oCYimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/oCYimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/gt6image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/gt6image.png)

Check that I am logged on, you can see my remote site files ( I don't have any HTML files)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/kUFimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/kUFimage.png)

Command Line: sftp sanjay@electron.cs.uwindsor.ca

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/lOCimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/lOCimage.png)

**Additional information**

[https://help.cs.uwindsor.ca/books/cs-help/page/filezilla](https://help.cs.uwindsor.ca/books/cs-help/page/filezilla)

# COMP 3400

To run nvhpc on Delta

export PATH=/opt/nvidia/hpc\_sdk/Linux\_x86\_64/25.11/compilers/bin:$PATH  
export PATH=/opt/nvidia/hpc\_sdk/Linux\_x86\_64/24.3/comm\_libs/mpi/bin:$PATH

Compile your code

Thanks to Prof. Paul Preney for the test code vecadd.cpp

```c++
// This program is very simple. Set size in main to be a large number if
// needed.
// vecadd.cpp

#include <cstddef>
#include <iostream>
#include <vector>
#include <numeric> // For iota
#include <algorithm> // For transform
#include <execution> // For parallel execution policies

void check(std::ostream& os, auto const& value, auto const& should_be_value)
{
  if (value == should_be_value)
    os << "OKAY";
  else
    os << "NOT_OKAY";
}

int main()
{
  using namespace std;

  size_t const size{ 1'000'000ULL};

  vector<int> a(size);
  vector<int> b(size);
  vector<int> result(size);

  iota(a.begin(), a.end(), 0); // a = {0, 1, 2, ...}
  iota(b.begin(), b.end(), size); // b = {size, size+1, ...}

  transform(execution::par_unseq,
    a.begin(), a.end(),
    b.begin(),
    result.begin(),
    [](int x, int y) { return x + y; }
  );

  // Verify a few elements (optional)
  cout << "result[0]: " << result[0] << ' '; check(cout,result[0],size); cout << '\n';
  cout << "result[1]: " << result[1] << ' '; check(cout,result[1],size+2); cout << '\n';
  cout << "result[size-1]: " << result[size-1] << ' '; check(cout,result[size-1],size-1+size*2-1); cout << '\n';
}
```

MakeFile

```bash
Makefile
CXXFLAGS=-O3

NVHPC_CXX=nvc++
NVHPC_CXXFLAGS=$(CXXFLAGS) --c++20 -stdpar=gpu
NVHPC_LDFLAGS=$(LDFLAGS)

GCC_CXX=g++
GCC_CXXFLAGS=$(CXXFLAGS) -std=c++20
GCC_LDFLAGS=$(LDFLAGS) -ltbb

all: vecadd-nvhpc.exe vecadd-gcc.exe

clean:
	rm *.exe

run: vecadd-gcc.exe vecadd-nvhpc.exe
	echo "Running vecadd-gcc.exe..."
	bash -c 'time ./vecadd-gcc.exe'
	echo -e "\n\n\n"
	echo "Running vecadd-nvhpc.exe..."
	bash -c 'time ./vecadd-nvhpc.exe'

%-nvhpc.exe : %.cpp
	$(NVHPC_CXX) $(NVHPC_CXXFLAGS) -o $@ $< $(NVHPC_LDFLAGS)

%-gcc.exe : %.cpp
	$(GCC_CXX) $(GCC_CXXFLAGS) -o $@ $< $(GCC_LDFLAGS)
```

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-01/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-01/image.png)