VISUAL BASIC PROGRAMMING
CIS073-101 (76407) Course Outline
Spring 2015- January 26 to May 22

INSTRUCTOR: Dan McElroy    Dan.McElroy@sjcc.edu
HELP DESK: helpdesk@sjeccd.edu
1-408-270-6411 (Mon-Fri 7:00am to 5:30pm)

TEXTBOOK (Required):
Starting Out With Visual Basic 2012 6th Edition,     by Gaddis & Irvine - Pearson,    
ISBN-13:   978-0-13-312-808-6
    Starting Out with Visual Basic 2012 /6e

IMPORTANT INFORMATION:
This course covers the Visual Basic programming language which is used to develop programs that run on Microsoft Windows. This course does NOT cover VBA (Visual Basic for Applications) which is a macro scripting language used by Microsoft Office products such as Word, Excel, PowerPoint and Access. Visual Basic programs are not designed to run under Mac OS/X, iOS or Linux. Visual Basic is NOT Mac Friendly unless you are using BootStrap to run Microsoft Windows on a Mac.

CIS073 Visual Basic Programming is a 3-unit class. Three hours of work are expected from students for each college unit. You should plan on spending 9 hours per week on a 3-unit class. This would include lectures, lab assignments, lab reports, homework and quizzes and should be the same whether the class is presented on-campus or online.

COURSE OVERVIEW AND OBJECTIVES:
Upon completion of this course, the student will be able to:

1. Create single-form and multi-form application menus.
2. Design programs using menus and Common Dialog Boxes (CDL)
3. Analyze and use sub procedures and function procedures.
4. Create an Object Oriented Program (OOP).
5. Design and test applications using arrays.
6. Create a program that accesses a database using Visual Basic.

------------------------- LECTURE CONTENT -----------------------------
1. Forms and Form Connections
    a. Creating Visual Basic forms
    b. Placing and naming objects on a form
    c. Connecting objects on forms to event
        handlers
    d. Arithmetic operators
    e. Formatted output
2. Menus
    a. The MenuStrip control
    b. Submenus
    c. Disabled menu items
    d. Shortcut keys
    e. Context menus
3. Conditional Logic and Loops
    a. Boolean operators
    b. If...Then and If…Then…Else statements
    c. Case statement
    d. Accumulators and Counters
    e. Counter controlled loops
    f. Sentinel value controlled loops
    g. For loop
4. Procedures: Subs and Functions
    a. Breaking large programs into smaller modules
    b. Functions returning values
    c. Subroutines
    d. Scope and visibility
5. Arrays and Structures
    a. Single dimension arrays
    b. Multi-dimensional arrays
    c. Passing arrays to subroutines and functions
6. Debugging and Error Handling
    a. Debugging using breakpoints
    b. Input validation
    c. Exception handling
    d. Try, throw, and catch
7. Database Access
    a. Database design (schema)
    b. Establishing a connection between a Visual Basic program and a database
    c. Structured Query Language (SQL)

----------------------------- LAB CONTENT ----------------------------------
1. Menus and Common Dialog Boxes
    a. Design, code, test and document a program that contains menus.
    b. Design, code, test and document a program using one or more dialog boxes
2. Sub Procedures and Function Procedures
    a. Design, code, test and document a program that utilizes functions and procedures
    b. Subdivide a larger program using procedures
3. Object Oriented Programming
    a. Design, code, test and document a program that uses objects
    b. Create an object oriented program that utilizes constructors
    c. Create an object oriented program that utilizes collections
4. Programs with Web Forms
    a. Design, code, test and document a program that creates HTML web forms
5. ADO.NET in VB.NET applications
    a. Create a program that establishes a connection accesses a database
6. Programs with Advanced Validation
    a. Implement data validation for non-numeric data, and numeric range checks in multiple projects
    b. Implement the TRY-THROW-CATCH structure for exception handling

LAB ASSIGNMENTS:
Some of the lab assignments will take longer than other labs. It is expected that each student will make use of the Open-Lab time to complete assignments as needed. Open-Lab hours are made available to students registered in CIS courses. Instructions will be given after the first week on how to use the open lab.

LAB REPORTS:
Programs turned in must include printouts of both the program and the results of testing the program. Programs will be graded on whether they work, quality of output, program readability and appearance, program construction and completeness of testing, and very importantly - documentation.

A lab report form is available on Moodle. Each lab report must include:
1. Your name, class, date and an assignment ID # if provided
2. A written description of the lab project in English
3. A list of inputs, processing and outputs for each program
4. Test data values, expected results and actual results when the program runs
5. A discussion of what you did to make the program run and any problems you encountered
6. A screen shot of the program execution
7. The listing of the program (code for the program)

