Engr 692: Special Topics in Engineering Science
(Ruby and Software Development)
Fall 2006
Syllabus


Locations

The Fall 2006 class meets in Weir 106 from 4:00 p.m. until 5:15 on Mondays and Wednesdays.

The class is taught by Prof. Conrad Cunningham, whose office is 203 Weir Hall. Prof. Cunningham's official office hours for this session are 10:00 a.m. to 11:30 on Tuesdays and Thursdays or by appointment at other times.

Prof. Cunningham's voice telephone number is (662) 915-5358 and fax number is (662) 915-5623. His WWW home page is http://www.cs.olemiss.edu/~hcc/ and his email address is cunningham AT cs DOT olemiss DOT edu.

The WWW home page for this class is http://www.cs.olemiss.edu/~hcc/engr692ruby/ .

The final examination for this class is scheduled for 4:00 p.m. on Friday, 8 December 2006.


Student Disabilities Services Statement

"It is the responsibility of any student with a disability who requests a reasonable accommodation to contact the Office of Disability Services (915-7128). Contact will then be made by that office through the student to the instructor of this class. The instructor will then be happy to work with the student so that a reasonable accommodation of any disability can be made."


Course Goal

Upon completion of this course, the student should be able to understand the programming paradigm underlying dynamically typed, object-oriented languages such as Ruby and be able to utilize the languages in contemporary software development practice.


Course Description

Ruby is a dynamically typed, object-oriented programming language that blends features from previous languages such as Smalltalk, Lisp, and Perl into a pure object-oriented language with a conventional syntax and a powerful semantics. This special topics course will critically examine the Ruby language and study how its features and the programming techniques it engenders can be used effectively in software development.


Prerequisites

This class is intended for students admitted in full standing to the graduate program of the Department of Computer and Information Science. Students are expected to have a background in object-oriented programming, algorithms, data structures, and programming languages similar to the undergraduate courses CSCI 111, 112, 211, 433, and 450. Students are expected to have a mature understanding of data abstraction, inheritance, polymorphism, composition, and other object-oriented concepts.

Graduate students in other fields should not be enrolled in this class without the explicit permission of the instructor and of their department. Any students in this category are expected to provide the instructor with a note from their advisor or department chair indicating such permission.


Source Materials

Textbook: (in bookstore)
Dave Thomas with Chad Fowler and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide, Second Edition, The Pragmatic Bookshelf, 2005. ISBN 0-9745140-5-5.
Optional reference books: (not in bookstore)
Lucas Carlson and Leonard Richardson. Ruby Cookbook, O'Reilly Media, July 2006. ISBN 0-596-52369-6.
Readings:
Web materials, journal and conference articles, research reports, and other materials as appropriate.


Course Topics

The actual topics will change depending somewhat upon the evolving interests of the instructor and students as the semester progresses. The course will begin with an overview of the basic syntax and semantics of the language, building upon the students' knowledge of languages such as Java and C++. Then the course will study the interesting features and their implications for software development.


Professional Conduct

As a student in Engr 664, you are expected to conduct yourself in a professional manner according to the Honor Code of the School of Engineering, the Information Technology Appropriate Use Policy, the M Book, and any other relevant policies.

Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:


Grading

The grading scale is A [90..100], B [80..90), C [70..80), D [60..70), and F [0..60).

Credit toward the semester grade will be allocated to each of the components as follows:

Presentations/Homeworks/Projects 40%
Exams 60%


Assignments


Examinations


[ ENGR 692 Home ]
[ Cunningham's Home | Teaching | Current Courses ]
[ Department's Home | Courses ]


Send any comments or suggestions to Prof. Conrad Cunningham,
cunningham AT cs DOT olemiss DOT edu.
Copyright © 2006, H. Conrad Cunningham
Last modified: Mon 21 Aug 2006