README
author Christian Urban <urbanc@in.tum.de>
Sat, 17 Nov 2018 13:33:51 +0000
changeset 207 5bbbe737184e
parent 203 eb188f9ac038
child 228 33c2655be47d
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
203
eb188f9ac038 updated
Christian Urban <urbanc@in.tum.de>
parents: 199
diff changeset
     1
scalac -Ydelambdafy:inline -d docdiff.jar docdiff.scala
eb188f9ac038 updated
Christian Urban <urbanc@in.tum.de>
parents: 199
diff changeset
     2
eb188f9ac038 updated
Christian Urban <urbanc@in.tum.de>
parents: 199
diff changeset
     3
eb188f9ac038 updated
Christian Urban <urbanc@in.tum.de>
parents: 199
diff changeset
     4
191
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
     5
given two lists, is one a sublist of the other except one
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
     6
element
167
349d706586ef updated
Christian Urban <urbanc@in.tum.de>
parents: 117
diff changeset
     7
191
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
     8
check Graham's Haskell book
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
     9
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    10
five-in-a-row as a spiral
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    11
(Tic-Tac-Toe on steriods or Go for the weak mind)
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    12
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    13
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    14
----------
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    15
CokeBottle cokeBottle = new CokeBottle();
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    16
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    17
joke from...
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    18
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    19
https://www.youtube.com/watch?v=9e_oEE72d3U
f78b18c4c886 updated
Christian Urban <urbanc@in.tum.de>
parents: 178
diff changeset
    20
----------
116
Christian Urban <urbanc@in.tum.de>
parents: 113
diff changeset
    21
178
fdf77ee57cdc updated
Christian Urban <urbanc@in.tum.de>
parents: 167
diff changeset
    22
---------------
fdf77ee57cdc updated
Christian Urban <urbanc@in.tum.de>
parents: 167
diff changeset
    23
Hepec...generating static pages
fdf77ee57cdc updated
Christian Urban <urbanc@in.tum.de>
parents: 167
diff changeset
    24
https://sake92.github.io/hepek/quick-start.html
113
b8ba08170d79 hook test
Christian Urban <urbanc@in.tum.de>
parents: 112
diff changeset
    25
167
349d706586ef updated
Christian Urban <urbanc@in.tum.de>
parents: 117
diff changeset
    26
==================================
78
85f2f75abeeb updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
Calling ediff from the command line
85f2f75abeeb updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
85f2f75abeeb updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
85f2f75abeeb updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
emacs --eval "(ediff-files \"k1502472/drumb.scala\" \"k1502752/drumb.scala\")"
85
fd3f8581ce85 updated
Christian Urban <urbanc@in.tum.de>
parents: 78
diff changeset
    31
fd3f8581ce85 updated
Christian Urban <urbanc@in.tum.de>
parents: 78
diff changeset
    32
fd3f8581ce85 updated
Christian Urban <urbanc@in.tum.de>
parents: 78
diff changeset
    33
deleting comments from scala files
fd3f8581ce85 updated
Christian Urban <urbanc@in.tum.de>
parents: 78
diff changeset
    34
89
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    35
find . -name '*.scala' -print0 | xargs -0 perl -n -p -0 -i.bak -e 's%/\*([^*].*?)?\*/%%gs;s%^([^\"\n\r]*(\"[^\"\n\r]*\"[^\"\n\r]*?)*?)//([^*\n\r].*)?$%$1%gm'
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    36
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    37
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    38
find . -name '*.scala' -print0 | sed -i.2 's|def ordered_moves(dim: Int, path: Path, x: Pos): List[Pos] = ..|//def ordered_moves(dim: Int, path: Path, x: Pos): List[Pos] = ..|g'
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    39
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    40
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    41
LC_ALL=C sed -i.2 -- 's|def ordered_moves(dim: Int, path: Path, x: Pos): List\[Pos\] = \.\.|//def ordered_moves(dim: Int, path: Path, x: Pos): List[Pos] = ..|g' k*/knight3.scala.bak
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    42
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    43
LC_ALL=C sed -i.2 -- 's|def first_closed_tour_heuristic(dim: Int, path: Path): Option\[Path\] = \.\.\.|//def first_closed_tour_heuristic(dim: Int, path: Path): Option[Path] = ...|g' k*/knight3.scala.bak
fac25de665d2 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 85
diff changeset
    44
