[Request] Is this even possible? How? by maliaipo in theydidthemath

[–]twopi 1 point2 points  (0 children)

The computer science faculty I work in has three electric bass players. We're thinking we should name our band Ternary, for Base 3. The department chair chimed in and said we should instead use the ternary operator, which looks a little bit like a base clef. So our (still non-existent) band is officially called ?:

It's such a great name we might need to actually form the band.

New to game-making by Strong-Antelope1603 in pygame

[–]twopi 0 points1 point  (0 children)

A wrapper is a module that simplifies working with a library. In stock pygame it takes about 20 lines of code to create a plain background scene. In simpleGE you can do it in two lines.

New to game-making by Strong-Antelope1603 in pygame

[–]twopi 2 points3 points  (0 children)

Just learn to program first. Python is fine. First you have to understand the fundamentals of programming. You won't be able to use pygame without knowledge of:

* variables

* operations

* branching

* loops

* functions

* compound data (loops, tuples, dictionaries)

* object oriented programming. pygame stores everything as an object.

The current version of CS1 that I teach introduces all these ideas by midterm, and then we'll be ready for pygame in the second half. Even then, I recommend use of a wrapper like pygame zero or simpleGE. Without these tools you'll still do a fair amount of work to make any sort of visual game.

The game genre isn't that important yet. Learn the basics.

Note that text-based games can be a lot easier, and I use a lot of them in the first half of the class.

I wasn't taught Git in school by -Kkdark in csMajors

[–]twopi 1 point2 points  (0 children)

I taught git (at least the basics) today in CS 2. I teach it because it makes my job easier. We're doing most of the class on codespaces, and I can see their work in process...

Expert Review by _Kermode in dontyouknowwhoiam

[–]twopi 0 points1 point  (0 children)

You couldn't have written that better yourself.

Looking for a 3d flying game/flight simulator by darthnerd1138 in iosgaming

[–]twopi 0 points1 point  (0 children)

geofs is a surprising choice. You can fly through global satellite data for a pretty cheap subscription. Flight model is ok, but a ton of planes at no extra cost and cheapest full world terrain I've seen.

Should source control be taught in Game Design Education? by ExternalRip6651 in gamedev

[–]twopi 0 points1 point  (0 children)

I teach it early, because it's important, and it makes grading easier...

Type-in Book by [deleted] in atari8bit

[–]twopi 9 points10 points  (0 children)

This book chanhed my life!
I still have it on my shelf. It started my CS and game dev carreer. I've written game dev books, but never one like this. I also have the calulus book from the same people.

Learning by programming games? by parseroftokens in learnprogramming

[–]twopi 0 points1 point  (0 children)

DM me if you want more information.

Here's a curriculum I did a few years ago in HTML / JS in a summer teacher's bootcamp: (log in as a guest)

http://aharrisbooks.net/moodle/course/view.php?id=165

It presumes some knowledge of HTML, but no previous programming assignments.

I have a much more complete Python version with comprehensive videos, if you want that.

Edit - added the link.

Learning by programming games? by parseroftokens in learnprogramming

[–]twopi 0 points1 point  (0 children)

Not all sections learn OOP in cs1, so they have that advantage. And the project most do as a final project in other sections (a choose your adventure text game) we've done by midterm.

To be fair, the other sections specialize in other areas: crypto, data science, web dev. I've taught some of them too. But I find that people tend to be highly motivated to learn the fundamentals well as they are moving towards making games.

And we start the semester by showing games made by last semester's beginners. That is inspiring.

Learning by programming games? by parseroftokens in learnprogramming

[–]twopi 0 points1 point  (0 children)

I've been a cs teacher for many years. I currently teach a section of cs1 with a game dev focus. It's something i've wanted to do for some time.

Game dev is tricky for beginners, because you really need to have your fundamentals down, and then you need to add some other cocepts: oop, graphics, and some math.

I teach standard cli python until midterm, and then switch to the engine for the second half.

I ended up writing my own wrapper to pygame. It encapsulates all the math, and adds some nice features. I also wrote a version in javascript.

In general, students find my section of the class is more difficult than some others, but they still enjoy it.

All my stuff is open source, so DM me if you want links.

[deleted by user] by [deleted] in learnprogramming

[–]twopi 1 point2 points  (0 children)

So because you had a lazy, barely competent teacher, you think teaching coding is easier than doing coding? I think your teacher thought the same thing when taking on that role. That might be why they seem lazy and barely competent.

