Środowisko do "wspólnego" kodowania online

2

Wygląda na to, że szykuje się kolejny semestr nauczania zdalnego - zaczynam więc poszukiwania jakiegoś dobrego narzędzia, które pomoże mi w nauczaniu podstaw programowania.

Środowisko musi wspierać C++, Java i Python byłyby miłymi dodatkami, obsługa Octave/Matlab to już byłaby pełnia szczęścia.

Zależy mi na

  • możliwości wspólnej edycji kodu "online"
  • możliwości pracy bez instalowania czegokolwiek poza przeglądarką
  • możliwości bezpośredniej kompilacji programu i uruchomienia go (bez przenoszenia do innego środowiska)

Na razie znalazłem (i potestowałem) https://repl.it/ - robi chyba więcej niż potrzebuję - jedyny potencjalny problem to przekonanie mojej "firmy" do zakupu licencji "classroom" ;)
Macie może doświadczenie z innymi podobnymi środowiskami ?

3

Najlepiej wszystkich przekonać do Githuba.

1

Tu masz jakąś szerszą listę https://www.makeuseof.com/tag/programmer-browser-ides/. Trzeba by doczytać jak to wygląda, ale może https://aws.amazon.com/cloud9/ udałoby się ograć na darmowym pakiecie z AWS (jak dobrze pamiętam to jest na rok). Albo może cos takiego https://docs.microsoft.com/pl-pl/visualstudio/liveshare/ - nie testowałem.

0

Jest jeszcze CodeAnywhere i Google Collab (to drugie nie wiem czy C++/jave wspiera ale na pewno ma jupytera)

0

@Spine
Kurs z podstaw programowania to za wcześnie na git-a (będą go u mnie mieli semestr później na projekcie z programowania obiektowego).
To też nie jest czas żeby wymagać opanowania narzędzi na najniższym możliwym poziomie.

Git - przy wszystkich swoich zaletach - nie jest dobrym narzędziem do kolaboracji z 16 osobami, pracującymi nad programami typu "hello world". Jest zbyt wiele rzeczy które można w nim zrobić źle, a 6 minut tygodniowo na osobę (tyle czasu mam "średnio" na studenta) to za mało czasu żeby rozwiązywać wszystkie problemy z nim związane (a uwierz mi, cuda jakie studenci potrafią zrobić z git-em przekraczają wszelkie wyobrażenia....).

To co jest mi potrzebne, to możliwość szybkiego "zerknięcia" studentowi na ekran i np. zwrócenia mu uwagi, że wyrażenia w pętli for rozdziela się średnikiem a nie przecinkiem ;) albo że wstawił sobie średnik po if-ie i dlatego kolejne instrukcje wykonują się zawsze a nie tylko wtedy gdy warunek jest prawdziwy. To są drobiazgi, ale na takich rzeczach początkujący potrafi się na długo "zawiesić".
Teoretycznie mogę czekać aż się zgłosi i wyśle mi swój kod, ale to jest strasznie "nieefektywne". Nie dość że zajmuje to dużo czasu, to na dodatek wielu studentów boi się powiedzieć że ma z czymś problem i prędzej skopiują działający kod od kolegi niż zapytają co jest źle u nich.

Wymóg "działania w chmurze" wynika z kolei z tego, że na początku wielu studentów ma problem z konfiguracją najprostszych rzeczy. Przy zajęciach stacjonarnych nie było większego problemu (każdy dostawał komputer z już skonfigurowanym  środowiskiem pracy). Jeśli ktoś chciał pracować na swoim komputerze to sam musiał sobie wszystko poustawiać i to był jego problem (i tak, tu też potrafiłą dziać się cuda - bo np. ktoś postanowił zrobić konfigurację na podstawie tutoriala z 1998 roku ;) ).

2

No to nie lepsze byłoby coś w rodzaju Teamsa, żeby mogli ci udostępnić swój ekran?

0

Powstało sporo tooli w oparciu o vs np https://codesandbox.io/

2
Bartłomiej Golenko napisał(a):

Wymóg "działania w chmurze" wynika z kolei z tego, że na początku wielu studentów ma problem z konfiguracją najprostszych rzeczy. Przy zajęciach stacjonarnych nie było większego problemu (każdy dostawał komputer z już skonfigurowanym  środowiskiem pracy). Jeśli ktoś chciał pracować na swoim komputerze to sam musiał sobie wszystko poustawiać i to był jego problem (i tak, tu też potrafiłą dziać się cuda - bo np. ktoś postanowił zrobić konfigurację na podstawie tutoriala z 1998 roku ;) ).

U mnie na studiach były instrukcje do laboratorium. Mniej lub bardziej szczegółowe...

