Lectures: Tuesdays and Thursdays - 1:35-2:50 pm - Doolan Hall 219
Instructor: Philip Dorin - Doolan 102 - (310) 338-2832 - philip.dorin@lmu.edu
Secretary: Jacqi Davis - Doolan 101 - (310) 338-7351 - JaDavis@lmu.edu
Labs Manager: Andres Buritica - Doolan 104 - (310) 338-8100 - andres.buritica@lmu.edu
Laboratory Assistants: Doolan 114 (aka the Keck Lab). The Keck Lab is open variously from eight to twelve hours per day. (By the second week of the semester) you will find a schedule posted on the door. If the lab is open, there will be a lab assistant on duty.
This is a course about algorithms:
what they are;
what they can, and can not, do;
how to construct correct ones;
how to express them in a modern-day computer programming language.
We will design algorithms for lots of numerical and non-numerical problems, and we will program many of them in JavaScript.
We will also have some things to say about the history of computing, computer architecture, translation vs. interpretation of programming languages, algorithm paradigms, sorting and searching, recursion, objects, program correctness, computational complexity and intractability.
This course is not, by itself, intended to be a comprehensive study of the JavaScript language- or, for that matter, website construction, style sheets, etc. Computer science majors- and some minors- should take the continuation course, CMSI 186, in the spring.
There are no formal prerequisites, but be prepared to deal with some relatively lightweight mathematics.
Toal and Dionisio. The JavaScript Programming Language. Jones and Bartlett, 2009.
Expect, roughly, a new homework assignment each week; a mid-term exam (tentatively scheduled for Thursday, October 22); and a two-hour final exam (consult the university's official exam schedule).
In evaluating the quality of your work, I will take into consideration your total course effort, including homework, midterm exam, and final exam, with emphasis on the exams.
Grades will be awarded as follows: for superior work, A; for good work, B; for satisfactory work, C; for poor work, D; for failing work, F. At the discretion of the instructor, these may be raised by a + or lowered by a -.
Regarding academic honesty and integrity, students are referred to the LMU Bulletin 2008-2010, specifically, the section dealing with the university's honor code and process.
You should try to work, as often as possible, in the Keck Lab. At any given moment it is equipped with around twenty-five (mostly, Mac and Linux-based) machines, and they all have the appropriate software installed. There are also numerous stations for using a laptop or netbook. Even more important: most computer science students, lab assistants, and professors tend to hang out there, easily making it the most programmer-friendly (and tech-savvy) lab on campus.
If you do plan to use your own computer, you already have all the software you need, namely, a browser (Firefox, Safari, Internet Explorer) and a text editor (e.g., Notepad, TextEdit, nano, Microsoft Word).
Kindly turn off the ringer on your cell phone before class begins.
Music players, laptops, netbooks, etc., should not be used during class.
The contents of this syllabus are subject to change, as necessary. You should periodically monitor this website to keep abreast of any changes, as well as posted homework assignments, hints, solutions, etc.
Four more JavaScript programs [10/22]
Four more JavaScript programs [11/17]
Alphabetical Strings using a break statement
Alphabetical Strings without a break statement
Prime Numbers illustrating a switch and that the input is a string
Prime Numbers showing how to convert the input to a number
Prime Numbers using a do-while loop
Prime Numbers incorporating our own square root function
Revised: 18:00 on 3 November 2009