SOFTWARE REQUIREMENTS AND ACCESS TO SJCC COMPUTER LABS:
The Visual Basic programming language is used to develop programs for Microsoft Windows. Students need access to a computer with the Microsoft Windows operating system (Vista, WIndows 7 or Windows 8) and Microsoft Visual Studio (either Professional or Express Edition). A new copy of the textbook may also come with Visual Studio, but this copy is only good for a trial period of 30 days. I recommend that you get a free copy of Visual Studio for students from the Microsoft Dreamspark website using your StudentID@stu.sjcc.edu e-mail address. See the syllabus for details on the e-mail address. See DreamSpark at https://www.dreamspark.com/

San Jose City College has many computer labs on campus. The labs used by the CIS and CA departments have all of the software installed that you will need to complete the class assignments. Most of the other labs on campus will have Microsoft Office installed, but may not have the Visual Basic development system installed. You need to be an SJCC registered student to use the computers in the Library. You may need to be registered for tutoring to use the LRC labs. Other labs serve different departments on campus. You may need to be registered in one of their classes to use their labs.

E-MAIL:
All students are required to obtain an e-mail account in addition to their Moodle account. All correspondence through Moodle uses the e-mail address that you have listed with the Admissions and Records office. This includes any messages that I send to the class as well as scores for each assignment. It is important that you update your e-mail address if it changes. If you have any questions about the course or need assistance, please contact me in person or by telephone during office hours or by e-mail at any time. You can update your e-mail address by clicking the "CLICK HERE" message on the purple rectangle when you go to the MyWeb page at http://myweb.sjeccd.edu (NOTE the 'E' in sjeccd). If you have an e-mail filter for spam, etc., it is your responsibility to make sure that you are receiving the e-mails that I send you, either from my college address Dan.McElroy@sjcc.edu, or e-mails sent through Moodle.

Students at San Jose City College are also given a free .edu e-mail address @stu.sjcc.edu
For example, if my student ID was 1234567 and my MyWeb ID was damc4567, my e-mail address would be damc4567@stu.sjcc.edu
The initial password starts with Password (with a capital-P) followed by six digits for the month, day and year of your birth. Example: Password061475
You are not required to used this e-mail address, but you will need it if you want to download a free version of the Microsoft Visual Basic software.

Additional information can be viewed at http://www.sjeccd.edu/district-services/information-technology-services-support/help-desk

ATTENDANCE AND DROPS:
You are expected to participate in the class using Moodle each week. Once you have shown some commitment to the class by attending, participating in quizzes, labs, or homework, I assume that you wish to be in the class. It is your responsibility to drop the class if you do not wish to continue. However, you may be dropped by the instructor if it appears that you are not participating in the class by submitting regular course work. If you do not complete the course, and do not officially drop through the Admissions office and are not dropped by the instructor, you will receive a grade based on your completed work. Important dates are listed on the last page of this syllabus.

In other words, if you want to stay in the class, you need to submit work on a regular basis or your may be dropped. If you want to drop the class, you should drop the class by one of the drop dates to make sure it happens for the best result on your transcript.

MOODLE:
The class webpage on Moodle contains class notes, links to videos, PowerPoint slides, class announcements, the course syllabus, test dates, and other information for the course. All assignments must be submitted using Moodle. The assignments must have your name, student ID, and exercise name at the top of the document. Late assignments will be accepted with a penalty. Make sure you can login to your Moodle account the first day of class. If you are adding the class at the A&R office or through the MyWeb, your Moodle account will be activated at the next Moodle update which typically occurs three times a day. Refer to the Moodle home page for the update times.

Your eight-character Moodle login ID is the same as for MyWeb and is built from the first two letters of your first name, the first two letters of your last name, and the last four digits of your SJCC student ID number. For example, if my name is Dan McElroy and my student ID is 1234567, my Moodle login would be damc4567.

The default password is changeme and must be changed the first time you login. Your password must contain at least six characters, at lease one lower-case character, at least one uppercase character and at least one number. Your password for Moodle can be different from the password on MyWeb.

Additional information can be viewed at http://www.sjeccd.edu/district-services/information-technology-services-support/help-desk

GRADING:

 DEFINITIONS    
A=Distinguished
B=Above Average
C=Average
D=Minimum Passing
F=Failing

Percent
 A = 90%-100%
 B = 80%-89.9%
 C = 70%-79.9%
 D = 60%-69.9%
 F =  0%-59.9%

You can receive a 'C' in the class by taking the quizzes and the final, and completing only one lab assignment each week.

NO-NAME and LATE PENALTIES:
You must include your name, student ID or Moodle ID, exercise name and assignment ID (if provided) on all work you submit. Penalties will be applied AFTER the score for your assignment has been computed.

