Principles of Computer Programming
December 14, 2015

Final Post

Greetings All,

The outcome of the team projects is that the Rojas team took first place. The Routledge and Nguyen teams were too close to call. They each had plusses and minusses but they were exactly equal in the evaluation so they have tied for second place.

You were a great class and it has been a real pleasure meeting all of you. Best wishes to everyone in future endeavors.

Grades are posted and should now be visible in Sakai.

Have a very Merry Christmas and a Happy (and proseperous) New Year!

November 25, 2015 --- SECOND POSTING TODAY

The Team (Final) Project

The premise:
Your team has decided to open a "developers' bootcamp", a place where people can come to learn to create computer applications. There will be four areas of programming; desktop applications using Visual Studio's Windows Forms Applications, desktop appications using Visual Studio's Windows Presentation Foundation, developing database centric programs from small to huge data strores, and web applications using HTML, CSS, and a Visual Studio programming language. As a followup to general web applications your bootcamp will offer a course on MVC and MVVM.

As a minimum each project should have the following content:
  1. master page(s).
  2. a Home page.
  3. a page describing your courses and instructors.
  4. an About page that tells about the school/bootcamp, the concept of your program, where participants will live during the bootcamp, how many hours per day/week they will work, etc.
  5. a Contact page that includes:
    • street address
    • e-mail address
    • phone number
  6. the style of the content should be controlled by at least one cascading style sheet (CSS).
  7. a "Developers' " page that tells about the team and the members that devloped the site.
This is a competition. Therefore I recommend each team keep their ideas to themselves. Don't let another team beat you with your own idea.

You may use any tools in Visual Basic or the free programs listed in the Syllabus.

You may not use commercial web development software such as Dreamweaver, Adobe, Photoshop, or others.

For the night of the competition, the site should be on a laptop that has an RGB connection or a zip file that can be loaded onto the SSC computer at the instructor's station. Test both thoroughly. A site that does not work cannot take first place.

All team members will be expected to explain their portion of the project during the team presentation. If for some reason a team member could not or did not want to participate in the project they should not participate in the final presentation.

Warning: This project is worth enough points that non-participation is likely to lower a grade by one letter.

Please post questions to the Forum.

November 25, 2015


Here are the teams for the final project:
  1. Routledge, Patrick
  2. Rosario, Lukas
  3. Baker, James
  4. Adams, Monica
  5. Gardner, Caleb
  1. Nguyen, Anh
  2. Hopkins, Tyler
  3. Lollar, David
  4. Shedd, Juniper
  5. Munk, Christian
  1. Rojas, Carla
  2. Hossain, Marouf
  3. Thomas, Jennifer
  4. Richmond, Michael
  5. Blomenkamp, Cory
  • The person listed first and in white on each team is the Team Captain.
  • All team members will be expected to explain their portion of the project during the team presentation.
  • There is no switching teams or substitutions.

Current Standings

Before Extra Credit
With Extra Credit Added

November 23, 2015


Students Past and Present,

If you're not watching 60 Minutes every Sunday night you're missing three of the most valuable articles related to technology today.  60 Minutes' stories include technology, sports, politics, science, and a host of other topics but each contains a tie to computer technology and especially programming.  You might have to look for it but it's there in every story.  If you can glean and act on an idea such as M Pesa you can become hugely successful.  If nothing else you may find a programming area or career field where you would like to specialize such as digital money, computer controlled cars, hi-tech weaponry, and robots, national defense, huge data, medicine, crime detection, or finance.
November 3, 2015

Class on Chapter 8

Mr. Houssain made a very good point after class. We covered Chapter 8 in class but the project for it was not scheduled to open for another week. He pointed out that working on it right after we'd discussed it would make it easier to remember so the project for Chapter 8 will open tonight.

The procedure for adding a Splashscreen or AboutBox to your project is:
  1. Right-click on the project name in the Solution Explorer.
  2. From the menu that displays select Add and then New Item.
  3. In the left panel select Windows Forms. You should be able to see and select either the AboutBox or the SplashScreen.
  4. Once added to the project, right-click the project name again in the Solution Explorer.
  5. Select the last entry in the menu; Properties.
  6. On the Properties page, the Application tab, fill out the info in Assembly Information.
  7. Select the name of your SplashScreen from the Splash Screen drop down.

  1. Create a SplashScreen with your name, company name, description, etc.
  2. Add an image that is related to your project.
  3. In the form's load event add the line: Threading.Thread.Sleep(3000)

  1. Add an AboutBox to your project.
  2. Replace the existing image with a picture of yourself.
  3. In the lower right textbox now labeled Description, enter a two paragraph biography for yourself.

