﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="CSE775">

  <btitle>CSE775</btitle> 
  <theme src="CoursesTheme.css" />

  <visible>
  <title>CSE775 - Distributed Objects Processing</title>
  <revised>18 April 2011</revised>
  
  <hnav/>
  <cnav/>

  <html><img src="students/cse775s05.jpg" width="100%"/></html>
  <html><a name="contents"/></html>

  <section title="Resources:">
    <ifile title="Lectures">../CSE775/Lectures/cse775codeL1.xml</ifile>&#32;
    <ifile title="Code">code.xml#CSE775</ifile>&#32;
    <html><a href="#Syllabus">Syllabus</a></html>&#32;
    <ifile title="Uploading Project Submissions">uploads.doc</ifile>&#32;
  </section>
  
  <section title="Course Scope:">
  Design and implement software components that use the Win32 API, Component Object Model (COM) and 
  the .Net object model.  Students will develop projects requiring them to build and use
  components and controls.  Several of these will be distributed applications using Windows messaging, 
  sockets, and WCF.  We will also do some windows programming using both the Win32 API and WPF.
  <p/>
  Component technologies are a very important part of the software development process.
  COM is a major part of the Windows family of operating systems, and the .Net Common
  Run-Time is implemented as a COM component.  Many of our former students are currently
  working on COM-based implementations in the industry.  However, I expect the .Net 
  component technology to eventually supercede COM.  Therefore this course will emphasize 
  both and discuss interoperability between these two implementation paradigms.
  </section>
 
  <section title="Required Texts and Notes:"/>
  <olist>
    <litem>
      WVCC: Windows via C/C++, Fifth Edition, Richter and Nasarre, Microsoft Press, 2008, ISBN  
    </litem>
    <litem>
      CATL: COM and ATL 3.0, Andre Troelsen, WordWare Publishing, 2000, ISBN 10: 1-55622-704-3, Available in SciTech Library
    </litem>
    <litem>
      PWCF: Programming WCF Services, 2nd Edition, Juval Lowy, O'Reilly, 2009, ISBN 978-0-596-52130-1, Available in SciTech Library
    </litem>
    <litem>
      PWPF: Programming WPF, 2nd Edition, Sells and Griffiths, O'Reilly, 2007, ISBN 10: 0-596-51037-3, Available in SciTech Library
    </litem>
    <litem>
      Class Notes, available on 
      <ilink title="www.ecs.syr.edu/faculty/fawcett/handouts/CSE775">www.ecs.syr.edu/faculty/fawcett/handouts/cse775</ilink>
    </litem>
    <litem>
      Additional Reference available at desk in SciTech Library:<br/>
      - Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002, ISBN 0-7356-1376-1<br/>
    </litem>
  </olist>
 
  <section title="Prerequisites:"/>
  <block>
  CSE687 - OOD, is a prerequisite.  This course uses a lot of C++ technology, and will not provide
  that background.  However, the CSE687 course is designed to provide you with the tools
  you will need for this course.
  </block>
  
  <section title="Syllabus - Spring 2011:"/>
  <file title="Final Projects">../cse775/lectures/CSE775Projects.xml</file>
  <html><a name="Syllabus"/></html>
  <syllabus>
    <syllHeading>
      <sd>Lecture</sd>
      <hd>Topics</hd>
      <hd>Read before class</hd>
      <hd>Project</hd>
    </syllHeading>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#1">../CSE775/Lectures/cse775codeL1.xml</ifile>
        <br/>Tue, Jan 18
      </ld>
      <ld>
        Syllabus, Projects, Exams,<br/>Why Components?, Win32 Programming, COM and .Net object models, 
        <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts/cse775</ilink>
      </ld>
      <ld>skim WVCC chp 1-3<br/>WVCC 19-20</ld>
      <cd>hand out<br/><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#2">../CSE775/Lectures/cse775codeL2.xml</ifile>
        <br/>Thur, Jan 20
      </ld>
      <ld>
        Win32 Programming, files, directories and their management, dlls
      </ld>
      <ld>skim WVCC chp 1-3<br/>WVCC 19-20</ld>
      <cd>hand out<br/><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#3">../CSE775/Lectures/cse775codeL3.xml</ifile>
        <br/>Tue, Jan 25
      </ld>
      <ld>Windows GUI structure and programming</ld>
      <ld>WVCC Chp 19-20,<br/>class notes</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#4">../CSE775/Lectures/cse775codeL4.xml</ifile>
        <br/>Thur, Jan 27
      </ld>
      <ld>Windows messages and controls</ld>
      <ld>WVCC Chp 19-20,<br/>class notes</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#5">../CSE775/Lectures/cse775codeL5.xml</ifile>
      <br/>Tue, Feb 01</ld>
      <ld>Win32 Processes, threads, thread synchronization, Memory-Mapped Files</ld>
      <ld>WVCC chps 4, 6-9, 17</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#6">../CSE775/Lectures/cse775codeL6.xml</ifile>
      <br/>Thur, Feb 03</ld>
      <ld>C++ Threads and Locks classes</ld>
      <ld>WVCC chps 4, 6-9, 17</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <cd>
        <ifile title="Lecture&#32;#7">../CSE775/Lectures/cse775codeL7.xml</ifile>
      <br/>Tue, Feb 08</cd>
      <ld>In-Process COM components, interfaces</ld>
      <ld>
        CATL chps 3, 4
      </ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <cd>
        <ifile title="Lecture&#32;#8">../CSE775/Lectures/cse775codeL8.xml</ifile>
      <br/>Thur, Feb 10</cd>
      <ld>Interfaces, dynamic linking, GUIDS, registry</ld>
      <ld>
        CATL chps 3, 4
      </ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#9">../CSE775/Lectures/cse775codeL9.xml</ifile>
      <br/>Tue, Feb 15</ld>
      <ld>Class Factory, Service Control Manager, Activation, IDL</ld>
      <ld>CATL Chp 3<br/>Web Notes</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#160;#10">../CSE775/Lectures/cse775codeL10.xml</ifile>
      <br/>Thur, Feb 17</ld>
      <ld>IDL, COM Clients</ld>
      <ld>CATL Chp 3, 4<br/>Web Notes</ld>
      <cd><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#11">../CSE775/Lectures/cse775codeL11.xml</ifile>
      <br/>Tue, Feb 22</ld>
      <ld>COM Types, BSTRs, Variants, SafeArrays, Intro to Apartments</ld>
      <ld>CATL 4, 5<br/>Web Notes</ld>
      <ed><ifile title="Pr1">../cse775/projects/Pr1s11.doc</ifile> due</ed>
    </lecture>
