The Stack Overflow podcast is back! Listen to an interview with our new CEO.
7

If you want to teach students programming concepts along with web-development (HTML/CSS/JS) you should consider lacing programming examples or lessons with examples of HTML/CSS/JS or similar concepts in both. You could also have HTML/CSS/JS as an extra credit assignment or something the class can do if they're ahead of schedule. This will keep the class ...


6

Much less detail than the excellent post by Buffy, but directly to the question. Replace unit tests with validations and linters. Have the students create all content in distinct files: HTML, CSS, and JS. Any styles or JavaScript in the .html file is invalid for the project(s). There are many validators and linters for all three, as well as for any other "...


6

For me, 60 is a very large class. Let me focus on a course design, extrapolated from other areas, in my case, the compiler course. The intent here is to make assessment feasible, rather than to say how to do it explicitly. I would have two projects for the course. The first is individual and lasts two weeks. It would be to extend a framework that I provide ...


6

Maybe a bit of an orthogonal answer, but let me try to refocus your thinking. I don't think that teaching a lot of languages, especially if they are similar to one another in some way is a big advantage for students. Giving them experience with different paradigms (ways of thinking) on the other hand is a big advantage. While I prefer Java (for its libraries)...


5

I think it depends on what the goals for the course are. You are teaching an intro programming course, so what are the students expected to know when they finish? Data types and structures, loops, functions, syntax, etc? If so you don't need to teach web development skills as part of this since arguably HTML, CSS, etc. are not really "programming" in the ...


5

If you are struggling with "design" and "beautiful" and artistic mumbojumbo, you can still teach CSS while avoiding trying to turn them into pro designers. The simplest example task I can think of is having your students create a simple website with a basic style and another style for the visually impaired (and a button to change between the two styles). ...


5

Summary Node.js has an unusually complex ecosystem which you don't get in some other languages. Your students spending time to intelligently pick the best libraries is great, but you might need to stop them from being bogged down. If time is really a problem, simply take away the choice, but keep in mind that you take away a powerful (and necessary) ...


4

How would you do it yourself? If you are already effective at it, then show them how you approach it. Tell them where you look, and tell them how you decide that it is ok to stop exploring further for an individual resource or for the overall search. Otherwise, assuming you are less skilled at this than you'd like to be, give them (paper or electronic) a ...


3

Don't imagine that this problem is rare or that it is caused because the students don't "get it." Often they get it all too well. It is common in learning a new thing to base your understanding on what you already know about other things. This is just the sort of error I made myself as a beginning programmer, basing Fortran stuff on what I already knew about ...


3

As always with javascript, show the right&wrong: Show them, using the exact piece of code from your example, but add another line: var greeting = "Hello "; var first_name = prompt("What's your first name?"); var last_name = prompt("What's your last name?"); var reply = greeting+" "+last_name+", "+first_name; console.log("reply"); console.log(reply); ...


3

A great resource to learn JavaScript is Eloquent JavaScript by Marijn Haverbeke: https://eloquentjavascript.net/. You can download the pdf for free, or you can read it online, and this is probably a better choice since you can take advantage of the code sandbox. It is definitely suitable for beginners but a wide range of topics is covered, included Node.js ...


3

I'll let another answerer address the creativity part, but for the design part of your question I can share some insight. I find it useful to ask them to emulate some site that they commonly use, and them make it better in some way. This allows them to practice design by working on and improving already well designed websites. The only qualifier is that you ...


3

You mention that you are already using ES6, which suggests that package management and complication are not really barrier, though I would expect that many reading this problem are not setup to ensure node and npm are installed and/or may have access to git/ssh protocols for fetching dependencies or projects. So, the first thing I'd point out is that for ...


2

To be fair, TypeScript is promoted by Microsoft. That means, it has excellent intellisense support along with type checking and all the other standard stuff (regularly updated with bug fixes, premium support, dedicated team and of course the huge marketing muscle of a huge tech giant) we can expect. However, the thing is, Javascript is simply far more ...


2

Teaching web programming would be self defeating to the topic. On the other had using examples of parsing “CSS” files or “HTML” files would aid them in learning web development, while maintaining the intended goal of the course. Personally I hate web development as a matter of personal taste. I wish my school offered a “C” programming class. It is truly ...


2

This sounds like a question of vetting. Here are some things I do when evaluating Node.js libraries: Find the package in npmjs.com and view the stats (e.g., daily/weekly/monthly downloads). You can sort of gauge its popularity that way. Look for similar libraries and compare their stats. Look at the package in GitHub. View those stats (e.g., # of ...


2

I have just written myself a web-mark server, to store book marks to my website. I got fed up with the proprietary ones, and decided to make one of my own (probably could have found a ready made one with a Free Software Licence). It used Couchdb. This involves writing code in Java-script (the manual says that the server side code can also be written in ...


2

All programming languages are tools. Whether one is a programmer, a computer scientist, a student, or an instructor, the tool status of programming languages remains constant. Selecting the right tool for the job, out of those which are available at the time, becomes an exercise in itself. The second half of the exercise is how to use the tools you do have ...


2

One idea which might be a bit too trade-schooly but which I offer in case you disagree: the practice of software engineering. One big difference between Java and JavaScript is that Java has enormous standard libraries, and JavaScript has very little. In consequence, JS forces you to either reinvent the wheel or learn to use a package management system. Use ...


1

Assessing web dev courses at scale can be tricky because you have to consider the following: ensure that the resulting web app looks as expected all functionalities should work as expected with the correct logic the code quality to make everything work should meet the industry standard With 60 students (or any number over 20 really), this can get really ...


1

One interesting idea might be to ask your student to try re-implementing different parts of the web ecosystem, which would naturally involve using JavaScript. For example, one project might be to guide your students through writing a simplified version of libraries like React or Angular -- probably after having your students use those libraries directly so ...


1

I was wondering the other day. Who would I hire? Someone with good theory knowledge, that used educational languages (Eiffel for OO, scheme for functional, both for simple and creating DSLs). Or Someone with some knowledge of the languages that we use here. I think I would hire the people that learnt the educational languages, and so have a better ...


1

A function to perform a procedure often has a void return type. For example: function foo(a, b, s) { // tell sphero s to go one direction a, another b } You are executing a procedure as a side effect and are not returning a computed value.


1

A project one of my students did was to build a data visualization pipeline where python was used for data preprocessing and javascript was used for web-based data visualization using a javascript framework. That worled out very well and used the strengths of both languages.


1

I believe that the learning of WEB programming must start with understanding the concepts: XML, HTML, DOM, HTTP, REST / RPC and javascript bases. Javascript is easier to understand if students have ideas about functional and objective paradigms.


Only top voted, non community-wiki answers of a minimum length are eligible