CSC/ECE 517 Object-Oriented Languages and Systems

This course will cover object-oriented languages and the systems that can be built with them. Topics include object-oriented design and analysis, including methodologies such as the CRC-card method and the Unified Modeling Language. Systems concepts, including inheritance, static and dynamic binding, and aspect-oriented programming; implementation in specific languages, e.g., Java and Ruby on Rails. 3 credit hours.

 
   
   
Prerequisite
 

Undergraduate degree in computer science and knowledge of high-level language programming; familiarity with a wide variety of programming languages such as C, Lisp, Prolog and Ada or consent of the instructor.

 

Course Objectives   This course is designed to:
  • Teach students to analyze programming problems and design programs according to the object-oriented paradigm.
  • Present the concept of inheritance, static vs. dynamic binding, genericity, and conformance in the context of two or three object-oriented languages.
  • Introduce object-oriented programming environments, such as Smalltalk browsers, inspectors, and other debugging tools and documentation aids.

 

Textbook  

Required: Head First Design Patterns, Eric Freeman, Kathy Sierra, Bert Bates, Elisabeth Freeman, Publisher: O'Reilly, October 2004. ISBN: 0596007124.

Required: Programming Ruby: The Pragmatic Programmers' Guide (Pragmatic Programmers Series), Dave Thomas, Andrew Hunt, Chad Fowler, Publisher: Pragmatic Bookshelf, October 2004, Revised Edition, Includes 1.8. ISBN: 0974514055.

Recommended: Agile Web Development with Rails, Dave Thomas, David Heinemeier Hansson, Publisher: Pragmatic Bookshelf, December 2006. ISBN: 0977616630.

 

Course Requirements  

IMPORTANT NOTE: The course offered this summer was recorded http://www.csc.ncsu.edu/faculty/gehringer/517/f07/ during the 15-week fall semester at NC State University. The summer session, however, is 10 weeks in duration. Therefore, students will need to cover the course material at a considerably faster pace than during the regular semester. All course requirements must be completed during the 10-week summer session. This should be a consideration before registering for the course.

 

View Lecture  

Engineering Online uses Real Media software to distribute the course lectures. To view the following sample lecture, you will need to download RealOne Player and have a Cable, DSL, T1 or faster connection to the Internet. If you have problems viewing a lecture, please contact the Engineering Online office at 1-877-254-0058. Click the link below to download RealOne Player.

8.22 MB

Note: If you are behind a firewall, there is a chance you will not be able to access the files.

Click link to view lecture: CSC/ECE 517 - Lecture 1

To Download a video lecture file to your computer, click on the link below and choose "Save" to specify the location for the file to be saved.

Download lecture: CSC/ECE 517 - Lecture 1


Computer and Internet Requirements  

NCSU has recommended minimum specifications for computers used for classes. Depending on your computer needs, we recommend your computer meet or exceed the following minimum specifications below.

PCs must have an Intel-compatible 800 MHz processor, 256 MB RAM, 8 GB hard drive with 1 GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min.) video adapter, sound card, and speakers. The operating system should be Windows 2000 or XP. Real One Player Basic (available free online) and high speed Internet connection such as cable, DSL, T1 or LAN will be required for EOL courses.

MAC users must have a G3 processor with firewire and USB factory built-in, 256 MB RAM, 10 GB with 1GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min) video adapter, sound card, and speakers. The operating system must be MacOS 10.3 (minimum) along with the above RealOne and Internet specifications above .

For more detailed information on computer specifications and recommendations, please refer to our website at: http://engineeringonline.ncsu.edu/currentstudents/computeraccess.htm

 

Instructor  

Dr. Edward Gehringer, Associate Professor
North Carolina State University
Dept. of Electrical & Computer Engineering and Computer Science
Monteith Engineering Res.Ctr 450
Campus Box 7256
Raleigh, NC 27695-7256

Phone: (919) 515-2066
Fax: (919) 513-7075
E-Mail: efg@ncsu.edu
Instructor Website: http://www4.ncsu.edu/~efg