<!--
    <lecture>
      <ld>Win32 Sockets<br/>
        <ifile title="Lecture&#32;#9">../CSE775/Lectures/cse775codeL9.xml</ifile>
      <br/>Wed, Feb 11</ld>
      <ld>Sockets, COM Remoting</ld>
      <ld>CATL Chp 5,<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
-->
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#12">../CSE775/Lectures/cse775codeL12.xml</ifile>
      <br/>Thur, Feb 24</ld>
      <ld>Active Template Library (ATL), structure, facilities, examples</ld>
      <ld>CATL Chps 6, 7,<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#13">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Tue, Mar 01</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Platform &amp; Technology</ld>
      <ld>Phil Pratt-Szeliga, Bikramjit Sen, Richard Balmir, Srihari Sridhar</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </emlecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#14">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Tue, Mar 03</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Platform &amp; Technology</ld>
      <ld>Shreyas Gandhi,<br/>Yiou Li,<br/>A. Manikantan,<br/>M. Mohammed</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </emlecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#15">../CSE775/Lectures/cse775codeL15.xml</ifile>
      <br/>Tue, Mar 08</ld>
      <ld>ATL, CComBSTR, CComQIPtr, more examples</ld>
      <ld>CATL Chps 8, 9<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#16">../CSE775/Lectures/cse775codeL16.xml</ifile>
      <br/>Thur, Mar 10</ld>
      <ld>Out-of-Process Components, Activation, Automation and IDispatch</ld>
      <ld>CATL Chp 3,<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
    <emlecture>
      <ld>Tue, Mar 15</ld>
      <cd>Spring Break</cd><cd>No classes</cd><cd>&#160;</cd>
    </emlecture>
    <emlecture>
      <ld>Thur, Mar 17</ld>
      <cd>Spring Break</cd><cd>No classes</cd><cd>&#160;</cd>
    </emlecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#17">../CSE775/Lectures/cse775codeL17.xml</ifile>
      <br/>Tue, Mar 22</ld>
      <ld>Apartments, COM's Data and Eventing Models</ld>
      <ld>CATL Chp 7,<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <cd>
        <ifile title="Lecture&#32;#18">../CSE775/Lectures/cse775codeL18.xml</ifile>
      <br/>Thur, Mar 24</cd>
      <ld>
        Automation, Connectable Objects, ActiveX Controls
      </ld>
      <ld>CATL Chps 10, 11, 12, 14<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/Pr2s11.doc</ifile></cd>
    </lecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#19">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Tue, Mar 29</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Installation &amp; probing Examples, Final Project Statement</ld>
      <ld>Phil Pratt-Szeliga, Bikramjit Sen, Richard Balmir, Srihari Sridhar</ld>
      <ed><ifile title="Pr2 due">../cse775/projects/Pr2s11.doc</ifile></ed>
    </emlecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#20">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Thur, Mar 31</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Installation &amp; probing Examples, Final Project Statement</ld>
      <ld>Shreyas Gandhi,<br/>Yiou Li,<br/>A. Manikantan,<br/>M. Mohammed</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/cse775projects.xml</ifile></cd>
    </emlecture>
    <lecture>
      <ld> 
        <ifile title="Lecture&#32;#21">../CSE775/Lectures/cse775codeL21.xml</ifile>
      <br/>Tues, April 05</ld>
      <ld>Interop between COM, C++/CLI, and C#</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
