UNIVERSITY OF LETHBRIDGE FACULTY OF MANAGEMENT Mgt 3821 - Visual Programming Applications (using Visual Basic) Term: Spring 2001 Instructor: Brian Dobing, Room E424, 329-2492, brian.dobing@uleth.ca Class Web Page: http://home.uleth.ca/~brian.dobing/3821.htm Class Times: Tues, Thurs 10:50 – 12:05 (A), 13:40-14:55 (B), E646 Lab Office Hours: Tuesday, Thursday 9:20 - 10:45 AM, Monday 1:00 – 3:30 PM Other times may be arranged by appointment. ________________________________________________________________________ Overview Visual Basic has rapidly become a critical software development platform since the introduction of VB3. In a survey printed in ComputerWorld (March 24, 1997), VB was dominant choice for "building multidepartmental, multitiered corporate applications." This remains true today and, as of this summer, Visual Basic was rated the most in-demand developer skill (as shown in the techies.com table below). Equally important for business students, Visual Basic for Applications is the language of Microsoft Office. VBA is closely related to VB and, with it, Access and Excel become much more powerful tools. And Visual Basic is also an excellent web development platform for Internet Explorer users (although that's beyond the scope of this course). 1 2 3 4 5 6 7 8 9 10 Programming Skill C++ Java HTML SQL JavaScript C Perl XML VB Script PL/SQL Developer Skill Visual Basic Visual C++ PowerBuilder Visual InterDev Oracle Developer/2000 Rational Rose Winrunner Oracle Forms SQA Test Suite Delphi This course provides an introduction to event-driven programming in a visual programming environment, specifically building Windows software using VB6. Building systems in Visual Basic can be fun! (If you don't believe programming can ever be fun, you probably don't belong in this course.) By providing a powerful set of tools, VB allows you to quickly create software that looks very much like commercial Windows programs. 1 Prerequisites: This course requires Computer Science 1620 or an equivalent introductory programming course. This course could be in C, Java, Pascal or almost any other language. You should have an understanding of basic programming including loops, decision structures, arrays, subprograms and basic file structures. This includes nested loops, nested if statements, and multidimensional arrays. If your programming skills are weak, this will be a difficult course. Neither the lectures nor the text are designed to teach fundamental programming. The course also requires Mgt 2060. You should be comfortable sending and receiving email and using Word (or WordPerfect) for written assignments. We will build links from Visual Basic to Excel spreadsheets and Access databases, but very little prior knowledge of those packages is required. Perhaps what is most important is that you are familiar with the standard Windows 95/98/NT interface and want to write programs for that environment. Grading: Assignments - Four worth 5% each Final Exam Project Project Evaluation 20 40 35 5 The following is an approximate grading curve. Final scores will be rounded, e.g., 77.5 will be a B. The actual grade distributions for this semester may be adjusted (but only to the advantage of students) and will not be determined until the end of the semester when all marks are in. The final grade distribution will be consistent with past classes. 95-100 90-94 86-89 A+ A A- 82-85 78-81 74-77 B+ B B- 70-73 66-69 62-65 C+ C C- 58-61 54-57 50-53 D+ D D- Textbook: The text for this course is Programming in Visual Basic 6.0, by Julia Case Bradley and Anita C. Millspaugh, Irwin/McGraw-Hill, 1999. The same book was used last year, so you may find some used copies around at a reasonable price. If you see any cheap VB5 books that look interesting, you may want to pick one up to supplement the text. The changes from VB5 to VB6 are not great and have little impact on what we will do in this class. The user interface, toolbox, and most menu items are the same. You are expected to not only read but work through the material in the text. Do at least a few of the exercises at the end of each chapter. You will not learn Visual Basic or any other programming language by listening to lectures or reading books. You will learn by doing. For assignments and examinations, you are responsible for all material in the text even if it was not discussed during classes. 2 Software: VB6 Professional (with Service Pack 4) is the official course software. This version is now available in all the labs. A CD-ROM with the VB6 "Working Model," a more limited version of Visual Basic than the Professional Edition in the labs, comes with the text. This software will be helpful for those working on personal machines, particularly for the assignments, but will probably not be sufficient to complete the project. If you have VB5 Professional on a home machine, you will probably find it will do almost everything you need. You may prefer to use it rather than the more limited VB6 Working Model If so, be sure your software has been updated with Service Pack 3 for VB5. It fixes some bugs and adds a few new features. And it's free! There should be a link to this upgrade from the class web page. However, please note that all grading will be done using VB6 Professional so you should test your programs in the lab before submitting them. In particular, charts built in VB5 will not work in VB6. The next version of VB is VB.Net and Beta versions are now available. However, there are some important differences that prevent VB.Net programs from running under VB6. As a result, you will not be able to use VB.Net for this class. Assignments: There are four assignments in this course, worth 5% each towards the final grade. Each assignment will be distributed two weeks prior to the due date. If there are any serious problems or omissions with an assignment, I will send out an email message to keep you informed. Any notices will normally be posted on the web page as well. Assignments are to be done individually, not in groups or pairs. You can help each other with ideas on how to do them, and I hope you will. But the final work you hand in should be your own. The submission requirements will be specified on each assignment. In general, the computer files required should be emailed to me by 1 PM on the due date. Most assignments will require multiple files; they should be combined into a single WinZip file The zipped file name should contain the assignment number and your name, e.g., A1SmithChris.zip. You should bring a diskette to class in case there are any problems. Any required printed material (usually documentation, including printed program listings, diagrams, text descriptions, etc.) is due at the start of class. If you have a good reason for missing class, an email is sufficient but a printed version must still be submitted as soon as possible and it must be identical to the emailed files. Emailed assignments are due an hour before the start of class on the due date, but the written portion may be submitted at the start of class. If you are having problems with email, you can also bring your program to my office. Any extensions due to lab problems, weather, or other reasons will be posted on the course web page. Submitted assignments may be used during the class to illustrate different ways of approaching a problem. In particular, one or two of the best assignments may be posted on the web page so others can see them. They may be modified if necessary. 3 There will be a 10% penalty for submissions received within three hours of the deadline, a 25% penalty for submissions made later than that but before 9:15 AM the following day, and 50% after that. No assignments will be accepted after the start of the class following the due date. Late penalties are subtracted from the grade you otherwise would have earned. So work submitted two hours late that is worth 80% will receive a grade of 70%. Final Exam: There will be a three-hour final exam in this course, in the normal slot scheduled by the Registrar’s Office. Project: Students will choose their own team of two students and build a larger system in the second half of the class. Past classes have built different games, including Monopoly, Trivial Pursuit and Yahtzee. Last term, we built the VB Auto Center project described in the text. More details on the project will be made available later. Although not listed in the syllabus, you may need to submit some preliminary project work. For example, you might be asked to submit your proposed user interface design, data file design, or other documents. The nature, value, and due dates for this preliminary work, if any, will be announced when the project assignment is distributed. All projects will be run and graded using the VB6 Professional edition. (This prevents you from using features found only in the Enterprise edition.) However, all features of VB6 can be used, regardless of whether they have been covered in this course. Project Evaluation: After projects are submitted, everyone will be given a project (not their own!) to evaluate. The distributed project will include the source code, not just an executable version. The project evaluations are due at the start of the final class. The evaluations will be read before final project grades are assigned, but they do not normally have much impact. You will review the project on several dimensions, including usability, functionality, and software quality. You will not be expected to make any changes to the project you evaluate, but you can certainly suggest specific improvements. Course Web Page: Material will be posted on the course web page: http://home.uleth.ca/~brian.dobing/3821.html You should be able to find the course syllabus, assignments, project notes, class notes, and links to some useful VB web sites. Any subsequent corrections, additions, etc. will also be posted on the web page. You are responsible for checking both your email and relevant web pages 4 regularly. If you find other interesting web pages that ought to be linked, please let me know. Class notes will usually be posted the day after classes. They are quite detailed and should eliminate the need to take notes in class. I will try to respond to email and voice mail messages. However, I cannot provide long and detailed responses that way. Some questions may be answered on the class web page and/or brought up in the following class. Academic Integrity: It is critical to the reputation of the Faculty of Management, and of our degrees, that everyone associated with our faculty behave with the highest academic integrity. As a Faculty that helps create business and government leaders, we have a special obligation to ensure that our ethical standards are beyond reproach. Any dishonesty in our academic transactions violates this trust. The University of Lethbridge Calendar addresses the issue of academic dishonesty under the heading “Student Discipline Policy. Of particular concern, but certainly not the only violations, are: copying someone else's program, even with minor modifications and with or without their permission, from a diskette, printed copy, or even by observing what they are doing providing a disk or printout or otherwise allowing someone else to copy your work allowing someone else to do all or part of your assignment working jointly with others to create a single solution and then customizing it for each student presenting code taken substantially from books, CD-ROMs, the Internet or other sources as your own Students cheating on exams or assisting others to do so will receive an "F" in the course. Assignments that are obviously copied between two or more students will ALL receive a mark of ZERO, plus there will be an additional penalty of up to 5 marks deducted from your final grade. Thus, protecting your work against copying is important. In particular, your team project must be original work. Any significant copying of programs found in other books or on the Internet will be regarded as a serious violation. A mark of zero on the project will result in an "F" regardless of exam and assignment marks. If you are unsure about what is or is not acceptable, please see me. Many courses in the Faculty of Management, including this one, require group projects. Group projects are subject to the same rules regarding academic dishonesty. Team members should exercise special care to ensure that the group work does not violate the policy on Academic Integrity. Should a violation occur, team members are jointly accountable unless the violation can be clearly attributed to a specific individual(s). 5 Tentative Class Schedule: Date Jan 4 Jan 9 Jan 11 Jan 16 Jan 18 Jan 23 Jan 25 Jan 30 Feb 1 Feb 6 Feb 8 Feb 13 Feb 15 Feb 27 Mar 1 Mar 6 Mar 8 Mar 13 Mar 15 Mar 20 Mar 22 Mar 27 Mar 29 Apr 3 Apr 5 Apr 10 Topics C1: Introduction to System Development Using Visual Basic C2: More Controls C3: Variables, Constants and Calculations C4: Decisions and Conditions (pp.123-151) C5: Menus Assignment #1 Due Toolbars, C5: Procedures C5: Functions, C6: Multiple Forms C7: Lists, Loops and Printing C8: Arrays Assignment #2 Due Program Flowcharts C10: Sequential Data Files, Common Dialog Control C10: Random Access Data Files C4: Testing and Debugging (pp. 152-161) Assignment #3 Due READING WEEK C11: Accessing Database Files Databases Continued C12: Advanced Data Handling Databases and SQL, C12: Error Trapping Assignment #4 Due C13: Drag-and-Drop, Keyboard and Mouse Events Windows API and Sound Interface Objects HTML Help Workshop C15: ActiveX Controls C14: Graphics Animation Project Testing and System Implementation Project Due Review Projects Final Exam Review Project Evaluations Due Some topics and their orders may need to be changed later once the project has been defined. 6