﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="../../webpages/courses.xsl" ?>
<!--
/////////////////////////////////////////////////////////////////////////////
//  CSE681codeL3.xml - provides links Lecture #3 materials                 //
//                     on the ECS college server                           //
//                                                                         //
//  Jim Fawcett, CST 2-187, Syracuse University, jfawcett@twcny.rr.com     //
/////////////////////////////////////////////////////////////////////////////
-->

<courses name="Fawcett">

  <btitle>CSE681 Lecture #3</btitle>
  <theme src="../../webpages/CodeTheme.css" />

  <visible>
  <title>CSE681 - Software Modeling and Analysis</title>
  <subtitle>Lecture #3 - C# and WinForms</subtitle>
  <revised>14 September 2005</revised>
  
  <hilight>
    <ifile title="Home">../../webpages/FawcettHome.xml</ifile>&#32;
    <ifile title="Courses">../../webpages/Courses.xml</ifile>&#32;
    <ifile title="Code">../../webpages/Code.xml</ifile>&#32;
    <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts</ilink>&#32;
    <ifile title="CoreTech">../../webpages/CoreTechnologies.xml</ifile>&#32;
    <ifile title="Books">../../webpages/Books.xml</ifile>&#32;
    <ifile title="Articles">../../webpages/Articles.xml</ifile>&#32;
    <ifile title="Math">../../webpages/Mathematics.xml</ifile>&#32;
    <ifile title="Research">../../webpages/research.xml</ifile>&#32;
    <ifile title="Masters Projects">../../webpages/MastersProjects.xml</ifile>&#32;
    <ifile title="SWDev">../../webpages/swdev.xml</ifile>&#32;
    <ifile title="WebDev">../../webpages/webdev.xml</ifile>&#32;
    <ifile title="News">../../webpages/news.xml</ifile>&#32;
    <ifile title="OtherLinks">../../webpages/OtherLinks.xml</ifile>&#32;
    <ifile title="SiteDesign">../../webpages/SiteDesign.xml</ifile>&#32;
    <ifile title="Graduates">../../webpages/graduates.xml</ifile>&#32;
    <ifile title="AllPages">../../webpages/AllPages.xml</ifile>&#32;
    <ifile title="Office Hours">../../webpages/OfficeHours.xml</ifile>&#32;
    <notice title="Notices">../../webpages/notices.xml</notice>&#32;
    <html><a href="#contents">Contents</a></html>&#32;
  </hilight>

  <!-- <include src="CoursesNavBar.xml"/> -->

  <hilight>
    <ifile title="CSE681-SWMAA">../../webpages/CSE681.xml</ifile>&#32;
    <ifile title="CSE686-IP">../../webpages/CSE686.xml</ifile>&#32;
    <ifile title="CSE687-OOD">../../webpages/CSE687.xml</ifile>&#32;
    <ifile title="CSE775-DO">../../webpages/CSE775.xml</ifile>&#32;
    <ifile title="CSE776-DP">../../webpages/CSE776.xml</ifile>&#32;
    <ifile title="CSE778-AWP">../../webpages/CSE778.xml</ifile>&#32;
    <ifile title="CSE784-SWS">../../webpages/CSE784.xml</ifile>
  </hilight>

  <hilight>
    <ifile title="Lecture #01">../Lectures/CSE681CodeL1.xml</ifile>&#32;
    <ifile title="Lecture #02">../lectures/CSE681CodeL2.xml</ifile>&#32;
    <ifile title="Lecture #03">../Lectures/CSE681CodeL3.xml</ifile>&#32;
    <ifile title="Lecture #04">../Lectures/CSE681CodeL4.xml</ifile>&#32;
    <ifile title="Lecture #05">../Lectures/CSE681CodeL5.xml</ifile>&#32;
    <ifile title="Lecture #06">../Lectures/CSE681CodeL6.xml</ifile>&#32;
    <ifile title="Lecture #07">../Lectures/CSE681CodeL7.xml</ifile>&#32;<br/>
    <ifile title="Lecture #08">../Lectures/CSE681CodeL8.xml</ifile>&#32;
    <ifile title="Lecture #09">../Lectures/CSE681CodeL9.xml</ifile>&#32;
    <ifile title="Lecture #10">../Lectures/CSE681CodeL10.xml</ifile>&#32;
    <ifile title="Lecture #11">../Lectures/CSE681CodeL11.xml</ifile>&#32;
    <ifile title="Lecture #12">../Lectures/CSE681CodeL12.xml</ifile>&#32;
    <ifile title="Lecture #13">../Lectures/CSE681CodeL13.xml</ifile>&#32;
    <ifile title="Lecture #14">../Lectures/CSE681CodeL14.xml</ifile>&#32;<br/>
  </hilight>
  
  <hilight>
    <html><a href="#Contents">Contents</a></html>&#32;
    <html>
      <a href="../../webpages/cse681.xml#Syllabus">Syllabus</a>
    </html>&#32;
  </hilight>
  
  <section title="Web Resources:">
      <ilink title="UML">bdn.borland.com/article/0,1410,31863,00.html</ilink>&#32;
      <ilink title="XML,&#160;HTML">www.w3schools.com</ilink>&#32;
      <ilink title="Code&#160;Project">www.codeproject.com</ilink>&#32;
      <ilink title="Microsoft&#160;Developer's&#160;Network">www.msdn.microsoft.com</ilink>&#32;
      <ilink title="DevelopMentor">www.develop.com/devresources/default.aspx</ilink>&#32;
      <ilink title="XML">xml.com</ilink>&#32;
      <ilink title="Sells&#160;Brothers">sellsbrothers.com</ilink>&#32;
      <ilink title="Windows&#160;Developer's&#160;Journal">www.wdj.com</ilink>&#32;
      <ilink title="Windows&#160;Forms">windowsforms.net/</ilink>&#32;
      <ilink title="DotNetJunkies">www.dotnetjunkies.com</ilink>&#32;
      <ilink title="GotDotNet">www.gotdotnet.com</ilink>&#32;
      <ilink title="C#&#160;Corner">www.c-sharpcorner.com</ilink>&#32;
      <ilink title="Mono&#160;Project">www.go-mono.com</ilink>&#32;
  </section>
  
  <isection title="Office Hours: ">
    <ifile title="Instructor &amp; TAs">../../webpages/officeHours.xml</ifile>
  </isection>
  
  <section title="Content:">
    <html><a name="Contents" id="Syllabus"/></html>
    This lecture is an introduction to the C# programming language and WinForms-based windows
    programs.  We will cover the basic C# language, some of its unique features, and present several 
    examples.  Following a break we will discuss creating Windows Applications using WinForms, again
    presenting several examples.

    <ind>
      <section title="C# Tutorials">
      <link title="MSDN C# ref">msdn.microsoft.com/library/default.asp?url=/library/en-us/cscon/html/vcoriCStartPage.asp</link>
      <link title="University of Linz C# Tutorial">www.ssw.uni-linz.ac.at/Teaching/Lectures/CSharp/Tutorial/</link>
      <link title="MSDN - getting started with C#">msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaa/html/getstart_vcsharp.asp</link>
      <link title="Win32 API to .Net Map">www.msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dndotnet/html/win32map.asp</link>
      <ifile title="Intro to C# Tutorial">../tutorials/IntroCSharp.ppt</ifile> and 
      <ifile title="Advanced C# Tutorial">../tutorials/AdvCSharp.ppt</ifile>
      </section>
