Algorithms, Variables, Debugging? Intro to Programming Concepts

Since I am about to prepare a workshop on natural language processing and a pre-workshop-workshop where I need to quickly/crashcourse introduce my (non-digital) Classicist friends to some basics on programming, let me share a list of programming concepts I compiled with you. I would be happy for your suggestions and comments regarding mistakes. I will probably publish this together with some key concepts of quantitative text analysis (blogpost to come) on a cheatsheet or as slides for you later 😉 Intro to key concepts of programming This list of concepts is not super-structured and meant to work as a ‘reference tool’ as well as a text to be read, so I tried to give it a more or less useful ‘chronology’, meaning that later parts kind of build on earlier ones. I start off with what a computer program or algorithm actually is and how we translate between source code (the code we write) and the code which gets fed

read more Algorithms, Variables, Debugging? Intro to Programming Concepts

Is learning how to program like learning a foreign language?

Is learning how to program like learning a foreign language? Well, it’s a definite “yes and no” from me. I think many people oversimplify this. And then they say that their programmer friends think the same way to ‘prove the point’. Mostly I bite back the question of how many ‘real languages’ the programmer friends have learned or even learned to a native-like level. Because I think that there are some quite important differences. Since I just read this brilliant article The Ancient Case Against Programming “Languages” by Patrick J. Burns on Eidolon (Apr 24, 2017), I thought I could contribute some of my thoughts on the topic as well. They stem less from the interest in not losing funding for second language education, but rather from some of my own experiences in “second language programming education” or whatever one might call it – the act of learning programming (in your 20ies at earliest) after having learned multiple natural languages as

read more Is learning how to program like learning a foreign language?

A systematic training progression for programming?

As some of you might know, I am currently a fellow, aka at my personal writing retreat at Wolfenbüttel. And I decided to combine this with some sort of a training camp for my bouldering progress because you do need to have some breaks from writing during the day anyway and I can’t always watch Bones or create CV templates. You might have been following some of my bouldering on epigrammetry, the blog, or epigrammetry, the Twitter.   Training progressions in sports Also very few of you might know as well, I used to train a lot for long-distance running (10k) during my teens. So I know what training progressions are. I used to have detailled training plans, eating regimes, supplements to take and all that jazz. I stopped at some point because my immune system kept bullshitting me and as an ambitious person, I couldn’t take the idea of having to start from scratch after a half-year of being

read more A systematic training progression for programming?

How to improve at programming when your current position doesn’t require it & Online Learning Resources

fHave you ever felt like you would like to get better at programming, maybe even get a position involving more programming some day but the fact that you currently don’t really need it at your current position seems to hold you back? This post is for you. Daily practice is key for improvement You need daily practice if you actually want to improve. You already need daily practice just to keep your skills sharp during a time where you don’t need to use them. Also, if you don’t even have programming skills yet, you probably are too tired after work to sit down and work on a private programming project for a meaningful amount of time. But you should. Programming is a skill which takes a long time to learn. That is, if you want to reach a decent skill level. This means that you have to start regular practice long before you actually need that skill or need to

read more How to improve at programming when your current position doesn’t require it & Online Learning Resources

Your 24 hours. Time management or How to get to know yourself while organizing your life. Part II

Today, I am yet again happy to present the second part of the latest LaTeX Noob guest post:   Last time, I told you about four important steps to organizing your life. They were: Know your priorities. Learn to say “no”. Leave your comfort zone. Never back down. If you want to re-read the last post, you can find it here! So, time management. You will need a calendar, let’s start with that. Take your phone, open your Google calendar. Start. It is actually that easy. You have to know the most important basics. When do I work, what are my main working hours? Do I like a silent or slightly more lively environment for my work? Am I a morning person or a night owl? When will I need a break, when do I want to go to sleep? When am I meeting my friends, when do I spend time with my partner or my family? What do I

read more Your 24 hours. Time management or How to get to know yourself while organizing your life. Part II

