CS 91.353: GUI Programming I

Prof. Jesse M. Heines
Department of Computer Science
University of Massachusetts, Lowell

Contents


Basic Course Information

A working knowledge of C++ and an eager willingness to apply the energy needed to learn.

 

Required Texts:

 

Optional Texts:

There are many other books on Windows, Visual Basic, and Visual C++ that could prove useful to you throughout the course. If you're not really comfortable with C++, I recommend Programming in C++ by Dewhurst and Stark. For an excellent basic understanding of Windows behind the scenes, I recommend Programming Windows by Charles Petzold. These texts may be available in the Bookstore and at SoftPro in Burlington.

 

 

Optional Software:

This software is not required. It will be provided on the systems in our labs. If you wish to buy it for your own computer, check the current price in the Bookstore and/or see me about educational discounts to obtain the best price.

Important Note: If you do buy your own copy, be sure to get the latest versions! You must be running Windows 95 to use the newest versions of this software, and older versions will not be sufficient.


General Course Description

This is a first course in the design and implementation of interactive programs for Microsoft Windows. As such, we will study Windows techniques and style as well as the basics of program implementation.

The course begins with a fresh look at Windows through the medium of Visual Basic. My impression from working with students and my own learning process has convinced me that even though we all think we know what the Windows graphical user interface is and how it works from a user point of view, one needs to understand it more thoroughly before one can begin writing programs for this environment. Diving right into C or C++ programming causes one to "miss the forest for the trees." Thus, we will begin by studying Visual Basic-a very valuable Windows programming tool in its own right-to make sure that we understand Windows capabilities and message passing thoroughly, and then get into Visual C++ programming to understand the innards.


Grading

Your grade in this course will be made up of programming assignments, one or two hourly exams, and a semester project. I reserve the right to give a final exam, but I am not planning that as we begin the semester. The semester project will be a large part of your grade, so we will want to identify something doable (small) that you can complete during the semester. I do not give incompletes except for truly extenuating personal circumstances outside of the classroom.

Attendance is a critical part of this course, as much of what you learn will be from class discussions. If you must miss a class, be sure to get notes from another student. We have a lot to cover in our allotted class hours, so missing even one class could be significant.

Final course grades will be determined by the weighted average of the assignments, exams, and your semester project. As we begin the semester I am anticipating that all programming assignments and hourly exams will carry a weight of 1 and the project will have a weight of 3. The best way to get a good grade in this course is to plan your time so that you can come to class every day and put major effort into the programming.

Important Note:  I reserve the right to change this grading system as the course progresses and various circumstances develop.


Homework Policies

Due Date and Time

Homework assignments are due at the beginning of class on their due date. Assignments handed in late will lose points from their overall grades.

If you are not able to hand in an assignment on time, please come see me immediately. I will allow assignments to be handed in late with valid excuses. Do not, however, simply ignore homework assignments. An unexcused assignment is averaged in as a 0. Even a 1 on a homework assignment is better than that. It is virtually impossible to pass this course without doing the homework assignments, even if you get 100s on all the tests.

Copying

In programming worlds outside the classroom, programmers seldom work completely on their own. They typically work in teams and help each other extensively. I have no objection to you getting help from me, the teaching assistants, or other students. I encourage you to do so. You may even do your homework with another student, but if you do you must hand in the assignments together and clearly indicate that you worked together. The exams will separate the stronger team member from the weaker.

I have had some situations in the past, however, where one student has directly copied another student's program without his or her knowledge. This situation is unacceptable, and even though it is difficult to check, I do occasionally discover it. When I do, I grade the copier's work as a 0 and in some cases grade the original student's work as a 0 as well. Repeat offenses are subject to University disciplinary action. Thus, while you are encouraged to get all the help you need, you are required to be honest about whose work you are handing in.


Jesse Heines
Contributors Page