Jeśli student nie potrafi wykonywać poleceń z instrukcji, to niech się nie okłamuje, że uczestnictwo w kursie coś mu da...

Może nie trzeba dokładać Githuba do kursu, ale instalacja IDE i konfiguracja projektu by nie zaszkodziła :]

0
PinkLion napisał(a):

VS Code
https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack

Przetestowałem - od strony wspólnego programowania działa to naprawdę fajnie.
Wydaje mi się jednak, że to narzędzie bardziej dla ludzi którzy sobie nawzajem bardzo ufają...
Ja do moich studentów aż takiego zaufania nie mam ;)

1

a potrzebujesz środowisko graficzne? może konta na linuxie i nano do edycji (wiem, jestem dzisiaj wredna )

0
Spine napisał(a):

U mnie na studiach były instrukcje do laboratorium. Mniej lub bardziej szczegółowe...
Jeśli student nie potrafi wykonywać poleceń z instrukcji, to niech się nie okłamuje, że uczestnictwo w kursie coś mu da...
Może nie trzeba dokładać Githuba do kursu, ale instalacja IDE i konfiguracja projektu by nie zaszkodziła :]

Jakiego IDE ? Przypominam, że moje pytanie dotyczyło środowiska pracy, które pozwoli mi łatwo monitorować to co robi grupa studentów. Napisałem dlaczego GIT się do tego nie nadaje.

VS Code, Atom czy jakiś inny edytor z możliwością kolaboracji przy edycji i możliwością podpięcia do jakiegoś kompilatora są OK, ale...
Co zrobić gdy student wykona perfekcyjnie instrukcje instalacji i konfiguracji a środowisko mu nie zadziała ? Mam pisać instrukcję uwzględniającą wszystkie możliwe patologiczne przypadki ?

2

Zrób obraz wirtualki z poprawnie zainstalowanym środowiskiem i po problemie

3
Bartłomiej Golenko napisał(a):

Co zrobić gdy student wykona perfekcyjnie instrukcje instalacji i konfiguracji a środowisko mu nie zadziała ? Mam pisać instrukcję uwzględniającą wszystkie możliwe patologiczne przypadki ?

Jeśli to nie przedszkole, czy podstawówka, to chyba najwyższy czas, żeby nauczyć się googlować błędy, albo chociaż pytać na forach...
Przesadna opieka szkodzi. Jeśli ktoś nie poradzi sobie z takimi prostymi przeciwnościami, to duma powinna ucierpieć i człowiek powinien się tym zmotywować do działania.

4
Spine napisał(a):
Bartłomiej Golenko napisał(a):

Co zrobić gdy student wykona perfekcyjnie instrukcje instalacji i konfiguracji a środowisko mu nie zadziała ? Mam pisać instrukcję uwzględniającą wszystkie możliwe patologiczne przypadki ?

Jeśli to nie przedszkole, czy podstawówka, to chyba najwyższy czas, żeby nauczyć się googlować błędy, albo chociaż pytać na forach...
Przesadna opieka szkodzi. Jeśli ktoś nie poradzi sobie z takimi prostymi przeciwnościami, to duma powinna ucierpieć i człowiek powinien się tym zmotywować do działania.

W pewnym sensie to jednak jest podstawówka - to dosłownie pierwsza styczność wielu ludzi z jakimkolwiek językiem programowania. Pozwolę się odnieść do innych Twoich wypowiedzi na forum:

Post https://4programmers.net/Forum/1696618

Po co możesz chcieć iść na studia? Żeby Cię zmusiły do robienia czegoś. Albo żeby szybciej załapać dane zagadnienia. Niestety, o ile przymus jako tako studia wywierają, to w przypadku tempa i jakości edukacji nie zaryzykowałbym pozytywnej opinii. Jeśli chcesz się czegoś nauczyć, to w większości przypadków szybciej i dokładniej nauczysz się tego na własną rękę. > Oczywiście to wymaga samodyscypliny i samokrytyki (jak się sprawdzasz jakimś testem i czegoś nie umiesz to powinieneś się tego dobrze nauczyć na "poprawkę").

Post https://4programmers.net/Forum/1696622

Tutaj oczywiście nie zgadzam się z @Spine

Jeśli chcesz się czegoś nauczyć, to w większości przypadków szybciej i dokładniej nauczysz się tego na własną rękę.

Wręcz śmiem twierdzić, że ucząc się samemu posiadana wiedza może być niespójna, wyrywkowa w porównaniu do sensownego odpowiednika na studiach.

