CS A111: Visual Basic .NET

Course Syllabus, Spring 2009 Textbook

Software: This course uses the Microsoft Visual Basic .NET programming language.  All of the necessary software will be available on the computers in the CS Lab (SSB 170) and in the computer classroom in SSB 254.  As part of our Academic Alliance agreement with Microsoft, students may obtain a copy of Microsoft Windows XP, Vista or Visual Studio .NET software to install on your computer at home as long as the software is used for non-commercial academic use.  Contact your instructor if you would like to participate or for further information. You can also download Microsoft Visual Basic 2008 Express Edition for free from Microsoft's Visual Basic site .  Visual Studio .NET requires Windows XP, Vista, or 2000 as your base operating system. It doesn't run on a Mac unless you use virtualization software (e.g. Parallels).

Course Description: The objective of this course is to introduce students to the fundamentals of computer programming and problem solving using Visual Basic .NET.  The emphasis is on the fundamentals of structured and object-oriented programming, syntax, semantics, control structures, arrays, file I/O, testing/debugging, implementation, documentation, and the construction of graphical user interfaces.  The content is geared toward non-CS majors in the sciences.

Upon completing the course students will understand:

Lab Assignments:   There will be a lab session held in class approximately every other week.  Lab assignments are due at the end of the day if you can't finish them during the class period (turn in via Blackboard).  Late lab assignments will not be accepted without a valid excuse.   The lab assignments will be available on the course web page before each lab. Everyone should do their own lab assignment although you can discuss solutions with your neighbors.

Computer Science Lab Facility:   When working on your homework, you can use t he lab located in SSB 170A.  There is both an "upper" lab (located at the top of the ramp) and a "lower" lab (located at the bottom of the ramp).  You can work in either one, although most students tend to work in the "upper" lab.  You must have a UAA wolfcard to gain access to the room.  For the computers, log in with the same UAA username and password that you use for webmail (if that doesn't work, try a blank password).

Lab technicians: Be careful not to abuse the goodwill of the lab technicians. Their jobs are to help you by making sure that you have the resources that enable you to do your work. They are NOT obligated to train you in using the hardware or software. They are there if a computer is broken, you can't print, can't log in, etc.  If you need help in understanding a homework problem please confer with me or your fellow students.

Lab tutor: There will hopefully be an upper-division CS student serving as a lab tutor for approximately 2 hours each day (hours are variable, but will likely be after class). The tutor is there to help you with any programming issues that you may have on a first-come first-served basis. The tutor is not there to do your homework for you.  See the tutoring policy for more information. 

Homework Assignments:   There will be approximately 6 programming assignments throughout the course, although this is subject to change.  Each assignment will require multiple programs.  You are expected to work individually.  You may talk to other students about strategies and approaches to solve a problem, but it is not OK to copy someone else's code (including online sources) and turn it in as your own or to make minor changes and then turn it in as your own.  Turn the assignments in via Blackboard. 

Some programs on each assignment will be marked as 'core'.  These programs represent the minimum that you must be able to complete on your own if you intend to have a realistic shot at making it through later course material.  The 'non-core' programs will emphasize additional features, integration of different programming concepts, and the application of programming concepts to different problem areas.   As incentive for you to focus on the 'core' material, there is no late penalty for receiving credit on these problems (you could submit them all on the last day of class) although I recommend you try to complete them by the due date or you'll fall behind.  If you don't get a core problem correct I will also let you re-do it and try again.  However, I won't post any solutions to the core problems.  The non-core problems will be treated differently, I will post solutions generally one week after the due date but this may vary.  Solutions to these problems will be accepted late only up to the date that solutions are posted online.  The homework grade is penalized 5% for each day late. If you can submit a partial solution on time and the rest late then you will only be penalized for the portion turned in late.  I anticipate around 30-40% of each assignment will be 'core' although this is subject to change.

Questions: If you have any questions, feel free to come in to my office.  In general, I have an open door policy -- if I am available in my office, you are welcome to come by.  An even better way to reach me is through email.  I check my email frequently and you should receive a response quickly.  Email is preferred over telephone and you will probably receive a faster response since I don't check voicemail very frequently.  You can also contact me online via ICQ, AIM, or MSN Messenger (see contact info on the home page).  I'm often up late and will be glad to answer questions if I'm available! 

Exams:  There will be one midterm and one final exam.  If you must miss an exam, notification must be made in advance.  Exams will consist of problems to work through. Typically you will either have to describe the output of some code, write some code yourself, or provide short answers.  Each exam will be cumulative since the course material builds upon previously covered material!  This means you must keep up in the class, or you will quickly find yourself lost.  You will be allowed open-book access for the exams.

Video Recordings/Webcast:  Elluminate Live!, available on Blackboard, will be used to record the lectures and broadcast the screen.  This can be useful in the computer classroom so you don't have to strain to see the material I put on the projected screen, instead it will be viewable on your computer.  However, make sure to mute the audio in the classroom.  You can view recorded lectures at a later time to review a lecture or to see what happened if you missed a lectured.  If you have a high-speed internet connection you can view the lecture in real-time online, but I will generally not pay too much attention to questions posed online.

Grading:  Exams will be graded and returned to you. Grades will be posted on Blackboard.  Grading breakdown:

Homeworks:  30%   (each homework assignment is worth an equal amount)
Labs:             20%
Exam 1:         25%
Exam 2:         25%

The grade scale is shown in the table below.  The grading curve may be lowered if necessary but it will not be raised.  This means that if you received an 89% then you will at least get a B+, but may receive a higher grade based on the curve.  (Final grades don't include a + or -).

An incomplete grade will only be given for a valid excuse (e.g. medical, death in the family). An incomplete grade does not let you take the class over again, your final grade will be assigned based on work submitted in class and work that remains to be submitted.

Cheating: Students are expected to uphold the UAA standard of conduct relating to academic dishonesty outlined in the UAA catalog and student handbook.  Cheating is not tolerated and constitutes grounds for dismissal.  For this class, it is permissible and encouraged to assist classmates in general discussions of how to attack the homework problems. It is not permissible to copy another's work (or portions of it) and represent it as your own.