Fall 2006 courses for Jim Mahoney ------------------------- title: Digital Multimedia number: NSC551 faculty: Jim Mahoney area: computer science (see also photography, music, and film/video) credits: 3 when: TuThu 10:00 - 11:20 where: Sci 217 prereq: none level: intro repeat: no blurb: An introduction to computer manipulation of images, music, animation, and video, including background topics in optics, acoustics, and the Internet. The equipment and software will be flexible, but will emphasize open source systems such as Audacity (sound), the Gimp (images), and Blender (animation). Where schedules allow we will connect with the various art labs (photo, music, video), but much of the work won't require specialized equipment. Expect weekly assignments and tests as well as a midterm and final project. ------------------------- title: An Introduction to Programming with Python number: NSC552 faculty: Jim Mahoney area: computer science credits: 4 when: MWF 10:30 - 11:30 where: Sci 217 prereq: none level: intro repeat: no text: Python Programming: An Introduction to Compter Science, Zelle blurb: This is a first class in computer programming, and as such a foundation class for further work in computer science. Much as a competency with English grammar is required for writing, an understanding of programming is required to for nearly all intermediate and advanced work in computer science. A similar course is offered every Fall, though the language chosen varies from year to year. Python is a modern, elegant, high level scripting language, popular at Goggle among other places. In addition to learning about "object oriented programming", loops, input/output and all that, expect to also learn a variety of computer skills and basics. ------------------------- title: The Design and Implementation of Programming Languages number: NSC552 faculty: Jim Mahoney area: computer science credits: 4 when: TuThu 11:30 - 12:50 where: Sci 217 prereq: substantive experience with at least two programming languages level: intermediate / advanced repeat: no text: Programming Language Pragmatics, 2nd ed, M. Scott blurb: Rather than look at how to programming, this course examines the programming languages themselves. Topics may include compilers, assemblers, syntax, parsers, names and scope, types of programming languages, linking, optimization, memory management, and machine architectures. The text will be Michael Scott's "Programming Language Pragmatics"; look at its table of contents online for a better idea of what will be covered and at what level. --------------------------- title: Computer Networking and Practical Security number: NSC557 faculty: Gabriel Lein (senior plan course, sponsored by Jim Mahoney) area: computer science credits: 2 prereq: Some Unix familiarity, programming experience recommended when: Fri 11:30-12:50 where: Sci 217 blurb: This course will introduce students to the underpinnings of the internet and basic security measures. Students will be exposed to the tools and procedures for both administrating and attacking a network, as well as given an overview of modern cryptography. Graded work will be in the form of open-ended exploratory assignments, and students will be able to experiment in the safety of an isolated lab. ------------------------- title: Web Design where: Grad center course credits: M'boro tutorial credit when: alternate Fri evenings 5:30pm-8:30pm Sep 8 and 22, Oct 6 and 20, Nov 3 and 17, Dec 8 texts: Web Design in a Nutshell, 3rd ed, J. N. Robbins Designing with Web Standards, 2nd ed, J. Zeldman blurb: While it seems simple enough to create a web page these days (just clicking "Save as Web Page" in MS Word will make one), in fact there's a lot going on in your browser behind the scenes. Moreover, HTML and browsers have changed significantly in the last couple of years as open standards have become better supported and more commonplace. The good news is that you can create sites that load quickly, look good across many browsers (even phones and handhelds), and will still work in a few years - but only if you understand what's going on underneath. This course covers the modern "client" (i.e. the parts that run in a browser) technologies of web design, including XHTML (the structural layout), CSS (Cascading Style Sheets, the presentation specification), and the JavaScript DOM (Document Object Model) programming language that defines the behaviors of buttons, menus, and all that. We'll also likely cover AJAX (Asynchronous JavaScript and XML, a popular browser technology behind things like Google maps), forms, mashups, and some other bells and whistles depending on available time and students' background and interests. We'll also look at many examples of good and bad website visual designs, including navigation and page layout; however, our emphasis will be on how it all works rather than the aesthetics of how it looks.