Jest jeszcze pytanie czy masz wystarczająco dyscypliny, bo bez tego lipa.
edytowany 8x, ostatnio: WeiXiao, 2020-07-26 02:22
Napisałem, że w większości przypadków, a Ty napisałeś to samo, tylko innymi słowami :] Sensownych odpowiedników jest mniejszość... - Spine 2020-07-26 02:59

Post https://4programmers.net/Forum/1686851

Ja bym sobie nie zawracał głowy takimi porównaniami. I tak pewnie nawet jak trafisz na dobry wydział, to niekoniecznie trafisz na dobrych prowadzących z każdego przedmiotu, bo każdy przedmiot zazwyczaj prowadzi kilka osób... Jednemu prowadzącemu brakuje godzin i sobie dorabia z przedmiotu innego niż jego specjalizacja; drugi jest po prostu leniwy; trzeci jedzie na materiałach, które kazał przygotować studentom na zaliczenie...

Wydział jest taki dobry jak uczniowie, których przyciąga. To od człowieka zależy, czego się nauczy i jak dokładnie.

Mam wrażenie, że uważasz uczelnie za kiepskie (cf. [1]), bo są np. prowadzący co się nie przykładają. Jednocześnie, mówisz prowadzącemu na uczelni co chce się przykładać, żeby od samego pierwszego kontaktu ze studentami ich olewał. Moim zdaniem to nie jest tak z edukacją, że albo będziesz tyrać samemu, albo nic nie osiągniesz. Moim zdaniem, można skończyć przyzwoicie studia, dostać dobrą pracą, jednocześnie nie zawsze być bardzo bystrym. Tutaj skazujesz studentów @Bartłomiej Golenko na właśnie taki smutny los. Czym innym jest też pokazywanie studentom każdej drobnostki, a czym innym pierwsze wprowadzenie w zagadnienie. Ja sam, gdyby ktoś mi zainstalował IDE bym zaczął programować co najmniej rok wcześniej - bo właśnie na tym początkowo poległem.

Doskonale rozumiem potrzebę prostego środowiska do kooperacyjnego programowania, które nie wymaga głupot blokujących postęp takich jak kontrola wersji, maszyny wirtualne (bardzo prosto mieć komputer, który z taką sobie nie poradzi). Sam miałem przyjemność prowadzić warsztaty niedawno, dla licealistów, gdzie ważnym elementem było programowanie. O ile samo zagadnienie o którym mówiłem było zrozumiałe, to problem był często w głupich błędach programistycznych. Ja sobie radziłem z tym tak, że środowisko wytłumaczyłem jak zainstalować, podzieliłem uczestników w grupy 2-3 osobowe, i oni w takich grupach pracowali, w razie potrzeby dzielili się ze mną ekranem (robiłem to na Discordzie), ale

  1. to było w Pythonie, z ludźmi którzy w większości już znali jakoś Pythona
  2. grupa miała ~12 osób, a nie 25
  3. zajęcia trwały łącznie 9 godzin, 3 dni po 3 godziny, a nie semestr.

Z takim podejściem, że jest scenariusz zajęć, i oprócz tego prowadzący który wyjaśnia o co tak naprawdę w nim chodzi się całkiem sprawdzał też jak ja byłem uczestnikiem zajęć, z tym że wszyscy uczestnicy mieli już jakieś obeznanie z programowaniem, i nie trzeba było im tłumaczyć niektórych podstawowych kwestii. Tak więc podsumowując, nie odzywałem się w wątku wcześniej, bo de facto nie mam rozwiązania, ale może jakieś pomysły z tych posłużą pomocą.

[1] https://4programmers.net/Forum/1692525

0

U nas MS Teams się bardzo dobrze sprawdzało w poprzednim semestrze. Nawet przy kilkudziesięciu osobach nie było problemu ze stabilnością. Prowadzący na początku udostępniał swój pulpit. Jak ktoś o coś pytał, to mógł przejąć kontrolę nad udostępnionym pulpitem. Każdy także mógł pokazać swój pulpit. Kod można było wrzucać albo przez pliki albo przez chat.

2

Programowanie dla osoby początkującej może wyglądać jak magia, znaczy tak z zaklęciami do wykucia na pamięć bez wgłebiania sie co które z nich naprawdę robi.
Jezeli zapamiętać na początku trzeba tylko parę zaklęć

#include <stdio.h>
int main(void)
{
 
    return 0;
}

a reszta zostanie wytłumaczona to gostek sie czegoś nauczy. Gdy tych zaklęć będzie pół strony połączonych z tajemniczymi gestami "kliknij tutaj potem tutaj" to otrzymamy kodera jednego środowiska a nie programistę

1 użytkowników online, w tym zalogowanych: 0, gości: 1