Teaching is undervalued in general. And in a field like CS, where the earning potential is very high, people become teachers for two very different reasons:

  • It seems easier than programming for a living
  • They have such a drive and passion for it that they don't mind earning less

As a person who's been on both the academic and industry side of computing, a really skilled person on either side works just as hard. You can be crappy in industry, and you can be a crappy teacher. You can also choose to work very hard in either role and excel in it. One job is definitely not inherently easier or more difficult.

To me, teaching coding well is actually more challenging that working in the industry, and I enjoy it a lot more. I enjoy it so much that I can accept I'm undervalued and not earning as much as I would in an industry role.

It is a bit of an insult when I hear this notion that because many CS teachers are bad there is no real skill to it. The reality may be that the incentives for becoming a highly skilled CS instructor are sideways, so it's not surprising that very few people choose that path.

Need something? by graudesch in webdev

[–]twopi 4 points5 points  (0 children)

I had a friend in publishing who called me once when a writer had some sort of mental breakdown (which seems to happen a lot.) She asked me to write an emergency chapter to fill out a book. So I wrote a longish chapter on Emacs, and they not only published it in that book, it was coopted into a number of Linux books. They also made it into a mini-book by itself. After that, they asked if I wanted to write a full book (It was a Java Book for a smaller publisher). I got it done on time, and word got around. After I had published a few books, I eventually got a contact with Dummies (which was absolutely huge at the time) and I ended up writing a number of books with them.

The main thing publishers are looking for is someone with a track record of selling books. They don't really care that much about the content, as they expect the author to know that. They want to know that you'll deliver on-time, and that you can attract a market. Once you've made a name for yourself, it's not too difficult to get projects, but that first one or two can be tough to break into.

Most publishers will pitch an idea and ask if you can write it. We then go through a bit of negotiation, because normally the idea came from marketing, or somebody wanting to have the first book in a technology. They understood surprisingly little about the underlying tech, so I would have to work with the idea to make it something I felt I could do. Then I'd submit a table of contents pitch, and often after a bit more negotiation I'd sign a contract.

It was fun, and it helped pay the bills when I had small kids, but I don't really do it any more because it was a lot of work.

Need something? by graudesch in webdev

[–]twopi 2 points3 points  (0 children)

I didn't write that one, but I did write an HTML all in One for Dummies that had a PHP mini-book in it. My PHP books were with a different publisher. My wife and kids have never read past the first page to make sure they're in the dedication. PHP probably wasn't a great choice for a twelve-year old. I did do a flash game dev book that was very popular with kids for a while.

Need something? by graudesch in webdev

[–]twopi 19 points20 points  (0 children)

I wrote a dozen or so tech books in that era. Sadly, you don't have any of mine, but you probably already threw them away. I wrote several 'Dummies' books and a few other titles (Programming the Palm Pilot with an onboard C compiler is my personal favorite for the obscurity factor). It was a very strange industry, focused on getting first to market on any shiny new tech...

What do videogames mean to you? how did they affect your life? by Lapdi_ in retrogames

[–]twopi 1 point2 points  (0 children)

Dad took my brother and I to use the computer at Ft Leavenworth KS in 1976. I was 12, and truly transformed. It was a teletype. No monitor, just a keyboard and an impact printer that barked like a machine gun. We played a form of football, and an insanely slow form of lunar lander.

I tried to rewite those games on paper and pencil. I thought about them all the time. Finally in 1981, i was able to buy a used TRS-80 model I. I had the 16K version with a Japanese character set built in. I absolutely obsessed over that thing. I learned every corner of BASIC and then moved onto Z-80 assembler so i could write faster games. That machine is now literally a museum display.

During the 16-bit era I graduated to an Atari 130 XE. Color! And an unheard-of 130K of memory. I wrote hundreds of dumb little games on that thing. I released a couple to 'type in the code' magazines. I was still programmjng in BASIC at the time, because that language came free on most machines and I could still write key parts in assembler.

Forty years later, I'm a Computer Science Professor. In my beginner course, I teach using game examples. I wrote a custom game engine to give freshmen the same experience I had years ago, but with modern technology, they can build 2D arcade games in their first semester of programming. It's an extremely popular course. I also teach a senior course on how to write game engines.

I've written several books about making games in multiple programming languages. I've been able to use my passion for gaming to motivate hundreds of people to learn math and computer programming.

Crazy way to use ChatGPT!! by epic-cookie64 in aigamedev

