Approved by Univeristy Studies Sub-Committee.  A2c2 action pending.

University Studies Course Approval

 

Department or Program: Computer Science
Course Number: CS 130
Course Title: Introduction to BASIC Programming
Semester Hours: 3
Frequency of Offering: every semester; 2 sections of 30 students
Catalog Description: An introductory course in computer programming utilizing the VISUAL BASIC language.  Intended for students in the life and social sciences, business, psychology and other disciplines.  Covers file processing and other related tools. 
Existing course approved by A2C2: Yes
Department Contact: Tim Gegg-Harrison
Email Address: tsg@wind.winona.edu
University Studies Requirement: Unity and Diversity:
     Critical Analysis

 General Course Outcomes:

Learning how to program a computer is very different from learning how to use a computer.  The purpose of writing a computer program is to have the computer solve a specific problem for you -- in a specific and repeatable way.  As such, the programmer must understand the problem in all of its ramifications and then develop a logical solution to the problem that can be understood by the computer.  I.e., a programmer must use critical thinking skills to analytically solve a problem under the axioms of a well-defined logical system.  In this course, students learn the basics of programming a computer and they learn how to represent their programs in a specific programming language: Visual Basic.

Throughout this course, students work on writing computer programs.  They will typically work on a couple of large programming projects by using guidance in the lab portion of the class to complete a series of shorter programming activities that form the foundation of their projects and then completing the projects outside of class.  As the course progresses and they learn more of the language's constructs, they work on writing programs to solve more complicated problems.
 

Specific Course Outcomes:

 

a. evaluate the validity and reliability of information;

The complete process of writing a program requires a student to evaluate the validity and reliability of their proposed problem solution.  In particular, the steps of simple programming include the following:
    1. Understand the problem.
    2. Dissect the problem into manageable pieces.
    3. Design a solution.
    4. Consider alternatives to this solution and refine it.
    5. Implement the solution in a specific programming language and computing environment.
    6. Test the solution.
    7. Determine the source of problems found in the solution.
    8. Repeat steps 3-7 as necessary.
Students will work on all of the steps throughout the semester.

b. analyze modes of thought, expressive works, arguments, explanations, or theories;

Step numbers 1-5 above fit into this category.  Students are given exercises to help them develop the skills necessary to perform these steps.  In particular, students usually come into this class thinking that programming is mostly about step number 5.  Thus an emphasis of the class is getting them to understand the importance of steps 1-4 and also in developing the skills they need for these steps.

c. recognize possible inadequacies or biases in the evidence given to support arguments or conclusions; and

Step 6 and 7 above, frequently referred to as "testing" and "debugging" a program, fit into this category.  During testing, the programmer tries to design experiments that will determine if the program is working correctly under certain conditions.  When it is recognized that the program in inadequate for a certain set of test data, then the program must be debugged.  This involves finding the source of the error in the program.

d. advance and support claims.

Frequently students think that they completely understand the use of a certain language construct or that an existing program works correctly in all situations.  By having the students reuse earlier language constructs and also other programs in more complicated, follow-on programming assignments, they are given the opportunity to advance and support their claims.  In some cases, their initial assumptions are supported; in others they find out for themselves some of the limitations to their earlier solutions.

 

horizontal rule

Sample Course Syllabus 
Fall Semester - 2001

 

Course:

CS 130 – Introduction to BASIC Programming 

Text:

Bradley & Millspaugh, "Programming in Visual Basic 6", Irwin McGraw-Hill, 2000.

Prerequisites:

None

Credits:

3 S.H.

Course Description:

An introductory course in computer programming utilizing the Visual BASIC language.  Intended for students in the life and social sciences, business, psychology, and other disciplines.  Covers file processing and other related tools. 

 Instructor:

Prof. X

Office hours:

Anytime

Office: 

Anywhere

e-mail address:

profX@wind.winona.edu

Office phone: 

555-1234

Course Home Page:

http://wind.winona.edu/~ProfX/CS130/ 

 

University Studies

This course qualifies as a University Studies course satisfying the outcomes of the Critical Analysis category of the Unity and Diversity area.  As such, successful completion of the course requirements will complete the Critical Analysis category of the Unity and Diversity area of the University Studies program.

University Studies Outcomes:  Critical Analysis courses in the University Studies program are devoted to teaching critical thinking or analytical problem solving skills.   These skills include the ability to identify sound arguments and distinguish them from fallacious ones.  The objective of these courses is to develop students’ abilities to effectively use the process of critical analysis.

These courses must include requirements and learning activities that promote students’ abilities to:
    A. evaluate the validity and reliability of information;
    B. analyze modes of thought, expressive works, arguments, explanations, or theories;
    C. recognize possible inadequacies or biases in the evidence given to support arguments or conclusions; and
    D. advance and support claims.

