State University of New York at Binghamton
Watson School of Engineering and Applied Science
Department of Computer Science
CS-360/580H: GUI and Windows Programming
Fall, 2009
CS 360: M,W,F 1:10-2:10 P.M., SL-210
CS 580H: T,R 8:30-9:55 A.M., SW-325
Professor Richard R. Eckert
EB-N6, 777-4365, 777-4802
email: reckert@binghamton.edu
http://www.cs.binghamton.edu/~reckert/ (CS-360 link under "Courses Taught Recently")
Class Listserve: CS360-L@listserv.binghamton.edu
Professor's Office Hours: W 9:30-10:30 A.M., R 1:30-2:30 P.M.
CS580H Teaching Assistant: Yibo Sun (sunyibo@gmail.com)
TA's Office Hours: TW 3:00-4:30 P.M (EB-N23)
CS360 Teaching Assistant: Elif Dede (edede1@binghamton.edu)
CA's Office Hours: MWF 12:00-1:00 P.M. (EB-N23)
NEW CATALOG COURSE DESCRIPTION:
An in-depth treatment of the issues involved in the design and implementation of graphical
user interfaces (GUIs), including standalone and distributed applications. Covers the
interactive, pointer-based, object-oriented, graphical techniques that constitute the modern
desktop interaction metaphor. Topics include: event-driven programming; use of classes;
graphics and text in windows; user interaction: mouse and keyboard; animation; user interface
tools: menus, child window controls and widgets; multimedia; network communication; the
client/server model; world-wide web applications and services; data base applications. A
project-oriented course emphasizing the programming of GUI applications using modern programming
languages. Prerequisites: CS 220 and CS 240.
TEXTBOOK:
Deitel, et.al., "Visual C# 2005: How to Program", 2nd Edition, Prentice Hall / Pearson
Education, 2006, ISBN 0-13-152523-9.
RECOMMENDED TEXTBOOK:
Kate Gregory, "Special Edition Using Visual C++ .NET", Que Publishing, 2002, ISBN 0-7897-2466-9.
EVALUATION, CS-360:
Programming Assignments.......40%
Term Examinations (2).........40%
Quizzes.......................10%
Final Project.................10%
EVALUATION, CS-580H:
Programming Assignments.......40%
Term Examinations (2).........40%
Term Paper....................10%
Final Project.................10%
Several Microsoft Windows programming assignments will be made during the course of the semester.
These will be due on the date specified. If turned in late, the grade will be reduced by 5% per
day up to a maximum of one week. Under no circumstances will assignments be accepted more than
one week late. Assignments are individual; students do not work in teams. ANY NON-ORIGINAL WORK
(WORK FOUND TO BE COPIED) WILL BEGROUNDS FOR AN F IN THE COURSE!
COURSE SCHEDULE (Weekly Topics):
1. GUIs and Windows Programming: Concepts, Rationale, Elements, Device Independence, Object
Orientation, Multitasking, Message-Driven Paradigm, Relationship to non-GUI Systems; Visual
Studio 2008 Integrated Program Development Environment (Notes; D-1,2; G-Introduction, 1, 2,
Appendices C & D; Appendix C).
2. Win32 API Programming; Debugging; Resources; Menus; Message Processing; Text and Graphics Output;
Mouse and Keyboard Input; the Device Context; Example Programs. (Notes, G-3,4,12,13, D-Appendix D;
G-Appendix A).
3. The Windows Microsoft Foundation Class Library (MFC), The MFC App/Window Approach, Message Maps;
the MFC Document/View Approach. Use of AppWizard and ClassWizard; Menus, Text and Graphics, Mouse
and Keyboard Input, and the Device Context under MFC; Example Programs. (Notes; G-3,4,6).
4. Visual Studio .NET and C#; the .NET Framework; Windows Forms; Classes, Namespaces, Events, Delegates,
and Event Handlers; Essential Structures; Example Programs (D-1,2,4,9,13; G-16-17).
5. The Graphics Device Interface: Drawing graphics and text; DateTime and the Windows Timer; Animation;
Example Programs (D-13,14,16,17; G-4).
6. The Mouse; Images and Bitmaps; Example Programs (D-13,17; G-4,6)
7. Text; Fonts; Keyboard; Printing; Example Programs (D-13,17; G-5,6; Notes)
8. Pages and Transformations; Menus; Example Programs (Notes; D-14,17)
9. Controls: Buttons, Labels, TextBoxes, Scrollbars, ListBoxes; Example Programs (D-13,14)
10. Dialog Boxes, Common Dialog Boxes, File/Stream I/O; Example Programs (Notes, D-1,13,14,18; G-3,6)
11. The Windows Clipboard; Multimedia; Example Programs (Notes, D-13)
12. Network Programming, TCP/IP Stream-Based Sockets; Example Programs (D-23; G-10)
13. Data Bases and ADO.NET; Introduction to LINQ; Example Programs (D-20; G-11,22)
14. XML, Web Forms, Web Controls, ASP.NET and ASP.NET AJAX; Example Programs (D-19,21)
15. ASP.NET and WCF Web Services; WPF Graphics and Multimedia; Example Programs (D-22; G-21)
16. Other Windowing Systems: Introduction to the X Window System and Java AWT/Swing; Example Programs
(Notes)
COMPUTER RESOURCES:
Most of the Binghamton University public computer facilities (PODs) have PCs with Visual Studio 2008
Professional Edition installed. If you are a registered Binghamton University student, you may also
obtain it (or Visual Studio 2005 Professional Edition) for your own machine from the Watson School
Microsoft Academic Alliance. They will be available sometime after the first week of classes, and
instructions for using the Alliance will be given then. If you wish to install much smaller versions
of the Visual Studio 2008 products necessary to develop and run Visual C++ .NET, C# .NET, ADO.NET,
and ASP.NET programs, you can get the corresponding Visual Studio Express Edition products (Visual C++
2008 Express Edition, Visual C# 2008 Express Edition, SQL Server 2008 Express Edition) for free from
Microsoft. These can be downloaded from http://msdn2.microsoft.com/en-us/express/aa974184.aspx.
CLASS NOTES, PROGRAMMING ASSIGNMENTS, AND SAMPLE PROGRAMS:
Programming assignments, extensive class notes and sample program source code are available on the
CS-360 web page (http://www.cs.binghamton.edu/~reckert/, under the CS-360 link).
REFERENCES ON RESERVE IN THE LIBRARY:
-Bradley & Millspaugh, Programming in Visual C# 2005, McGraw Hill, 2008, ISBN 978-0-07-351718-6.
-Bradley & Millspaugh, Advanced Programming Using Visual Basic 2005, McGraw Hill/Irwin, 2007,
ISBN 978-0-07-351717-9.
-Bishop, Java Gently, Third Edition, Addison-Wesley, 2001, ISBN 0-201-71050-1.
-Bradley & Millspaugh, Advanced Programming Using Visual Basic 2005, McGraw-Hill/Irvine, 2005,
ISBN-13: 978-0-07-351717-9, ISBN-10: 0-07-351717-9.
-Deitel, et. al., Visual C# 2005: How to Program, Second Edition, Pearson/Prentice-Hall, 2006,
ISBN 0-13-152523-9.
-Geary & McClellan, Graphic Java: Mastering the AWT, SunSoft/Prentice-Hall, 1997, ISBN 0-13-565847-0.
-Irvine, Liang, Gaddis, Advanced Visual Basic .NET, 3rd Edition, Scott/Jones, 2005, ISBN 1-57676-098-7.
-Musciano & Kennedy, HTML: The Definitive Guide, O'Reilly, 1996, ISBN 1-56592-175-5.
-Walrath & Campione, The JFC Swing Tutorial: A Guide to Constructing GUIs, Addison-Wesley, 1999,
ISBN 0-201-43321-4.
-Watson, et. al., Beginning Visual C# 2005, Wiley/Wrox, 2006, ISBN 0-7645-7847-2.
-Andrews, Learn Visual C++ Now, Microsoft Press, 1996, ISBN 1-55615-845-9.
-Archer & Whitechapel, Inside C#, Second Edition, Microsoft Press, 2002, ISBN 0-7356-1648-5.
-Barkakati, X Window System Programming, SAMS, 1991, ISBN 672-22750-9
-Berlace, OSF/Motif: Concepts and Programming, Addison-Wesley, 1991, ISBN 0-201-55792-4.
-Boone, Java Essentials for C and C++ Programmers, Addison-Wesley Developers Press, 1996, ISBN
0-201-47946-X.
-Bradley & Millspaugh, Programming in Visual Basic .NET, Visual Basic .NET 2003 Update Edition,
McGraw-Hill Technology Education, 2005, ISBN 0-07-225671-0.
-Bradley & Millspaugh, Advanced Programming Using, Irwin, 2003, ISBN 0-07-251239-3.
-Bradley & Millspaugh, Programming in C# .NET, McGraw-Hill, 2004, ISBN 0-07-285232-1.
-Broquard, Programming with MFC for Windows 95, Prentice Hall PTR, 1996, ISBN 0-13-459546-7.
-Chapman, Davis, Sams Teach Yourself Visual C++ .NET in 21 Days, Sams Publishing, 2002, ISBN
0-672-32197-1.
-Cutler, Gilly, & Oreilly, The X Window System in a Nutshell, O’Reilly & Associates, 1992, ISBN
1-56592-017-1.
-Deitel, et. al., C#: How to Program, Prentice Hall, 2002, ISBN 0-13-062221-4.
-Deitel, et. al., C# for Experienced Programmers, Prentice Hall, 2003, ISBN 0-13-046133-4.
-Deitel, et. al.,, Simply C++, Pearson/Prentice Hall, 2005, ISBN 0-13-142660-5.
-Deitel, et. al.,, Simply Visual Basic .NET 2003, Pearson/Prentice Hall, 2004, ISBN 0-13-142640-0.
-Deitel, et. al.,, Visual C++ .NET: How to Program, Pearson/Prentice Hall, 2004, ISBN 0-13-437377-4.
-Doyle, Visual C# .NET Programming, Thomson Course Technology, 2004, ISBN 0-619-15997-9.
-Ferrara & MacDonald, Programming .NET Web Services, 2002, 0-596-00250-5.
-Feuer, MFC Programming, Addison Wesley Developers Press, 1997, ISBN 0-201-63358-2.
-Flanagan, Java in a Nutshell, O'Reilly & Associates, 1996, ISBN 1-56592-183-6.
-Foxall, SAMS Teach Yourself Visual C# .NET 2003 in 24 Hours, Sams, 2003, ISBN 0-672-32538-1.
-Gittleman, C# .NET Illuminated, Jones and Bartlett, 2005, ISBN 0-7637-2593-5.
-Gregory, Microsoft Visual C++ .NET 2003 Kick Start, Sams, 2004, ISBN 0-672-32600-0.
-Gregory, Special Edition Using Visual C++ 6, Que, 1998, ISBN 0-7897-1539-2.
-Gregory, Special Edition Using Visual C++ .NET, Que Publishing, 2002, ISBN 0-7897-2466-9.
-Griffiths & Adams, .NET Windows Forms in a Nutshell, O'Reilly, 2003, ISBN 0-596-00338-2.
-Halvorson, Microsoft Visual Basic .NET Step by Step, Microsoft Press, 2002, ISBN 0-7356-1374-5.
-Hoffman & Kruger, Microsoft Visual C# .NET 2003 Unleashed, Sams, 2005, ISBN 0-672-32676-0.
-Horton, Ivor, Beginning Java 2, Wrox, 1999, ISBN 1-861002-23-8.
-Horton, Beginning Visual C++ 6, Wrox Press, 1998, ISBN 1-861000-88-X.
-Jones, Introduction to the X Window System, Prentice Hall, 1989, ISBN 0-13-499997-5.
-Katre, Halari, Surapaneni, Gupta, Deshpande, Migrating to .NET, Prentice Hall Ptr, 2003, ISBN
0-13-100962-1.
-Kimball, The X Toolkit Cookbook, Prentice Hall PTR, 1995, ISBN 0-13-973132-6.
-Kruglinski, Inside Visual C++, Microsoft Press, 1007, ISBN 1-57231-565-2.
-Kruglinski, Shepherd, Wingo, "Programming Microsoft Visual C++," Fifth Edition, Microsoft Press, 1998,
ISBN 1-57231-857-0
-Liberty & Hurwitz, Programming ASP.NET, O'Reilly, 2003, ISBN 0-596-00487-7.
-Liberty & Hurwitz, Programming .NET Windows Applications, O'Reilly, 2004, ISBN 0-596-00321-8.
-Lyons, Black Art of Windows Game Programming, Waite Group Press, 1995, ISBN 1-878739-95-6.
-Mackenzie & Sharkey, SAMS Teach Yourself Visual Basic .NET in 21 Days, Sams, 2002, ISBN 0-672-32066-5.
-Niemeyer & Peck, Exploring Java, O'Reilly & Associates, 1996, ISBN 1-56592-184-4.
-Nye, Xlib Programming Manual for Version 11 of the X Window System (The Definitive Guides to the X
Window System, Volumes 1 and 2), O’Reilly & Associates, ASIN 0937175137.
-Nye, Xlib Programming Manual, Volume One, O'Reilly.
-Onion, Essential ASP.NET with Examples in C#, Addison-Wesley, 2003, ISBN 0-201-76040-1.
-Petzold, Charles, Programming Microsoft Windows with C#, Microsoft Press, 2002, ISBN 0-7356-1370-2.
-Petzold, "Programming Windows," Fifth Edition, Microsoft Press, 1999, ISBN 1-57231-995-X.
-Pohl, C# by Disection, Addison-Wesley, 2003, ISBN 0-201-87667-1.
-Prosise, Programming Microsoft .NET, Microsoft Press, 2002, 0-7356-1376-1.
-Prosise, Jeff, “Programming Windows with MFC, Second Edition, Microsoft Press, ISBN –157231-695-0.
-Robinson & Vorobiev, Swing, 2nd Edition, Manning Publications, ISBN 1-781930-88-X.
-Schildt, Programming MFC from the Ground Up, McGraw Hill, 1996, ISBN 0-07-882222-X.
-Schmidt & Robinson, Microsoft Visual C# .NET 2003 Developer's Cookbook, Sams, 2004, ISBN 0-672-32580-2.
-Sharp & Jagger, Microsoft Visual C# .NET Step by Step, Microsoft Press, 2002, ISBN 0-7356-1289-7.
-Shaw & Osier, Teach Yourself MFC in 21 Days, SAMS, 1995, ISBN 0-672-30462-7.
-Simon & Schmidt, Sams Teach Yourself Visual C++ .Net in 24 Hours, Sams Publishing, 2002, ISBN
0-672-32323-0.
-Start, Microsoft Visual C++ .NET 2003, Sams, 2004, ISBN 0-672-32600-0.
-Templeman & Olsen, Microsoft Visual C++ .NET Step by Step, Microsoft Press, 2002, ISBN 0-7356-1567-5.
-Thai & Lam, .NET Framework Essentials, 3rd Edition, O'Reilly, 2003, ISBN 0-596-00505-9.
-Thornsteinson & Oberg, .NET Architecture and Programming using Visual C++, Prentice Hall Ptr, 2002,
ISBN 0-13-065207-5.
-Torok, Payne, Weidfeld, JavaScript Primer Plus, Waite Group, 1996, ISBN 1-57169-041-7.
-Tsay, Jeffrey, “Visual Basic 6 Programming”, Prentice Hall, ISBN 0-13-026199-8, 2000.
-Welch, Practical Programming in Tcl and Tk, Prentice Hall PTR, 1995, ISBN 0-13-182007-9.
-Young, Mastering Visual C++ 6, Sybex, 1998, ISBN 0-7821-2273-6.
-Young, The X Window System: Programming and Applications with Xt, 2d Edition, PTR Prentice Hall, 1994,
ISBN 0-13-123803-5.
-Young, "Windows Animation Programming with C++," AP Professional, 1994, ISBN 0-12-773750-2.