Quizzes and Lab Assignments must be completed by 11:55pm one week after the assignment is given. Due dates are listed on Moodle for each assignment. The last quiz and the lab final are due on May 22, 2015. No late assignments will be accepted after May 22, the last day of the semester.. A late penalty is deducted for each day or part there of for each day the assignment is late, up to 3 points late penalty. The late penalty is in addition to any other scores the assignment received.

Penalty

Cause

1-3 points
Late penalty - 1 point for each day or partial day the assignment is late

1 point

No name on submitted assignment

1 point

No ID on the submitted assignment. Moodle or SJCC student ID is acceptable.

2 points
Missing INPUT / PROCESSING / OUTPUT (HIPO) chart, if part of the lab report
1-2 points
The Project Discussion is missing
2-4 points
Screen shot of executing program is missing, or does not match data entered in the report
2-4 points
The code you used to complete the project is missing

ACADEMIC DISHONESTY PENALTIES:
You are expected to DOWNLOAD YOUR OWN ASSIGNMENTS and DO YOUR OWN WORK. I have several ways to help me determine if a student is downloading an assignment from someone else's account or submitting another person's work. I may not catch every instance of plagiarize work, but I can catch many. The penalties for Academic Dishonesty far exceed the penalties for submitting your work late. I strongly suggest that you do not share your work with other students, or share your disks or flash drives that contain your class work. Sometimes students have loaned their flash drive or computer to another student and the second student accidental submitted the wrong file. Other times the second student just copied the first student's work and changed the name. If it looks like work was copied, even if accidental, the penalties will apply. Don't take the chance on messing up your grade.

Penalty

Cause

zero points on the assignment and your course grade will be lowered

All or some of your work was created by another student this semester, or a previous semester.

zero points on the assignment and your course grade will be lowered again.

Second offense.

an 'F' in the class

Third offense.

CIS73 - Visual Basic.NET Programming Course Outline - subject to change - see Moodle for any updates to the class schedule

Week
Dates

Lecture Topic
Chapter numbers refer to
Starting Out With Visual Basic 2012
Lab Assignment
Page numbers refer to
Starting Out With Visual Basic 2012
Homework and Quiz
To be completed before next week's class. Page numbers refer to
Starting Out With Visual Basic 2012
Week 1
 
Jan 26
to
Feb 1

Class Orientation
Chapter 1: Introduction to Programming and Visual Basic

    Keywords, operators, variables, syntax
    Event Handlers
    Visual Studio Environment


Chapter 2: Creating Applications with Visual Basic

    Problem Solving
    Label
    Event Handlers
    PictureBox
    Button
    Comments
    Debugging

Pass / Fail

Players on a Team

 

Read chapter 2, first third

Orientation Quiz
Introduction to Visual Basic Quiz
Week 2
 
Feb 2
to
Feb 8

Chapter 2: Creating Applications with Visual Basic
    Visual Basic Program Organization and Comments
    Display messages in a Label
    Display messages in a MessageBox

   
Visual Studio Help

Chapter 3: Variables & Data Types

Paycheck version 1.0

Visual Basic Syntax Errors

 

Finish reading chapter 2
Read the first third of chapter 3

Quiz on chapter 2

Week 3
 
Feb 9
to
Feb 12

Chapter 3: Variables and Calculations
    Data Types, Literals and Constants
    Mixing Data Types
    Formatting Numbers and Dates
    Class-Level Variables
    Group Boxes

Rock-Paper-Scissors

