CS 1130 Visual Basic Programming

Syllabus — Fall 2016, J. Philip East

Course Information

Class Logistics & Content

The goal of this course is to prepare professionals who can program not professional programmers. It has no prerequisite and will be taught for non-majors who have an interest in learning to program or anyone specifically interested in VB. The course does not count toward the computer science major but is reasonable for majors to take if they have not yet completed our data structures course.

My primary goal in this course is that all the students learn to (become capable of and willing to) write programs to solve problems in their lives when/if a program is a reasonable problem solution. Learning occurs in the head/brain of the learner and requires actively engaging with the information and tasks to be learned. In this course if you complete the tasks assigned, the information you need to learn will occur as a side effect of carrying out suggested tasks.

I enjoy very much working on programs with students and hope you will bring questions to me. You should also feel free to discuss your work with classmates and even friends who know nothing about programming (just talking through what you are trying to do will often help you solve a problem). Copying code without substantial adaptation typically does not enhance learning, should be avoided, and is considered to be "cheating".

General Course Plans & Assignments

We/I use a problem-centered approach to programming that addresses program development in context rather than focussing on the various language features separately. However, initial activity will have to focus on very small "problems" to allow learning of Visual Basic form element properties, data, variables, and built-in functions to form expressions needed to represent the basic elements of problem solutions and to accomplish manipulations of data needed to solve the problem. Understanding the data elements is critical to representing problems in a way that allows us to have the computer produce desired results. Exercises designed to help you learn about VB form elements, data, variables, & built-in functions and operations on them will be provided.

The course will be divided into five units and several weeks at the end for project work. Each of those units will have associated competency demonstrations (see discussion below). Those units will be followed by several special language features topics — form interaction, data structures/collections, files, modularization, dynamic form construction. (Most of those topics will make use of the last unit about iteration.) Early in the semester, class time will be used to:  introduce key unit content & expectations,  demonstrate the solving of small problems with coding,  have students demonstrate solutions or ask questions on exercises,  4) review key ideas from the unit,  and take the initial competency demonstrations. After the first three units, I will also use class time for developing examples involving larger chunks of code and using conditional and iterative execution of code. It is impossible to communicate everything (or even most of what) there is to know about the Visual Basic language and its myriad controls and properties in a single semester class. Class examples, the text, and independent seeking of information should provide more than enough knowledge to design, code, and debug what you develop.

A major goal of the course is that you be able to identify a course project of your own choosing, represent the problem and identify a solution, produce the code to implement the project, and understand the code used. We will use several sample problems as examples in the process of learning to program. You should begin thinking immediately about what you want to use as your class problem/project.

Grading

I am using a modified mastery learning grading system. Programming essentials will be tested by pass/fail competency demonstrations or driving tests each of which can have multiple attempts to demonstrate competency. The other major grading component will be the course project. Two minor elements of grading are sharing your work on homework and attendance & class participation.

Occasionally, I will "publish" the spreadsheet grade book to allow students to check for recording errors. I have experimented with all kinds of grading scales. This semester I am trying a different approach that I hope will allow me to communicate my assessment of work using the grade assigned. When I assign scores I will use a 14 point scale, i.e.,

    14:A+, 13:A, 12:A-, 11:B+, 10:B, 9:B-, 8:C+, 7:C, 6:C-, 5:D+, 4:D, 3:D-, 2:F+, 1:F, 0:F-

Often the high score will be 13 rather than 14. Course grades will be based on the items indicated below. Grading will mostly look at whether the expectations/specifications were met and, when appropriate, the level of understanding and skill demonstrated. Each assignment description will include additional information on how it will be assessed/graded.

Instructor availability

I have lots of office hours and am usually available much of the rest of the day except the hour or two before classes. I enjoy talking with students and working through their difficulties. I am usually fairly responsive to e-mail questions also. Please contact me when you are having difficulty or just want to talk.

Feedback

With computer programming, feedback about successful coding is produced by the computer. I provide practice activity that allows you to have the computer check your work. Thus, I will not check or grade programming practice exercises. Some feedback will occur during the homework sharing activity. Additionally, individual feedback and assistance is available for the asking and I highly encourage visits to office hours and e-mails for help. When you encounter problems, work on them for a while but after 20-30 minutes of no progress, seek help from me, a classmate, the text, the Web, or a knowledgeable friend (talking through the problem sometimes lets you find the difficulty). If you contact me by e-mail, describe what is happening and copy & paste your code into the message.

Schedule

The planned schedule is provided below. Hopefully it is close to the reality that will occur.

Additional, General Information

Academic Conduct

Sometimes we tend to equate time spent with the grade we should receive. Do not fall into that trap. The quality of work is more important than the quantity of work or time spent (though time spent indicates something of worth). Also, keep in mind the rule of thumb that says you should spend about two hours outside of class for each hour of class time. If you feel my assignments require substantially more time than that for multiple students, please let me know.

If you know in advance of an extended absence, notify me and we will plan how the absence will be handled. For unforeseen absences, with good reason, contact me as soon as you return to arrange for making the work up and avoiding interference with other studies.

Code is often available via the web and you have been encouraged to discuss your work with others. I encourage students to work together on homework, both fully understanding each problem & solution. Copying and using code or prose without attribution is considered to be plagiarism—don't do it! Even with attribution, using copied code/prose beyond a small amlount without substantial adaptation is considered to be academically dishonest—don't do it! A good rule of thumb for my class is that you can show/see and discuss code but should use someone else's code only if: 1) you fully understand it, 2) you type it by hand rather than copying and pasting it, and 3) provide attribution of its source. Copying prose is not allowed at all except for quoted material used to make your own point.

Accessibility

If a student has a disability that qualifies under the Americans with Disabilities Act and Section 504 of the Rehabilitation Act and requires accommodations, he/she should contact Student Disability Services (SDS) for information on appropriate policies and procedures. SDS is located on the top floor of the Student Health Center—phone (319) 273-2677.

Cell Phones, etc.

It is generally not acceptable to use cell phones, computers, etc. during class time, except with permission of the instructor and for reasons directly related to class activity. However, UNI Alert situations and personal-life emergencies may occur, thus, we need to be able to receive those kinds of messages. Non-emergency calls are to be avoided. Continued violations will result in deductions in attendance and participation points. Personal texting, web-surfing, etc. is not okay. Generally, texting, web-surfing, etc. even about class-related subjects is discouraged. If you have to hide activity from the instructor or peers, it is not okay (so don't do it).

Additional Academic Help

I encourage you to utilize the Academic Learning Center’s free assistance with writing, math, science, college reading, and learning strategies. UNI’s Academic Learning Center, located in 007/008 ITTC, also provides advising services and is the University's testing center for many standardized tests, including the PLT, GRE, and Praxis Core. Visit the website at http://www.uni.edu/unialc/ or call (319) 273-6023 for more information or to set up an appointment.