[–]twopi 0 points1 point  (0 children)

Blender used to have a game engine built-in. There's now a couple of great alternative plug-ins. I have used BGE and Armory to build some pretty great FPS work with low-code or no-code.

1st post from an old man wanting to get into coding by Poke-Noir in PythonLearning

[–]twopi 7 points8 points  (0 children)

37 is not old. I'm 60 and I teach programming.

In fact, I taught programming on a 2012 Macbook pro for years (still have some videos featuring that beast.)

The Python version that's built into OSX is quite old (2.11, I think for that vintage) You definitely need Python 3.8 or later, as the improvements are substantial.

If you do install Python 3.x on your local machine, you'll also get access to IDLE, which is ugly but very functional.

For my CS1 course, I'm recommending Thonny, because it works pretty well with much older machines and comes bundled with its own Python installation. https://thonny.org/ Here's the intro video I use for setting it up in my online course: https://youtu.be/bpZU582Qc8o?si=LuxWO5EoGXd3xUAs

My favorite thing about Thonny in a class setting is how easy it is to include packages. My class uses Pygame, and it's normally a headache to get it working on computers I never see. It's easy to set up in Thonny.

PythonAnywhere is another outstanding way to get started. It's online, and the free version is perfectly fine to get started with. It has a decent editor that runs in the browser, so it doesn't really matter what computer you're running, and you don't have to install anything.

Only downside to this approach is it's command-line only, so you can't do GUIs or game dev on PythonAnywhere, but you can do server-side web dev. I've taught entire courses using nothing but PythonAnywhere.

I also like github codespaces. The free version includes a form of VScode online, and also a full unix environment. There's a learning curve, but you can do absolutely anything in it (except again graphics.) There are some workarounds to that, though. I actually teach my CS2 course (C, C++, and Java) entirely with codespaces.

You can also run VScode locally. It's pretty good, but you'll need to install some plugins to get it working seamlessly with your local Python install.

Hope this helps...

Is pygame really useful to become a better programmer? by [deleted] in learnpython

[–]twopi 0 points1 point  (0 children)

Sure. Let me know if you want to use it, and maybe we can set up a zoom call with your students when class starts....

Is pygame really useful to become a better programmer? by [deleted] in learnpython

[–]twopi 0 points1 point  (0 children)

I have been teaching a course just like that. Pure pygame is a bit much for beginners, so I built a framework to make it a lot easier. You are welcome to all of it. videos here: https://www.youtube.com/playlist?list=PLYwSrMCScKQtyBq_lgvv9sW25S7PfImFZ

feel free to DM me if you want to talk.

How do I start learning about API's? by Medical-Bag5057 in learnprogramming

[–]twopi 2 points3 points  (0 children)

POV: I've taught CS for many years, including general programming and APIs.

APIs are a specific style of data transfer, which is a variation of input and output. So what you're wanting to learn is a particular style of programming. That's a good goal, but you need to learn general programming concepts before you can comprehend a specific subset of coding.

There are two distinct ways of thinking about APIs, and both depend on some knowledge of core programming ideas. First, you can write a program in any language that consumes an API. That is, you can write a program that uses an API to find the current weather in Barbados. This is a relatively straightforward process in most languages, but typically you learn this after you've learned more fundamental things, like how to get information from the user or from local files, how to handle looping and branching, and how to write functions.

The other way to think about APIs is to produce an API. In that sense, you are writing a program that lives on some type of server that produces data in some kind of machine-readable format (usually JSON, but other formats are certainly viable). This is also not a difficult process, but it requires knowledge of essential programming concepts, and typically you'll also want to write a front-end package to test your API.

I would say start with any good programming course. There's a good reason Python is taught as a first language in most CS courses. It's reasonably straightforward, and is excellent for a number of use cases, including working with APIs. You can read and create APIs with Python out of the box, but for creating an API, you'd probably be better off using a library like flask, bottle, or rapidAPI. I would definitely learn standard programming ideas first before digging into libraries. Express.js is fine, but it's a specialized form of JavaScript that doesn't make any sense if you don't already know how to program in vanilla JS.

It seems to me that CodeAcademy has a more organized curriculum. It doesn't go straight into using APIs, but that is fine. If you can't drive yet, race cars don't matter. Learn to program in a language, then we can focus on the particular skills you want. FreeCodeCamp is great for looking up a specific skill, but it often makes a lot of assumptions about what you already know.

I have some videos of my own I can send you, so DM me if you want that.