90
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    45
LC_ALL=C sed -i.2 -- 's|def first_tour_heuristic(dim: Int, path: Path): Option\[Path\] = \.\.\.|//def first_tour_heuristic(dim: Int, path: Path): Option[Path] = ...|g' k*/knight3.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    46
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    47
LC_ALL=C sed -i.2 -- 's|def nullable (r: Rexp) : Boolean = \.\.\.|//def nullable (r: Rexp) : Boolean = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    48
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    49
LC_ALL=C sed -i.2 -- 's|def der (c: Char, r: Rexp) : Rexp = \.\.\.|//def der (c: Char, r: Rexp) : Rexp = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    50
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    51
LC_ALL=C sed -i.2 -- 's|def simp(r: Rexp) : Rexp = \.\.\.|//def simp(r: Rexp) : Rexp = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    52
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    53
LC_ALL=C sed -i.2 -- 's|def ders (s: List[Char], r: Rexp) : Rexp = \.\.\.|//def ders (s: List[Char], r: Rexp) : Rexp = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    54
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    55
LC_ALL=C sed -i.2 -- 's|def matcher(r: Rexp, s: String): Boolean = \.\.\.|//def matcher(r: Rexp, s: String): Boolean = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    56
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    57
LC_ALL=C sed -i.2 -- 's|def replace(r: Rexp, s1: String, s2: String): String = \.\.\.|//def replace(r: Rexp, s1: String, s2: String): String = ...|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    58
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    59
LC_ALL=C sed -i.2 -- 's|println(matcher(EVIL,|//println(matcher(EVIL,|g' k*/re.scala.bak
d77af4aca939 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 89
diff changeset
    60
99
e10a9b2fd35a updated
Christian Urban <urbanc@in.tum.de>
parents: 90
diff changeset
    61
LC_ALL=C sed -i.2 -- 's|for (i <- 1 to 5000001 by 500000)|for (i <- 1 to 11 by 10)|g' k*/re.scala.bak
e10a9b2fd35a updated
Christian Urban <urbanc@in.tum.de>
parents: 90
diff changeset
    62
e10a9b2fd35a updated
Christian Urban <urbanc@in.tum.de>
parents: 90
diff changeset
    63
e10a9b2fd35a updated
Christian Urban <urbanc@in.tum.de>
parents: 90
diff changeset
    64
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    65
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    66
111
cd6b9fe4bce5 updated
Christian Urban <urbanc@in.tum.de>
parents: 99
diff changeset
    67
cd6b9fe4bce5 updated
Christian Urban <urbanc@in.tum.de>
parents: 99
diff changeset
    68
cd6b9fe4bce5 updated
Christian Urban <urbanc@in.tum.de>
parents: 99
diff changeset
    69