Some thoughts on grading

Grading is always a touchy and emotional subject. When students misbehave, you automatically feel the urge to punish them with a bad grade. When students receive a bad grade, they will be angry and pissed off. And ‘bad grade’ is relative to what they expected, not ‘realistically bad’, like in a fail grade. In most cases, they will also think you are unfair if they honestly expected a better grade. And they will be gradually more pissed off, the more work they put in your class. So make sure you put as much thought into planning your grading scheme as into the rest of the preparation, because the grade might just leave the biggest lasting impression on students looking back.   The good student receives bad grade problem I just cleaned out my old archived data and remembered I had this class with a teacher I really liked. But now, I hardly remembered her. Then I realized it probably had something

read more Some thoughts on grading

[Guest Post] Your 24 hours. Time management or How to get to know yourself while organizing your life. Part I

I am happy to introduce the second guest post by our friend, the LaTeX Noob. This time not on LaTeX 😉 So, here we go. Enter the Noob.   I am currently writing my PhD thesis and, hell yeah, it is rather pleasant, because I am good at getting sh*t, I mean, stuff, done. Now, I will tell you how this is possible and show you how to achieve that too.   Before time management, find structure in your life first However, it was not always that easy and organized. I have to admit I am generally a structured person: I like notebooks, I do keep a bullet journal and I love calendars to organize my life. But how to get the great amount of work together with one’s private life (for we all love our family, our partner, our friends, and we want to spent time with them, right?), enough sleep, healthy eating, some sports, some Me-time? The ways

read more [Guest Post] Your 24 hours. Time management or How to get to know yourself while organizing your life. Part I

Riding higher waves

At the risk of boring you all with my frequent thoughts on better teaching, I wanted to give you another metaphor on good teaching, inspired by a surfing class I took. To sum it all up, surfing was great fun. But this year, I was a bit unfortunate to get teachers who were a lot worse than the ones I’d had previously. The high waves and the shallow water make for good metaphors for the basics and the advanced topcis I frequently drone on about in my philosophy of teaching well. So, there you go. The shallows and the high waves The teachers were over-protective of us in the shallow waters. They helped more than we would have needed help and thereby, didn’t teach us to act independently. I wanted to do so, but it was not encouraged and we weren’t given any instructions on how to catch a wave on our own. They wouldn’t even let us paddle onto

read more Riding higher waves

Should I start doing DH?

My non-DH colleagues and friends ask me more and more often if I think they should start doing Digital Humanities and if yes, where to start? Since this seems to be an interesting topic for many, I thought I’d quickly elaborate on it. Disclaimer: Even though I’ll  put on my “career advisor” hat right now, I want to remind you that I am in no way qualified to advise you on your career. So if it all goes downwards from now, I am not the one to blame. All opinions are my own and should be treated as such. So, now we got the legal part over with (essentially: don’t sue me), let’s get to my opinion on the topic. I think it is out of the question whether you should start doing DH. In my prognosis, almost all Humanities research is going to be at least part DH in the near future. If you ask me. And you did.

read more Should I start doing DH?

Improve Your Teaching – 10 Simple Tricks

As you might know, good teaching is important to me, so I wanted to share ten simple tricks which I think can improve your teaching. Most of them are about making sure people get the basics which, in my opinion, is one of the biggest mistakes people make in teaching. Let’s get straight at it. 1) Make sure the preliminaries are clear before starting an explanation. If they are not, don’t even bother starting on the explanation, it will be a complete waste of time. Even if this means that you will spend the whole lesson bringing them up-to-date with the preliminaries and you won’t be able to start on the actual topic at all. Make time for this prep work or risk that all of your subsequent explanations will not get through. To find out if the preliminaries and basics are not clear, you might have to plan testing your students regularly (at the start of each block), like

read more Improve Your Teaching – 10 Simple Tricks

How do I get to do task XY for the first time at the job