<!--
    <lecture>
      <ld> 
        <ifile title="Lecture&#32;#21">../CSE775/Lectures/cse775codeL21.xml</ifile>
      <br/>Tue, Apr 05 </ld>
      <ld>Interop between COM, C++/CLI, and C#</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
-->
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#22">../CSE775/Lectures/cse775codeL22.xml</ifile>
      <br/>Thur, Apr 07</ld>
      <ld>.Net controls, user controls, components, controls hosts</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#23">../CSE775/Lectures/cse775codeL23.xml</ifile>
      <br/>Tue, Apr 12</ld>
      <ld>WPF controls, user controls, custom controls, control hosts</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#24">../CSE775/Lectures/cse775codeL24.xml</ifile>
      <br/>Thur, Apr 14</ld>
      <ld>WPF controls, user controls, custom controls, control hosts</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#25">../CSE775/Lectures/cse775codeL25.xml</ifile>
      <br/>Tue, Apr 19</ld>
      <ld>WCF, service, data, and message contracts, hosting, activation models</ld>
      <ld>PWCF Chps 1, 2, 3, 4<br/>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
<!--
    <lecture>
      <ld>WCF Limitations<br/>
        <ifile title="Lecture&#32;#19">../CSE775/Lectures/cse775codeL19.xml</ifile>
      <br/>Mon, Jul 31</ld>
      <ld>WCF quirks, limitations, examples</ld>
      <ld>PWCF Chps 1, 5<br/>Web Notes</ld>
      <cd><ifile title="Pr3">../cse775/projects/pr3s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>WCF and Web Services<br/>
        <ifile title="Lecture&#32;#22">../CSE775/Lectures/cse775codeL22.xml</ifile>
      <br/>Mon, Apr 06</ld>
      <ld>Classic and WCF web services, web client</ld>
      <ld>PWCF Chp 1,<br/>Web Notes</ld>
      <ed><ifile title="Pr3">../cse775/projects/pr3s11.doc</ifile> due</ed>
    </lecture>