See you next week.
October, 2015

Projects Opened

The Calculator+ and the EC+ projects have been opened and posted in Sakai. Please post any questions you have to the Forum.
October 22, 2015

2 Things...

Petroutsos Calculator

Here is the Petroutsos Calculator we did in class. This project is found in, "Mastering Visual Basic 2010", written by Evangelos Petroutsos and we have a link to his book on our homepage.

Out of Town

There will be no class on Tuesday, October 27th. I will be in St. Louis. I'll see you on November 3rd.
Originally published:      September 15, 2015
Edited and republished:  October 5, 2015
Updated and republished:  October 13, 2015
Updated and republished:  October 20, 2015

Project Review

New items have been added to the list that now include topics and principles from Chapter 4. New items will be added for each new chapter.

I am posting the errors everyone made so all can benefit from the code review. I want to give everyone the opportunity to develop good habits as quickly as possible.

The numbers of the items below will correspond to the ones listed in the Feedback section for your project.


  1. Excellent planning documents.
  2. Your program runs correctly and meets all specifications.
  3. Your code is very neat and well organized.
  4. Very nice form design. Good use of group boxes, color, and images related to the program's purpose.
  5. Good use of form icon.
  6. Nice form layout.
  7. Good us of:

  8. the form's AcceptButton and CancelButton.
  9. the ToolTip control.
  10. multiple forms.
  11. Functions.
  12. Subs.
  13. form icon.
  14. MenuStrip.
  15. StatusBar.


  1. No planning documents. Planning documents are worth one letter grade.
  2. Commented headers should be placed above the line that begins, "Public Class".
  3. The lines Option Explicit On and Option Strict On should come after the commented header and before the class.
  4. Check the Syllabus for the correct project naming convention.
  5. All objects should be given meaningful names but never submitted with their default names such as Form1, Button1, or TextBox1.
  6. Make sure you conform to the specifications. If the specs call for a MessageBox, a Run button, and/or a blue form the project is incomplete/incorrect without them. Only the client (or your beloved instructor) can change the specs.
  7. Form design is a bit stark.
  8. Always have an Exit botton for your applications. The red X should not be the only way to terminate the project.
  9. Place the event handler for the Exit or Close button at the bottom of your code
  10. Place the Load event handler as the first one in the list.
  11. Place all event handlers between the Load and Exit in alphabetical or some logical order.
  12. Never submit projects with empty event handlers.
  13. Only use standard prefixes for object names. "qrt" for example would not mean anything to other programmers unless you have created a Quart, Quartz, or Quarter object.
  14. Use the prefered method of program termination; Application.Exit instead of Me.Close or Close.
  15. Too many contiguous blank lines in your code.
  16. The program does not run.
  17. The program is not complete.
  18. The program runs but it's missing specified objects or methods.
  19. You worked to wrong project.
  20. Planning documents should be placed in the same directory as the ".sln" file.
  21. I know the author wanted you to see how to use the Const statement but keep in mind that there are very few values in life that are constant. Promotional limits, current rates, tax rates, cost per unit, wage per hour, discounts, bonuses, and time constraints are rarely constant and therefore should be treated as variables.
  22. Apply Tooltips to inform and direct your user.
  23. Set your TabOrder.
  24. Give the most logical starting point or control of your program the Focus. If the first thing the user needs to enter is their name make sure the cursor is in the name text box when the program starts and after it is cleared.
  25. Set the form's AcceptButton and CancelButton properties.
  26. Use as many topics from the project's chapter as possible. The point is to continue to advance your programming skills.
  27. Controls that contain numeric values should be right justified.
  28. You should provide testing data that populates the form(s) when loaded. This is not just for my benefit but for yours during the development phase. It also provides quick proof to the client prior to implementation.
  29. Clear a list box (label, text box, etc.) before you send it new data. Otherwise it adds data to the list every time the event is invoked.
  30. Use the CancelButton to clear data and list boxes instead of exiting the program. Exiting should be an intentional act, not an accident.
  31. When you display an error message to the user, you should not clear all of the data text boxes and list box on the form except for the text box with the bogus data.
October 9, 2015

Tough Decision

Team Rojas vs Team Raptor

