REMEMBER: Your homework #3 is due Thursday next week!!
This week we will work on:
In-class students-at-the-whiteboard time!Things to play with:
One easy thing to do is to create a basic web page that has some of these things (or all of them) on the page, and then "connect" some simple functions that just call the alert output at first. This process will prove that you have defined and connected the event handler functions to the user interface element or elements you desire. We've seen this previously in class and we'll play with this again.
OBTW: the "create a page and connect it to functions" idea is one of the homework problems for this week which are due on Thursday!
In fall semester 2010, the senior computer science students created a game for their group senior project class. Patterned after the "Angry Birds" game, "Manic Monkey Madness" is a browser based game written entirely in JavaScript. It uses the html5 canvas element, and has lots of cool things built into it. We'll take a look at some of the code and glean some important lessons about a few of the more advanced topics of JavaScript programming which were used to implement this very fun game!
Here is a link to the description page.
Here is the link to the game itself.
For this exercise, I'll be putting up some problem descriptions on the board and asking several people to come up in groups to write the code to solve them. We'll be doing this several times over the next couple of weeks, to give everyone a chance. This will provide practice with the following:
As you may remember from the second quiz, these are skills you will need as programmers, and also as students taking the final exam at semester's end, so even those who are not at the whiteboard are all welcome to participate, either by doing something similar at their desks, or by actually participating in the process with suggestions and questions.
Since this is designed as a learning exercise, the questions, "Why did you do it like that?", or "Would this work better?", or the suggestion, "Why not try …?" are all valid things to do.
We'll take a look at some of the things that are involved with your homework problems for the week, and answer any questions you have. We can use this time to work through the problems, clarify any of the concepts that still aren't totally understood, and get more of a handle on the way things work in a general sense.
Next week, we will start looking at what is involved in making a non-trivial piece of software. This topic is actually a two-semester (or more) series of classes, but this will provide you with a snapshot of what it takes to be a software engineer. There are lots of parallels between the philosophy of software engineering and other disciplines like Philosophy, Psychology, Marketing, Sociology, as well as mathematics and other more "hard science" disciplines. Should be an interesting discussion, so come prepared to share your thoughts about what you think is similar with what your interests are!
Hopefully, the week after that, we can get a chance to turn our skills to robotics! The Keck Lab has several helicopter robots which can be programmed using JavaScript, and I'd like to get a chance to try them out, so if you are interested, let me know and let's see if we can't make it happen!