Today I want to talk about how you convince others to let you do XY for the first time as an official job responsibility, even though you might not have experience or any formal training doing so. And also, why you have probably come across a situation where one of your colleagues has been chosen to do task XY and not you. Even though you are both equally qualification-less. Now you feel left out. New tasks are opportunities for growth you probably really need if you want to stay in academia. It is all the more detrimental that bosses often don’t take the personal/CV growth of their young colleagues into account and hardly ever give out those tasks strategically. You can end up the lucky one – or you end up left out.   Disclaimer: Again, as always, these are my personal opinions and they might not apply to your situation. Use your brain.   New skills are always needed

read more How do I get to do task XY for the first time at the job

Planning your project for “service providers”

When writing my last post on how to earn money with LaTeX I realized I actually had a lot of advice on planning and scheduling your project as well. So I will sum up my experiences with all sorts of “customers” (be it project partners or whatever you have). Motivation This is not to complain how horrible things are but just to sum up a few things you should take into account that an unexperienced person might not find self-evident. Seeing as my days of being unexperienced myself are not very far away, the learning process is still pretty fresh and I still remember the problems a beginner can face, so I hope to be able to provide valuable advice. Some of the advice is copied out of the earning money post, so don’t be confused if you feel like you might have already read some of this. Initially I had wanted to extend the old article but since it already

read more Planning your project for “service providers”

Fast typing LaTeX

I recently became aware of this post where somebody asked how you can become faster at typing LaTeX. Just a little post with a few recommendations. Experience from constantly using LaTeX for everything I have to say, I think it really gets better with experience. And experience from doing your everyday stuff in LaTeX (like to do lists, taking notes, etc.). Else you probably just won’t get enough experience to become really fast. Raise awareness But then again, slowing down might not be a bad thing if you’re supposed to produce high quality work. Using LaTeX, then, will force you to take the subconscious back into your conscious mind. Maybe not what you want when just quickly taking notes, but maybe something to reflect upon in the long term. I also found that, since I don’t constantly use MS Word’s auto-correct anymore, I’m actually better at spelling and grammar (even though, as someone holding a degree in Latin, I probably

read more Fast typing LaTeX

The power of simplicity, or: How to use tutorials

This is just a quick post, telling you to use tutorials selectively. If you don’t have time, don’t burden yourself with the not-so-short intro to LaTeX or 30 min introductions. Jumpstart in 3 minutes and go. This morning, I realized one thing: depending on what you want to do with LaTeX, you only need a very limited amount of commands. Even I use a very limited amout of commands for everyday tasks. Going through a whole tutorial might actually be a waste of time for you.   You only need 3-5 go-to commands What you always need (and, for example, an Overleaf blank document already supplies): You will typically need the general document setup (minimal example), \newpage, \maketitle, \tableofcontents, and \sections and \emph{}. For teaching documents, I will additionally need \textbf{boldface}, enumerate and itemize environments. Then maybe \href{http://latex-ninja.com}{links} (\usepackage{hyperref}), \texttt{typeface} for code or the verbatim environment. And, of course, I often use my cheatsheet template. For writing scientific articles, I

read more The power of simplicity, or: How to use tutorials

Didactical Reduction, Part II

In my first post on didactical reduction, I argued that reduction of learning materials to meaningslessness can be detrimental, that teachers should trust in their students’ ability to learn and rise to a challenge. In this post I want to discuss ways of reducing complexity which actually makes sense. The gist is: reduce unneccessary detail, not difficulty. Build complexity in a carefully chosen progression. Telling the difference between unnecessary detail and challenging complexity In my post on why programming classes fail and learning ‘algorithmic thinking’, a main example was that students starting out programmig don’t need to know about data types. I will stick with this example here because I just think it illustrates my point so well. The skill to learn I discussed in the post really wasn’t the ‘vocabulary’ of your first programming language, but ‘learning programming’ means successfully communicating with a computer and in order to do that, you need to develop the skill of algorithmic thinking. This

read more Didactical Reduction, Part II