The new term is now in full swing, and I'm enjoying myself. I finally get to choose (all but one of) my classes this year, and I find them all both engaging and challenging. Here's as understandable an explanation I can make of all the classes I'm taking:
Artificial Intelligence (AI): Speaks for itself, mostly. I'll be learning everything from decision-tree algorithms to how we can make robots think, learn and be "intelligent." I don't know what our project will be yet, but last year's was to create the "mind" for a robot like a roomba. Ideally, if attached to a real roomba "body," it would be able to navigate a room's floor and vacuum it in the most efficient way possible. I've heard from last year's 4th years that this project--and class--was quite challenging. It interests me enough, though, that I'm just going to put my nose to the grindstone and hope for the best.
Constraint Programming (CP): Consider a Sudoku problem. You have spaces for numbers, some of which are filled in. Then you have "constraints," where each row, colum, and 3x3 square must all have the numbers 1-9, no repetitions. A solution program to this constraint satisfaction problem, or CSP, would consider the empty spaces, the ones filled in, and the constraints, and using built-in algorithms, would be able to solve any Sudoku problem. These are the sort of problems I'll be learning about. I won't have to write the algorithms, but instead will use software called Choco to write these programs and then look "under the hood" at the algorithms themselves so that I understand how Choco works, and can write more efficient programs. We'll be first writing a Sudoku solver, which is actually small and straightforward, and then be doing something more complex, which I don't know yet. This is a branch of AI, so a few of the topics overlap with my AI class.
Functional Programming (FP): In this class we will be learning a programming language called Haskell, which is classed as a "functional" language. Languages like C++ and Java are considered "imperative." It's too complex to explain what these mean if you don't know much about programming. Essentially, functional languages are more mathematics-based. Many banks use them for their software, but they can usually be used for anything imperative languages can be used for. The important part is that you have to think differently when programming, which can be quite challenging if you're not used to it. As a programmer, it's always good to learn new languages, and I enjoy the challenge.
Human-Computer Interaction (HCI): This class is a bit less technical. We will be learning about different ways of interacting with computers (not just visually, but including touch and hearing/audio) and how to write a user-friendly program. This includes things like, where will the button/menu bar/text field go so that the user instantly knows what that thing does? Sites like Twitter, Facebook, even Google and Apple probably have an HCI expert or team helping their website designers choose how things look. This applies to programs like Word and Excel, games, even Android and iPhone apps. The project in the class is to create any program, just as long as it follows the HCI rules we learn in the class. Next term I'll be taking MHCI, which focuses on Android programming. Apps are definitely the thing to know about these days.
Those were the classes I've chosen for this term... hopefully they were fairly understandable to those of you who aren't technically-oriented. The class I'm required to take is Professional Skills and Issues, where we learn about ethics in the software world and write essays to learn how to argue and hone our writing skills. I don't think I need help there, but completion of the course means getting accredited by the BCS (British Computing Society), where otherwise I'd have to take a test, do a presentation, and pay something around £150. I guess it's worth it.
Fun stuff.
Side note: I've started using Tumblr again. So check out my page of pretty books and cute things and fun quotes (link on the left near the top of the page).
Oh, and Happy October! It's almost All Hallows Read.
No comments:
Post a Comment