Both teams:
  • submitted complete and functioning programs.
  • programs produced the right answer.
  • had a slider control that work flawlessly.
  • had well thought out solutions.
  • met most of the typical standard requirements; neat code, set the form's AcceptButton property, good form layouts.
  • worked very well together as teams.

In the end, Team Rojas did a great job but Team Raptor had a complete commented header, a Clear button set as the form's CancelButton, and added color to their form. It is a tough call but the winner of the competition is Team Raptor.

Have a great weekend everyone. I look forward to seeing all of you on Tuesday night.
October 7, 2015

This Saturday is SQL Saturday

SQL Saturday is a free event that provides a variety of SQL training for beginners and experts.

SSC has been good enough to provide the venue and the professional community provides the instruction.

This is a wonderful event and I encourage you to go and to help motivate you to get out of bed on Saturday I am offering 25 points for each session you attend. To get the credit simply print out the schedule located on their website and have the presenter of each session you attend initial his or her box on your schedule.

SQL development is powerful, financially rewarding, and a lot of fun. These presentations are done by people in the industry who use it every day and you can benefit from their insight.

If you are looking for an internship or a long term position, have a printed resume with you (not in the car).

Here is the link to the website for SQL Saturday and here is the link to the schedule of sessions.
October 6, 2015

Planning Documents

The planning document needs to have, at a minimum, four clear statements:
  1. The purpose of the program. What do you want it to do?
  2. A list of input information and where you intend to get it
    • text boxes the user fills out
    • input boxes
    • a file on the disc
    • a database
    • a camera
  3. A list of the program's output.
    • fill in label or labels
    • write data to a disc
    • save data to a database
    • pring something to a printer
    • send an e-mail with information
  4. There needs to be a description of how the program will take the input and processit to achieve the output.
All of this should be done in statements that are clear, simple, and as short as possible; pseudo code.

There should be a simple diagram that depicts your intended form layout for each form.

If you have done the planning document correctly then writing the code almost becomes, "fill in the blanks". Coding is pretty simple once you learn a few keywords, statements, and the basic principles.

Keep in mind:

  • Analyze - Think it through.
  • Design - Come up with a plan.
  • Develop - Layout the form, set the properties, and write the code. (Constatly test the program yourself, have someone else test the program (alpha test), and publish to a limited number of users to test (beta test).)
  • Implement - Publish the program.
  • Evaluate - Examine the program's operation. the users' reactions, and then restart with Analyze. Repeat until bullet proof.
September 10, 2015

Here's the little project we did in class Tuesday night just in case you want to compare it to your code.

Don't forget your commented headers and the options at the beginning of your projects. The commented header should include:
  1. The developer's name.
  2. The date the project was started.
  3. The project title.
  4. A clear description of the project's purpose.
  5. Option Explicit On (Requires all variables to be declared using the Dim statement.)
  6. Option Strict On (Requires the developer to assign specified data types for all programming elements.)

Other 'relevant' items may be included such as (but not limited to) a list of required files, the path to network files, links to related information, or citations of code used in the project. An example would be a link to the sports car image we copied in class.

You don't need to include the items in parentheses.

Please post questions and comments to the Forum so that all may benefit from the discussion.
September 8, 2015

Access to Pearson

A few people are having a little trouble logging in to the Pearson website and we'll take a look at that before class. Please make sure you bring your access code and instructions with you to class.

Others are having trouble accessing the author's website at: That is usually caused by having a used book for which the access code has already been redeemed and is now expired.

For these or other problems you may contact Pearson directly at:

We need to get these fixed tonight. You will need access to both.

See you in class.
September 3, 2015

Thank you for reminding me Ms. Thomas. The Access code is:SEMI-21368-PQKG-26
August 25, 2015

Good Start

It was a pleasure meeting everyone tonight. I enjoyed hearing about your experience and interests and I look forward to working with you this semester.

Please add your introduction to the Forum and get acquainted with the environment. Anytime you have a question the Forum is where you should post that as well.
August 25, 2015

Greetings Everyone,

And welcome to Principles of Computer Programming. This is the location where all announcements for the class will be posted. Please check this page regularly.

In case you're interested...

I'm leaving this up so you can see the outcomes for a previous class; Spring 2015. This is typcial for almost every semester.

Class Statistics
  • The class began with 25 enrolled; 13 completed.
  • There were 9 'A's or 69% of those who completed the course.
  • Note: The majority of all 'D's and 'F's are the result of people just not coming back to class and not properly withdrawing.