Learning how to program a computer is very different from merely learning how to use a computer.  Unlike other machines that humans have created, the computer is a unique machine.  It is a logically malleable machine that can be molded (or programmed) to solve any problem that can be defined with a set of inputs and outputs and a corresponding set of logical operations to transform the inputs into the outputs.   Solving such problems requires critical analysis skills.  Specifically, the programming process requires the following steps:
    1. Understand the problem (i.e., analyze the problem definition).
    2. Dissect the problem into manageable pieces.
    3. Design a solution.
    4. Consider alternatives to this solution and refine it.
    5. Implement the solution in a specific programming language and computing environment.
    6. Test the solution.
    7. Determine the source of problems found in the solution.
    8. Repeat steps 3-7 as necessary.

The entire programming process is an example of outcome A.  Steps 1-5 are examples of outcome B.  Finally, outcomes C-D are covered in steps 6-7.  The class will meet in the computer lab and consists of both lectures and hands-on labs.  You will practice the programming process in two distinct ways.  First of all, you will participate in some closed labs where new material will be introduced and small projects will be completed in groups that enable you work collaboratively while learning the new material.  You will also be given more major programming projects that are expected to be completed individually outside of class.  These activities enable you to solidify your understanding of the material that is presented in the lectures and hands-on labs.

 

Course Specifics

Topics we will attempt to cover include, but are not limited to, the following:

  1. Introduction to Visual Basic
  2. Use of Controls
  3. Use of Variables, Constants, and Doing Calculations
  4. Decision Making and Conditions
  5. Use of Menus, Sub Procedures and Sub Functions
  6. Use of Multiple Forms
  7. Lists, Loops, and Printing
  8. Arrays
  9. OOP – Creating Object-Oriented Programs
  10. Data Files, Sequential and Random Access Files
  11. Accessing Database Files

This list indicates topics to be covered; it does not necessarily reflect the order in which we will cover them.

 

Grading Distribution:
    1.   4-7 Programming Projects (40%)
    2.   2-3 Exams (40%)
    3.   Final exam (20%)

 

Grading Policy:
The following policy will be in effect for all programs.  Programs are due at the beginning of the class period on the due day.  Late programs will be accepted prior to the beginning of the following class period for a 20% reduction.  No programs will be accepted after that time.  Programs that do not compile will receive no credit.   You must complete at least one program in order to pass the class, regardless of your performance on the exams.

 

Academic Dishonesty Policy:
Cheating is a deplorable act and it will not be tolerated in CS130 or any other class that I teach.  Anyone who is caught cheating in this class will receive a grade of F for the class.  Note also that if you are caught cheating then you will not be permitted to withdraw from the class (i.e., the F will go on your permanent transcript).

All programming assignments that are assigned in CS130 are individual assignments.   That means that you must do all of the work entirely by yourself.  To ensure that you adhere to policy, for each programming assignment you are required to turn in a signed note indicating that you alone were responsible for the work.  It is considered cheating to copy any portion of the assignment from anyone else or to knowingly permit someone else to copy your assignment.  All exams in CS130 are closed book/closed notes.  It is considered cheating to view your notes or to communicate with or copy from a classmate during an exam.

 

horizontal rule

 

Sample Assignments

 

Week 1
    - Introduction to Analysis Techniques (data flow, structure charts, decision trees)
    - Introduction to Windows Terms (events, window, controls)
    - Introduction to Programming terms (procedures, functions, sequential, decision, repetition)

 

Week 2
    - Follow up on Programming Terms
        o Exercise:  Program the process of answering a phone
    - Visual Basic Projects (start Visual Basic, explain what a Project is used for, explain forms)
        o Exercise:  Create a form with 2 text boxes and a command button

 

Week 3
    - Work on Event Procedures (What are they, how do they get triggered)
    - Finish 1st VB Program
        o Exercise:  Write a program that will display student’s name and class number in appropriate textboxes
        o Exercise:   Extra Credit…if they can find out how to change the background color to yellow when the command button is clicked.

 

Week 4
    - Exam #1 (covering Chapters 1 and 2 of book)
    - Describe the first of two semester projects (Master Mind game – Logic and controls)
    - Work on defining problem and required manual solution
    - Begin Project #1 (MindMelter)
        o Exercise:  Create playing board on a form (picture boxes, command buttons and shape controls)

 

Weeks 5 - 10
    - Continue the MindMelter project
    - Introduction to Programming Concepts like Variables, Arrays, Control Arrays, Decision Blocks, Loops
        o Exercise:  Computer generated answer array
        o Exercise:  Exact Matches
        o Exam #2 (covering Chapters 3 and 4)
        o Exercise:  Flags
        o Exercise:  Color Matches
        o Exercise:  Placing Pegs in shape control array
        o Exercise:  Analyzing if guess is completely correct
        o Exercise:  Multiple Playing Levels
        o Exercise:  Menus
        o Exercise : About Boxes

 

Week 11
    - Introduce 2nd project (Magic 8 ball – database)
    - Create Magic8 Ball
    - Create a Magic 8 ball Answer Maintenance Form
    - Describe the purpose of Databases
    - Connect CRS Database to Answer Maintenance Form
        o Exercise:  Enter 4 answers into database

 

Week 12
    - Exam #3 (Chapters 5 and 6)
    - Random number generator for answer
    - Recordset.MoveFirst/MoveLast/MovePrevious/MoveNext/AddNew

 

Week 13
    - Wrap up of projects

 

Week 14
    - Exam #4 (chapter 7)