In the next academic year, I'll be teaching a class on how to use a statistical software package (the R programming language). I foresee that each class will have two parts: a lecture and software demonstration, and time for the students to get their hands dirty by trying the software themselves.

I now have to decide what type of classroom to request.

Option 1: Computer laboratory If I hold the class in a computer laboratory, the advantage is that every student will have a computer with the software already installed. The disadvantage is that the classroom layout is optimized for students to use the computers, so it is difficult to lecture. I foresee that it would be difficult for students sitting in the corners to see the projector screen when I am speaking.

Option 2: Lecture theater If I hold the class in a lecture theater, the advantage is that every student will be able to see the projector screen when I am lecturing and demonstrating the software. The disadvantage is that students would have to bring their own laptops once a week. Although I estimate that at least 98% of students own a laptop, I don't want to embarrass or cause difficulties to any students who do not.

So bearing these two options in mind, which type of classroom should I request? Is it reasonable for me to request the lecture theater, knowing that this will be inconvenient for students who don't normally bring their laptops to university?


There will be around 90 students in the class. My plan is to ask the students to form groups of 3-4 students, so that they will help one another as they do coding and data analysis. I will probably have a TA to help to run the lab session given that there are many students in the class.

I've attached a floor plan of the only computer lab in my university which is able to accommodate 90 students. As you can see, if I am trying to give a lecture in this lab, it can be very hard for me to have eye contact with the students, and to perceive any confusion or uncertainty in their minds.

enter image description here

What I decided to do

After considering the input provided by the various answers and comments, I decided to adopt a hybrid approach, i.e., 1 hour of lecture followed immediately by 2 hours of computer lab time. During the lecture time, I will be showing the students how to use the software and how to estimate and interpret statistical models. During the computer lab time, students will apply what I taught in the lecture to a different data set.

  • Comments are not for extended discussion; this conversation has been moved to chat. – eykanal Mar 28 '17 at 1:37
  • One factor to consider: unless your students are very familiar with how to set up and run R, expect a lot of them needing support in whichever flavour of OS they have, even in the middle of the course (things do break). – Davidmh Mar 28 '17 at 15:34
  • I think you chose the best option. – Jack Aidley Mar 28 '17 at 16:57
  • Hand writing notes seems more engaging. Dealing with all the hangups related to data entry through a keyboard seems to impede the learning process for me (I realize everyone is not the same). You shouldn't even touch a keyboard until you have something conceptualized for a plan of attack, otherwise your muddling around in the box. – samis Mar 30 '17 at 15:00
  • 90!? That's way, way, WAY over the top of the legal limit of students-by-teacher on some countries! On Brazil, for example, you are limited to around 50 students top on college classes. The argument is that having a lot of people on a single room lowers the quality of the education given to the students. – T. Sar Mar 30 '17 at 16:58

12 Answers 12


I actually think you've got an XY problem here. From my experience of learning software languages, this doesn't feel like the most practical way of running it.

In general for learning a programming language, there should be a lot of practical time and a relatively small amount of lecture time. More than that, the practical time needs to be rather free-form and allow scope for better students to complete exercises quickly and slower students to take much longer over it. Simply dividing your class into two halves cannot ever cope with this - either it wastes time or holds back quicker students, or it prevents slower students completing exercises.