<!--
      <section title = "WinForm Tutorial">
        <link title="www.gotdotnet.com Winforms tutorial">samples.gotdotnet.com/quickstart/winforms/</link>
      </section>
-->
    </ind>
    <olist>
      <litem>
        <html>
          The <a href="../../webpages/CSE681.xml#Syllabus">Syllabus</a> describes topics to be covered,
          reading material for you to digest <u>before coming to class</u>, and due dates
          for the assigned projects.
        </html>
      </litem>
      <litem>
        Brown-Bag Seminar topics meeting on Friday at 1:00pm in CST 2-120
      </litem>
      <litem>
        <file title="Project Upload instructions">../../uploads.doc</file>
      </litem>
      <litem>
        <file title="Project #1">../projects/Pr1F05.doc</file>
      </litem>
      <litem>
        <file title="Project #2">../projects/Pr2F05.doc</file>
      </litem>
<!--
      <litem>
       <file title="C# Tokenizer">../code/CSToker</file>
       For Project #2 testing, I've placed a folder CSToker in CSE681/code, that contains a tokenizer. If run on a text file 
       it pulls out individual words. To understand that, you may wish to download the folder, and run the tokenizer on its 
       own source code. 
       <p/>
       You are asked to add the ability to extract C and C++ comments as single tokens (not currently implemented but not
       terribly difficult), using your test harness to test and demonstrate that capability.
      </litem>
      <litem>
        <file title="Pr2 Help Prototype">../code/Pr2Help</file>
        This solution illustrates tokenizing, forming useful collections of tokens for analysis, and formation of a grammar.
      </litem>
      <litem>
        <file title="Grammar Issues for Project #2">../code/Pr2Help/GrammarIssues.doc</file>
      </litem>
      <litem>
        Detecting data declarations:
        <olist>
          <litem>
            remove prefix operators, e.g., * (pointers in unsafe code)
          </litem>
          <litem>
            remove postfix operators, e.g., = (initializing an array) and everything that follows
          </litem>
          <litem>
            remove all modifier keywords
          </litem>
          <litem>
            what is left is a type and a name
          </litem>
        </olist>
        <file title="C# Keywords">../presentations/CSharpKeyWords.doc</file>
      </litem>

      <litem>
        <file title="Hello World in C#">../code/HelloWorld</file>
      </litem>
      <litem>
         <file title=".Net Framework Library">../presentations/NetFramework.ppt</file>
      </litem>
      <litem>
        <file title="Demo File Handling">../code/CommandLine</file>
        Illustrates how to parse a command line file pattern, like *.cs, to find all the files that match.  It opens the
        last C# file found and reads a few lines.
      </litem>
      <litem>
        <file title="Collectons Demo">../code/Collections</file>
        Simple tokenizing demonstration as part of a HashTable test.
      </litem>