Stadium Seating
(Chapter 3, problem #2, pages 202-203)

Finish reading chapter 3
Read the first third of chapter 4

Quiz on chapter 3

Presidents' Holiday Feb 13 to Feb 16

Week 4
 
Feb 17
to
Feb 22

Chapter 4: Making Decisions
    Visual Basic Arithmetic and Logical Operators
    Introduction to Exception Handling
    The different IF statements
    The Select Case statement
    Radio Buttons
    Check Boxes

Electric Bill

Long Distance Call
(Chapter 4, problem 10, page 282)

Finish reading chapter 4
Read the first third of chapter 5

Quiz on chapter 4

Week 5
 
Feb 23
to
Mar 1

Chapter 5: Lists and Loops
    Input Boxes
    List Boxes
    Decisions
    Subroutines

Fast Food Project

Travel Reservations

Finish reading chapter 5

No quiz this week

Week 6
 
Mar 2
to
Mar 8

Chapter 5: Lists and Loops - Continued
    Do While loop
, Do Until loop
    While Do loop
    For Loop
    Process Group Box objects
    'Validating" Event Handler
    Random Numbers

Tornado Statistics

Grade Report
(Chapter 5, problem #7, page 351)

Read the first third of chapter 6

Quiz on chapter 5

Week 7
 
Mar 9
to
Mar 15

Chapter 6: Procedures and Functions
    Visual Basic Procedures and Functions
    Pass by Value
    Pass by Reference

Dan's Computer Shoppe

Gas Pump Documentation

Finish Reading chapter 6

No quiz this week

Week 8
 
Mar 16
to
Mar 22

Chapter 6: Procedures and Functions - continued
    Visual Basic Procedures and Functions
    Pass by Value
    Pass by Reference

    Debugging Functions

Paint Job Estimator
(Chapter 6, problem #7, page 401) + extra requirements

Read the first third of chapter 7

Quiz on chapter 6

Week 9
 
Mar 23
to
Mar 29

Chapter 7: Multiple Forms, Standard Modules and Menus
   
Modules
    Menus

Amusement Park

Soda Machine Simulator (extra credit assignment)

Finish reading chapter 7
Read the first third of chapter 8

Quiz on chapter 7

Week 10
 
Mar 30
to
Apr 5

 
Spring Break - Mar 30 to Apr 2

Cesar Chavez Holiday - Apr 3

No Classes - Apr 4

Week 11
 
Apr 6
to
Apr 12

Chapter 8: Arrays and More
    Introduction to Classes
    Single-dimensional Arrays
    Multidimensional Arrays
    Arrays and Functions/Procedures

Random Sentences
(Chapter 8, problem #3, page 537)

Tax Table Lookup

Finish reading chapter 8
Read the first third of chapter 9

Quiz on chapter 8

Week 12
 
Apr 13
to
Apr 19

Chapter 9: Working with Disk Files
    Open File and Save File Dialog Boxe
s
    Reading Data from a Text File
    Writing and Appending Data to a Text File
    Determining if a File Exists
    Detecting End of File

Search a Disk File

Find the Range, Mean and Median Values in a Disk File

Simple Text Editor V1.0
-File open and save
(extra credit lab)

Finish reading chapter 9

No quiz this week

Week 13
 
Apr 20
to
Apr 26

Chapter 9: Printing, and Structures
   
Font Dialog Box
    Color Dialog Box
    Print Method and Print Page Event
    String.Format

Compute the Paycheck V2.0

Print the Paycheck V3.0

Simple Text Editor V2.0
-Print Preview and Print
(extra credit lab)

Read the first third of chapter 12

Quiz on chapter 9

Week 14
 
Apr 27
to
May 3

Chapter 9: Structures
Chapter 12: Classes, Collections, and Inheritance
    Structures
    Classes and Objects
    Collections
    Introduction to Inheritance

Inventory Item Class
(Chapter 12, problem #7, pages 792-793)

Elevator Lab Assignment

Finish reading chapter 12

No quiz this week

Week 15
 
May 4
to
May 10

Chapter 10: Working with Databases
    Database Concepts
    DataGridView Control
    Data-Bound Controls
    Structured Query Language (SQL)
    Introduction to LINQ

Sales Staff Salaries
(Chapter 10, problem #4, pages 672-673)

Read chapter 10

Quiz on chapter 10

Week 16
 
May 11
to
May 17

Chapter 11: Developing Web Applications
    Creating ASP.NET Applications
    Web Server Controls
    Designing Web Forms
    Using databases
ASP.NET version of Stadium Seating
(Refer to week 3 for Stadium Seating)

Review for the Final

Week 17
 
May 18
to
May 22

FINAL EXAM - Written test FINAL EXAM - Lab test END OF SEMESTER-May 22
Friday, May 22 is the last day to submit any work or late assignments to have them included in your grade.

Important Dates Spring 2015
Regular semester courses
(all information subject to change)
1/26
SPRING SEMESTER 2015 BEGINS
2/6

LAST DAY TO DROP Spring classes without being assessed registration fees
LAST DAY TO DROP Spring classes with eligibility for refund of fees
NOTE: Registration fees will be assessed for any classes dropped after 2/7/15

2/8
LAST DAY TO ADD using add codes on MyWeb
2/9

CENSUS DAY
LAST DAY TO DROP Spring classes without a W

2/10

FIRST DAY TO DROP Spring 2015 classes with a W

2/13 - 2/16
Presidents' Holiday. Campus Closed

2/20

LAST DAY TO APPLY for a refund of fees (for class(s) dropped by February 6)
LAST DAY TO SUBMIT Pass/No Pass forms to A&R

3/6
LAST DAY TO SUBMIT Graduation/Certificate Petitions for Spring/Summer 2015
3/20
Professional Development Day (faculty and staff) - no classes held
3/30 - 4/5
Spring Break + Cesar Chavez Holiday
4/23
LAST DAY TO DROP Spring classes with a W
5/15
Last Friday evening classes
English final exams - no regular day classes
5/22
SPRING SEMESTER 2015 ENDS
SJCC Commencement
6/8
Intersession and Spring 2015 grades available on MyWeb