cd6b9fe4bce5 updated
Christian Urban <urbanc@in.tum.de>
parents: 99
diff changeset
    70
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    71
=========================
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    72
Admin atudd
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    73
=========================
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    74
Hi all,
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    75
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    76
As you will have heard from Chris, you've been appointed as TAs on 5CCS2PEP -- congrats.  We had a large number of high quality applicants.  It was quite a challenge to fit you to labs based on your own timetables, but we managed to figure out a schedule.
111
cd6b9fe4bce5 updated
Christian Urban <urbanc@in.tum.de>
parents: 99
diff changeset
    77
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    78
The module setup is very similar to last year, with the difference that there are now 5 C++ assignments and 5 Scala assignments, to balance things out.  Chris should have told you which sessions you're each covering.  The definitive schedule for the module is the timetable on timetables.kcl.ac.uk, but to summarise:
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    79
All the labs are in Bush House.  Most sessions have about 40 students, so there are two TAs.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    80
Labs start in week 1 of term (the first lab is on Monday the 24th of September); there's a week off for reading week; then labs run until the end of term (last lab on Thursday the 13th of December).  If you're planning to skip part of the last week of term to get a cheap flight home, the best bet is to see if you can swap sessions with someone else for that week.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    81
As the first lecture is on Friday, the first week of labs are pretty laid back.  A Java revision assignment has been set that you will have seen last year or the year before (Assignment 0).  This doesn't contribute towards the module marks; its main purpose is to get the students into the lab, to set themselves up ahead of assignment 1 -- this is released on Friday, and does count towards the module marks.  The to do list I've given them is:
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    82
Complete the Plagiarism and Collusion quiz.  They need to get 100% to do anything on this module.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    83
Create an account on GitHub.com if they don't have one already.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    84
Enter their GitHub username (e.g. SomeStudent) into the form linked to from the module KEATS page: in the section 'How this module works', click 'Register to submit work on this module via github.com'
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    85
Click the link to start assignment 0, and do some work on it.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    86
Note the link to assignment 0 is set up so that if they haven't a GitHub username (step 3 above), they can't click the link to the assignment.  If you want to skip straight to it, here's the link:
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
    87
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    88
https://classroom.github.com/a/xyDQjYoD
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
    89
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    90
...but you could just as well look at your own assignment0 repository from last year/the year before, to see how you solved it.  Please don't give the students this direct link -- as the automated testing service is running their code on College machines, we need to ensure we only let the appropriate students access the resources for this modules.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    91
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    92
I'll circulate the link to assignment 1 (for the second week of labs) and a model answer in due course.
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
    93
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    94
Finally, as for some of you this is your first time at being a TA, here are a few helpful notes:
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    95
Being a good teacher in programming is about getting the students to think, and to become self-sufficient.  If they ask you a question, think about how you would find the answer out yourself.  If you would Google it, Google it with them.  If you'd get a piece of paper out and start sketching out ideas, encourage them to do that.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    96
Don't give students the answers.  If they realise what the right way to do something is, you can agree, but otherwise, guide them in the right direction but don't just spell it out.  If they seem stuck, go back a few steps and cover the basics of the assignment.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    97
Don't sit in the corner of the lab waiting for things to happen.  Walk around, ask people how they're getting on.  Some students are a bit shy to ask for help, we need to engage them with the course and help them get the most out of it.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    98
As a TA, you're representing the department as a member of staff.  Don't make advances on the students.  Outside the lab, you're a student and it's none of our business; but for those hours there, you're staff.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
    99
If a student kicks off (I've never heard of this happening) we've got your back - come get a member of academic or office staff, you're paid to teach not do crowd control.  
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   100
We take attendance in labs.  Half way through, one of you should go to the departmental office (level 6) and pick up a barcode scanner.  There's a barcode to scan to denote the session -- you scan this once -- then scan the student cards of the students in the lab.  It's unfortunately important that we do this, as the UK Border Agency take a sample of attendance records for overseas students, and the College will lose its ability to sponsor overseas student visas if we aren't seen to be taking attendance.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   101
If you're doing two consecutive sessions, classes finish at 5 to the hour and start again at 5 past.  Take a break.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   102
If you're talking a lot, and need some water, don't forget about the cold water machines in the kitchens.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   103
Our students sometimes say that the labs are noisy.  This is usually due to students who aren't taking the module sitting in the lab.  Politely ask them to be quiet or leave; there are other labs on campus and other study spaces.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   104
Because I'm not in the labs, but you are, if there any snags please let me know.
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   105
I think that's it - I look forwards to working with you.
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
   106
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   107
All the best,
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
   108
194
060b081523de updated
Christian Urban <urbanc@in.tum.de>
parents: 191
diff changeset
   109
Andrew
112
3252fd0c0dd2 updated
Christian Urban <urbanc@in.tum.de>
parents: 111
diff changeset
   110