When I was at uni, the better solution was one lecture in a classroom, followed (same day, different day, doesn't matter) with an entire afternoon in a computer lab. For the computer lab session, the lecturer often wasn't there, but one or more teaching assistants were always on hand to answer questions, review code, and generally point people in the right direction. After that fixed time, the lecturer and teaching assistants left, but students who hadn't finished could naturally keep working on their own. Most students didn't have laptops at the time (this was the mid 90s!) but there was nothing in principle to stop people bringing in their own machines.

Edit based on your changes to the question: With your new information, it makes it even clearer that your original proposal simply won't work, and two separate exercises is the way to solve it. Getting information to 90 people is a lecture theatre job. Even dividing this into 4 sessions, you cannot make that work in a computer lab, and the lecturing component will take four times as much of your time. Anything other than a lecture theatre will fail, waste your time, and waste your students' time. Conversely, on the practical side there's no other option than dividing the group up so that they all get a guaranteed seat in the computer lab at some point.

| improve this answer | |
  • 8
    My experience learning software languages is that lecture is essentially useless and you're better off just reading the language reference. In my experience the lecturer usually gets many things wrong, omits information about critical language features, and generally teaches poor code style. Even my FPGA class, I found the verilog compiler spec easier to learn from than the lectures. – AJMansfield Mar 26 '17 at 5:08
  • 1
    My best programming classes all were either a 15-30 minute lecture with the rest involving individual or small group practical work or projects (more industry) or the lecture then practical in lab alternating schedule that you suggest (math/statistical programming which have longer lessons to show the connection of concepts). I try and do this when I teach now as I've found working in these smaller groups or having this practical side makes it much easier for students to understand concepts and practices. – LinkBerest Mar 26 '17 at 12:36
  • 5
    @AJMansfield If all you need to learn is the syntax, that's not unreasonable. But if you need to learn structured programming, design for test, how to go about writing a good FPGA testbench, the change of headset which is functional programming, or anything like that, then the lecture session (with coding which is up to best-practise standards) is really the best way to go. – Graham Mar 27 '17 at 9:48
  • 1
    @AJMansfield: While my perception of software language classes is generally the same as yours, I found this to usually be the result of "those who can, do -- those who cannot, teach". As a counterexample, I've had two excellent lecturers that were well worth listening to closely, and incidentially, both these courses had nearly no practical time. (It was expected that the students would experiment on their own, but that was not part of the course.) It's funny how much attention you start paying when expected to solve C++ assignments on paper (i.e. no edit / compile / test cycle)... – DevSolar Mar 27 '17 at 12:34
  • What is an XY problem? Perhaps a hyperlink would be useful here. – I Like to Code Mar 27 '17 at 13:19

I would go with the computer room option. There are several issues with getting everyone to bring a laptop:

  • As you mention, a few students may not have one, and this could cause embarrassment.
  • People are using different operating systems, and may have different versions of the software installed. This increases the chance of code working on some computers but not others, which is always tricky to deal with as the lecturer.
  • High chance that at least a few students will forget their laptops, or their power supplies.

To deal with the issue of the computer room being poorly laid out for lecturing purposes, I would suggest providing all the materials (powerpoint, code scripts, etc) to the students electronically. This way they can have everything displayed on their screens and can follow along even if they don't have a good view of the projector screen.

| improve this answer | |
  • 56
    Also, how many laptops can be plugged in at a given time could be a concern. What happens when your ratio of dead batteries to outlets gets off? – David Starkey Mar 24 '17 at 13:35
  • 41
    @DavidStarkey This! A thousand times this! I once took a class where the professor was denied a computer lab, and we all had to use our laptops. The biggest problem was always outlets. I got into the habit of bringing a power strip and extension cord to all of my classes for this reason. – guenthmonstr Mar 24 '17 at 13:37
  • 9
    As for the operating system problem, and/or different versions installed, this was another major problem with that same class. Many of the early classes of the term were bogged down by technical issues: trying to get the various software to work on students' various platforms. – guenthmonstr Mar 24 '17 at 13:40
  • 2
    The update to the question shows that the lab has 108 seats for "around 90" students. The OP could leave a note on each of the 18 seats with the worst view warning of the need to see a screen. – Patricia Shanahan Mar 24 '17 at 16:27
  • 3
    Screen sharing software may also be an option for allowing students to bring up the projector on their own machine. – jpmc26 Mar 24 '17 at 19:39

This is not a direct answer, but I'd suggest an alternative.

I've found that if all students work on their computers I have problems judging their progress and can also only help one student at a time. Thus, when I teach R, I typically don't require computers for the students. Instead, I connect a laptop to a projector and ask one or two students per lecture to solve some practical problems on it and explain their approach. If they get stuck (they usually do), I ask for suggestions from the other students or explain how to find a solution (e.g., by explaining documentation). That way I don't only teach the solution but also ways of deriving the solution.

It's important with this approach to create an environment, where nobody gets embarrassed (it helps that everyone can be in front next time), but I believe it is more conductive to learning. Of course, the students also get homework.

I typically teach smaller classes of graduate students.

| improve this answer | |
  • Hard with 90, though. At least, I'd find it hard with 90. – cfr Mar 26 '17 at 23:49
  • 1
    @cfr Not only hard, but I'd say impossible. The limit for this approach to be effective is probably between 20 and 30 students. The number of students was not specified when I wrote this answer. – Roland Mar 27 '17 at 8:10

It is only reasonable to require a laptop if it is specified in the class or course requirements

It is not reasonable to expect students to have their own laptops unless this was specified at the time they signed up to the class or, alternatively, it is required for the course overall (or the course provides them). Otherwise you are springing an additional, and expensive, requirement on students who may not expect this.

Even then, this is a necessary condition not a sufficient one. You cannot avoid excluding students who cannot afford a laptop, for example, and you're requiring students to lug heavy equipment around with them for a single class.

| improve this answer | |
  • 18
    I would say it had to have been know to all students before they decided on the university to study at. Not just before the choose a given course, e.g. a policy that all students in department XX must have their own laptop, including the spec and software etc. – Ian Mar 24 '17 at 13:24
  • 2
    I agree with @Ian. If you say "you must have a laptop to take this course" that amounts to discriminating against some students on non-academic basis, and may cause friction with university policy. – Superbest Mar 24 '17 at 17:47
  • 3
    My university lets you check laptops out of the library (and gives everyone a network drive), so this wouldn't be an issue. Does your school do something similar, OP? – MissMonicaE Mar 24 '17 at 17:50
  • 1
    @MissMonicaE What would your library think of say 50 students turning up at the same time, all saying the MUST have use of a laptop at the same time..... – Ian Mar 24 '17 at 17:53
  • 1
    @Ian I don't know! But maybe a prof could put a hold on a certain number in advance? I'd be surprised if that many students don't have their own laptops, though. – MissMonicaE Mar 24 '17 at 19:46

Generally speaking, this request does not sound like a good idea. Laptops can be a significant cost for a student. Some may not have a laptop. Some may have a device that they already use for portable computing needs, but which is unsuitable for development (like a tablet). These people will then be forced to purchase a laptop just for your class - students already balk at paying $100-200 for "required" textbooks, how do you think $1000 for a laptop will go over?

The exception is if your school provides laptops to the students. But consider that cost is not the only factor. When I started college, I was very excited that I could finally bring my laptop to class and take notes more effectively, as we were not allowed to use devices in high school. After two days of carrying the heavy laptop around campus, my back was in excruciating pain. I never brought a laptop to school ever again unless I really had to. Keep in mind that I am healthy and have a strong back - what about students who have injury or chronic back pain and cannot carry heavy bags at all?

You could of course demand laptops regardless, and I doubt there would be repercussions even if it is unreasonable. But it is virtually guaranteed that with 90 people, you will have some sort of issue like those I describe above, it will not be as simple as asking everyone to bring one.

By way of suggesting a solution, I think Option 1 sounds great. You have astutely stated the key advantages. I will add that some lecture halls have small tables which make working with a laptop clumsy and unergonomic. Also, not only do students have to set up the software, it has to be compatible with their system - by using lab computers you get around this problem.

Your main objection to this appears to be the projector screen. First of all, most students will see it to begin with. For those who can't see and can't sit at a better location, you can distribute a PDF of your slides. You can also distribute paper handouts. If you are worried about paper wastage, you can print only a few copies for those who ask for them. If you print them one sided students can also recycle the handouts and use the back as scratch paper or for note taking.

If you decide to do Option 2, you should modify your policy and say laptops are strongly encouraged but not required, and explain why you believe having the laptop is helpful. However your lecture should be designed such that it is possible for anyone to follow without a laptop. If the demonstrations are essential, it should be possible for the student to take notes and then do the demonstrations at home.

Most of your students will probably be able and willing to bring the laptop. The rest can take notes and follow up in their own time at home or a library computer.

Another suggestion since you intend to teach R: Rstudio has a Server version, where the R code lives on a central machine and users interact with it through a webpage. This way users need only a JS-capable browser, no installation necessary. The web interface looks very similar to Rstudio, so when the students are done with the class they can figure out how to get R set up on their machine, and practically all that they learned in your class from the webapp will transfer.

| improve this answer | |
  • 2
    +1 for RStudio Server, but $1000 for a laptop is a huge exaggeration, at least if you're talking about USD. – MissMonicaE Mar 24 '17 at 19:48
  • How do you take notes more effectively with a laptop? Maybe plain text is comparable, but I can do figures & equations a heck of a lot faster with paper & pencil. – jamesqf Mar 24 '17 at 23:11
  • @jamesqf I type and edit faster, but you are correct that it only makes sense for plaintext. – Superbest Mar 25 '17 at 0:28
  • 2
    You can get a pretty good laptop only a generation or two behind for $100-150. Just search for 'refurbished' and 'c grade' for business-class laptops that are a few years old and being taken out of service at companies. – AJMansfield Mar 26 '17 at 5:13

Would it be possible to have classes split between them? So say two a week in the classroom with one working as a tutorial in the computer lab. This was how most of my own coding courses were split as the theory could be given in a classroom environment with examples being done by the lecturer in the in class computer/lecturer's laptop.

Then the tutorial was essentially a designated practice session were students worked on preassigned problems/class projects. A lecturer or a grad student would walk around the lab occasionally checking on how people were doing and helping anyone who wanted it in a one on one fashion. The lecturer only really spoke to the entire class if something came up that they thought might be an issue for the majority of the class (if several people were making the same mistake etc.)

Personally I would not have them figure out solutions in front of the entire class, the lab style class where everyone has their own computer to pay attention to works better for supervised practice I have found.

| improve this answer | |

I'm going to post the IT answer here. Go with the computer lab so you can spend class time getting things done and not supporting installation issues.

Forget displaying your slides on a projector, use some type of collab software to display your slides on every computer that is sitting in front of the students.

Don't have them use their computer because they probably have chat programs and facebook to distract them. Provide the gear, lessen the distractions and leave tech support to the lab guys.

All that said, the answer by @Roland has some real promise in getting the group working as a group instead of as a bunch of individuals. The only problem I see is that the slower ones are going to seriously frustrate the best and brightest and conversely the slower kids are going to feel like they've been dragged behind the bus if one of the smarter kids is doing the typing.

Never underestimate pair programming in this case where the brightest can help the slowest without it becoming too excruciating.

| improve this answer | |

I have supported colleagues teaching R and a requirement was that students would bring their own laptops to use. These were postgraduate students studying for professional development (ecologists and environmental managers etc).

This was under the following conditions:

  • The requirement for a laptop was made clear upfront prior to enrolment on the course.
  • Minimum IT requirements for the course (including links to the R community site) were given upfront.
  • No technical support was available from the university (other than supporting students in accessing Wi-Fi networks). This too was made clear upfront.
  • Prior teaching, guidance for installing the R programming environment was provided together with some orientation activities (I vaguely recall the community site having this - but might be wrong).
  • The teaching room was booked nearby to a PC room (which was booked as well) in case issues meant we needed to relocate.
  • Two or three university laptops were booked just in case some students had issues (we didn't tell them this upfront).

The pedagogical advantage of this approach was that we were teaching students how to use software on their own systems, which would be the systems they'd use at home/work. Hence, users were empowered to troubleshoot issues in an environment that they would encounter again and again.

They were also adults paying their own fees, so were grown-up enough to turn off distractions. Also, as professionals they'd want to check email during breaks.

The class size was up to 25 students with one instructor and two facilitators (lucky them!).

In practice there were invariably students who didn't do the pre-work, brought sub-spec machines (I recall a beaten up XP laptop from 2005 raising some eyebrows) etc this was mitigated by university laptops and PCs.

My advice is:

  • Be very clear up about all requirements upfront.
  • Have a rationale for students to use their own laptops.
  • Have a back-up plan.

Ultimately, if a student fails to take responsibility for ensuring they meet the IT requirements as specified by the course, it is likely they won't be able to learn and the tutors shouldn't be expected to make special provision for them.

| improve this answer | |

I only taught one course with heavy computer use in a computer lab. Luckily in this lab there were hexagonal tables with 6 computers each, so after a short time people started to work together, which was really beneficial. In most labs you have computers in long rows next to each other, discouraging people from collaborating. So if you allow groups of 2-3 students working together, they might learn faster (apart from the few that just let themselves get dragged through), you have an easy way of monitoring their work (just stand nextby and listen to them), and the chance that among 3 people nobody can get hold of a laptop is probably negligible.

| improve this answer | |

Ideally the classroom should already be set up with everything needed for the lectures, however this is not always possible. If the classroom isn't already set up for laptop usage (as with most campuses built before about y2k), often times these classes are split into a lecture and a lab. For scheduling purposes, this way can be extremely beneficial to students trying to graduate within a fixed time frame and minimize their student debt because they can usually fit one of the labs into a packed schedule. This works well in large departments with plenty of graduate assistants to run the labs, so if that option is available, take advantage of it.

That being said, there are pros and cons to having laptops in the classroom. If their usage is limited to course related material (not including note taking), then it is generally good for learning.

So long as you set aside a time for in-class work (it may take several minutes for some systems to come up) and allow for partnering or group collaboration (unless laptops are mandatory for the class or department) then it shouldn't be a problem. Even if laptops are required, the group interaction can help shy or new students meet the person/people who will be their future study partner(s).

I hinted that note taking on a device can be counterproductive, so if you can make lectures and notes available, it will allow greater concentration. If the lectures are not already available, they can be divided among the class members to transcribe. When I was an undergrad in nuclear engineering, we organized this on our own and it worked so well that the group list became a sort of reply-all mailing list to correct any misconceptions.

| improve this answer | |

We solved this problem by creating hybrids.

You can remove some workstations from a lab and create room for laptops. You can add workstations to a lecture hall. Then the students can do what works for them.

The best answer is to give students options not dictate their needs.

| improve this answer | |

Go for the lab.

It is undeniable that a computer laboratory was built to teach stuff on computers. I'd recommend that everyone brings their own USB drive to store files or even bring their own computer, in which case you are sure to have proper power outlets for everyone.

The lab is only a nuisance if your IT department can't keep the stations in working order or if they are too old even for a simple class.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.