-->
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#26">../CSE775/Lectures/cse775codeL26.xml</ifile>
      <br/>Thur, Apr 21</ld>
      <ld>Review, odds &amp; ends, Java Platform</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></cd>
    </lecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#27">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Tue, Apr 26</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Final Project results &amp; conclusions</ld>
      <ld>Phil Pratt-Szeliga,<br/>Bikramjit Sen,<br/>Srihari Sridhar</ld>
      <cd><ifile title="Final Prjs due">../cse775/lectures/CSE775projects.xml</ifile></cd>
    </emlecture>
    <emlecture>
      <ld>
        <ifile title="Lecture&#32;#28">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Thur, Apr 28</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Final Project results &amp; conclusions</ld>
      <ld>Shreyas Gandhi,<br/>A. Manikantan</ld>
      <cd><ifile title="Final Prjs due">../cse775/lectures/CSE775projects.xml</ifile></cd>
    </emlecture>
    <emlecture>
      <ld>
        <ifile title=" Makeup Lecture">../CSE775/Lectures/cse775projects.xml</ifile>
      <br/>Tue, May 03</ld>
      <ld><i>Final Projects:</i><br/>Student Presentations on Final Project results &amp; conclusions</ld>
      <ld>Yiou Li,<br/>Richard Balmir,<br/>Mubarek Mohammed</ld>
      <cd><ifile title="Final Prjs due">../cse775/lectures/CSE775projects.xml</ifile></cd>
    </emlecture>
<!--
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#27">../CSE775/Lectures/cse775codeL27.xml</ifile>
      <br/>Tue, Apr 26</ld>
      <ld>WPF, graphics, animation</ld>
      <ld>PWPF Chps 1-4, 6-8,<br/>Web Notes</ld>
      <cd><ifile title="Pr2">../cse775/projects/</ifile></cd>
    </lecture>
    <lecture>
      <ld>WPF Graphics<br/>
        <ifile title="Lecture&#32;#24">../CSE775/Lectures/cse775codeL24.xml</ifile>
      <br/>Mon, Apr 13</ld>
      <ld>Templates, navigation, graphics, animation</ld>
      <ld>PWPF Chps 9, 11, 13, 16<br/>Web Notes</ld>
      <cd><ifile title="Pr4">../cse775/projects/pr4s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>COM+<br/>
        <ifile title="Lecture&#32;#25">../CSE775/Lectures/cse775codeL25.xml</ifile>
      <br/>Wed, Apr 15</ld>
      <ld>COM+, vintage managed code</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Pr4">../cse775/projects/pr4s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>Interception &amp; Channel Model<br/>
        <ifile title="Lecture&#32;#26">../CSE775/Lectures/cse775codeL26.xml</ifile>
      <br/>Mon, Apr 20</ld>
      <ld>channels, sinks, and messages</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Pr4">../cse775/projects/pr4s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>Attributes, Contexts, interceptions &amp; Aspect-Oriented Programming<br/>
        <ifile title="Lecture&#32;#27">../CSE775/Lectures/cse775codeL27.xml</ifile>
      <br/>Wed, Apr 22</ld>
      <ld>contexts, channels, messages, interception demos</ld>
      <ld>Web Notes</ld>
      <cd><ifile title="Pr4">../cse775/projects/pr4s11.doc</ifile></cd>
    </lecture>
    <lecture>
      <ld>
        <ifile title="Lecture&#32;#28">../CSE775/Lectures/cse775codeL28.xml</ifile>
      <br/>Thur, Apr 28</ld>
      <ld>Final Project, Where do we go from here?</ld>
      <ld>Web Notes</ld>
      <ed><ifile title="Final Prjs">../cse775/lectures/CSE775Projects.xml</ifile></ed>
    </lecture>
    <lecture>
      <ld>.Net Security<br/>
        <ifile title="Lecture&#32;#20">../CSE775/Lectures/cse775codeL20.xml</ifile>
      <br/>Mon, May 02</ld>
      <ld>Windows, .Net, IIS security models</ld>
      <ld>Student Notes</ld>
      <ed><ifile title="Pr4">../cse775/projects/pr4s08.doc</ifile> due</ed>
    </lecture>
-->
  </syllabus>
  </visible>  
</courses>