-->
      <litem>
        <file title="Delegate Structure">../presentations/delegateStructure.vsd</file>
      </litem>
      <litem>
        <file title="Delegates Demo">../code/delegateDemos</file>
        Delegates support the publish/subscribe idiom and provide major support for .Net's event model.
      </litem>
      <litem>
        <file title="Navigate Directory Trees">../code/Navigate</file>
        Shows how to walk through a directory tree, using the services of the Directory and Path classes from
        the Framework Class Library (FCL).
      </litem>
      <litem>
        <file title="Navigate with Delegates">../code/NavigateWithDelegates</file>
        Shows how to make the Navigate module reusable by incorporating delegates.
      </litem>
      <litem>
        <ilink title="Basic C# and Forms Tutorials">www.functionx.com/csharp/index.htm</ilink>,&#160;
        <ilink title="GotDotNet Forms Tutorial">samples.gotdotnet.com/QuickStart/winforms/default.aspx?url=/quickstart/winforms/doc/default.aspx</ilink>,&#160;
      </litem>
      <litem>
        <file title="Basic Windows Programming - Core Technologies">../../coretechnologies/windowsprogramming.xml</file>
      </litem>
      <litem>
        <file title="Basic Windows Presentation">../../CoreTechnologies/WindowsProgramming/presentations/IntroductionToWindows.ppt</file>
      </litem>
      <litem>
        <file title="Basic Windows Demos">../../CoreTechnologies/WindowsProgramming/Code/basicWindows</file>
      </litem>
      <litem>
        <file title="Pr2HelperF05">../code/Project2HelperF05</file>
      </litem>
      <litem>
        <file title="C# Form Demo">../../CoreTechnologies/WindowsProgramming/code/CSharpWinForm</file>
      </litem>
      <litem>
        <file title="Form with Browse Control">../../CoreTechnologies/WindowsProgramming/code/demoCppWinForm</file>
      </litem>
      <litem>
        <ifile title="Lecture #3 folder">../Lecture3</ifile> contains a page of links to 
        presentations and code discussed in this class.  The Lecture folders will occasionally
        hold physical files of interest as well.  Usually, however, all the materials 
        of interest to the class are in the <ifile title="presentations">../presentations</ifile>
        and <ifile title="code">../code</ifile> folders.  The contents of these folders will grow
        as you progress through the course.
      </litem>
    </olist>
  </section>  
  </visible>
</courses>
