Antelope Valley College, Instructor Charles Costarella

CIS 111 Introduction to Programming and Algorithms
Spring Semester 2011
CRN 34535 CIS 111 Tuesday 06:00pm - 10:05pm BE 324 02/07/2011 to 06/03/2011
Charles Costarella, Adjunct Faculty
661.400.4623  Cell and Voice Mail
avccis111@gmail.com

ANNOUNCEMENTS:

Announcements will be posted in this section. Check this section at least 2 or 3 times each week in case of last minute changes.
Date Announcement
Week 1 The CIS-111 Yahoo discussion group is located at: http://groups.yahoo.com/group/avccis111. This group is where you ask questions about the course, assignments, software tools, the Java language, and anything related to CIS-111. I use the group to answer your questions and distribute information to you during the semester in place of individual email. Students are encouraged to answer as well as ask questions. Create a Yahoo user account and join the group. If you have Yahoo email, you can use that login for the group. Group participation is required for this course.
Week 1 Currently, office hours for adjunct faculty have been discontinued due to budget cuts. More information may be available the first few days of the semester, so please ask for an update in class. I may find some limited office hours for those students with special needs on a case by case basis and at my discretion. I strongly suggest you utilize one on one time with me during the lab portion of the class meetings.
Week 1 Please note the email address to be used for this course is NOT an AVC email address. For organizational reasons, you must use the gmail address for the class. Send all assignments and other email to: avccis111@gmail.com

Required Materials:

Course Requisites:
Advisory: Completion of CA 103, or CA 221, or CIS 101, and eligibility for ENGL 099, READ 099, MATH 102.

Course Description:
This is a first course for students planning or exploring a career in software design and development. This course emphasizes a careful disciplined approach to computer programming. Problem solving through stepwise development of algorithms is presented. Students will learn programming language syntax, coding, program logic, and program testing. Students will plan, create, test, and run their own programs to solve typical problems. BEFORE ENROLLING: students should have basic computer experience and be able to save and retrieve files, run applications and print documents. Additionally, you will learn the principles of Object Oriented Programming. The language we will study is Java. We will only work with elements of Java that are considered standard by Sun Microsystems. Object Oriented Programming will be strongly emphasized.

Course Objectives:
Upon completion of course, the successful student will be able to:

  1. Describe and explain the essence of a programming language and characteristics specifically related to:
    • a. classes, objects, and methods
    • b. inheritance and polymorphism
    • c. libraries and interfaces
    • d. documentation
    • e. error handling
    • f. control structures
    • g. variables
    • h. data types
    • i. arrays and collections
    • j. software development
  2. Plan, code, run, and debug required problems.
  3. Create well documented, highly modular and easily maintainable programs.

Rules for Submitting Assignments:
During the semester, you will have 10 program assignments. Some will be complete Java programs that you write and some will be modifications to existing programs. Some will be exercises to work through following the instructions in the text. For each type of assignment, there will be different deliverables that you must submit to me to receive credit. I will cover this in detail when I make each assignment.

  • You must email your assignments to the correct class email address as attachments. (Do not insert the text or source code into the body of the email.)
  • The email Subject MUST identify the assignment for you to receive credit for your work.
  • Use a business-like email address that has some form of your actual name in it for the duration of the semester. This will help me recognize who you are from the email address. Please do not use a vanity email address with a cryptic name that I cannot resolve with what is on my roll sheet. I do not suggest using your school supplied AVC email address due to the additional steps involved in attaching files.
  • Send your email before the beginning of class the date the assignment is due. Late work will not earn full credit.
  • You are required to keep electronic copies of ALL assignments for the duration of the semester. This is for your own protection in case of lost or corrupted email, or network problems, etc. I am not responsible for backing up or archiving your work, even after you turn it in to me. Please do not trust a flash drive for this important task. I suggest getting a GMail account because of the large amount of storage it provides. When you send me an assignment (or more often if you want), you can CC a copy to your GMail address for backup.
  • Students will demonstrate each running program to me during the lab portion of the course. This will be an opportunity for us to interact on a one on one basis to provide you with feedback on how you are doing on your assignments. During these sessions, please be prepared by having your program and any other relevant files already loaded on your computer and setup to run before you ask me to stop by your workstation for the demo. Assignments will not be graded without the demonstration.

IMPORTANT INFO IF YOU WANT FULL CREDIT ON A PROGRAM ASSIGNMENT

  • Your programs will be graded on appearance as well as functionality.
  • Code layout must follow examples in the text.
  • You will have one or two weeks to complete assignments.
  • The first thing in the comment section at the top of each file will be:
    1. A complete sentence describing the program's function.
    2. Your name and the date (use the date for version)
    3. The chapter number and program name
    4. The page where it is located in the book and the number of the assigned problem(s). 
    Here is an example:
    /**
     * This class will run a simulation of a biological population
     * according to established rules for blah, blah, blah.
     * @author Chuck Costarella
     * @version 2009.05.23.01
     * Chapter 8 - Game of Life Program
     * Page 604 - Exercise 8.2, 8.3, and 8.7
     */
    
  • Assignments must be emailed before the BEGINNING of class on the day they are due or before to receive full credit.
  • Concepts studied for an assignment must be demonstrated in that program assignment. Do exactly what is asked for. I encourage you to work ahead on your own, but do not include this advanced material in any program assignments until that material is assigned to the class.
  • Code generation tools may not be used in this course. It is your responsibility to make sure you are writing all the code that you submit yourself. Generated code will not be accepted for any graded assignments.
  • All identifiers should be self-documenting.

Exams:
Three exams will be given. They will be evenly spaced during the semester. The final is cumulative and will require succcessful mastery of the course subject. You must tell me ahead of time if you are going to miss an exam, so other arrangements can be made. There may be a programming project assigned in place of an exam at the instructor's discretion. The project would be of a scope and difficulty level that would substitute for the exam.

Extra Credit:
There will be extra credit available from time to time on some assignments and exams. It will be of a very specific nature and only as I assign it.

Programs and assignments 10 at 10 to 20 points each 150 points
Quizes Undisclosed number of pop quizes at 5 to 10 pts. each ?? points
Exams 3 exams at 50 points each 150 points
Total possible    300+ points

Letter Grade Total points range
A 270 - 300
B 240 - 269
C 210 - 239
D 180 - 209
F 0 - 179

Attendance:
Class attendance is extremely important for successful performance in the class. There will be information given in the lectures that will not be found in the text, the discussion group, or on this website. Assignments are given in class and are not available elsewhere or ahead of time. You will be responsible for all instructional material covered in the text and in the classroom regardless of whether you were there or not. I strongly advise attending class. If you miss more than the equivalent of 3 weeks of class, you may be dropped for poor attendance.

Web Resources for Java Programming
Here are some useful links for Java development. These are suggestions for students who want more advanced tools and instruction. The time you spend exploring these links and tools will pay enormous dividends back to you, not just in this class, but in all programming classes you take.

Oracle Technology Network - Java The Source for Java Developers. The official web site for everything having to do with Java. Latest news, downloads, conferences, training, etc.
The Java Tutorials Professional level online courses that cover everything about Java, and I mean everything. It has online examples and code and you can download the entire thing. Free.
Eclipse Eclipse is an open source IDE for Java development formed by IBM Visual Age for Java and Borland JBuilder IDEs. Eclipse is a professional level tool and it is completely free and tons of Java development shops use it. This is the logical step up from JCreator when you feel like you are ready to grow.
BlueJ BlueJ is a free IDE that was written specifically for teaching Java and specifically from an Object Oriented point of view. The CIS department used this IDE and the accompanying text for several years here at AVC. Although I have mixed feelings about the teaching approach of the book, I definitely miss the IDE. It is hands down one of the best debugger interfaces I have ever seen for beginners learning a computer language. Easy to setup and use, visually and intuitivly obvious. Try it.
TextPad An excellent all-around programmer's text editor. Syntax highlighting for Java, JSP, C++, C, HTML, and other languages. Great searching features, and runs small in memory. Free trial that lasts forever with an annoying splash screen that goes away for about $25.
Search and Replace Search and replace from Funduc Software is indispensable for software development. This tool almost functions as a complete IDE all by itself, and still sells for around $25. I bought this back in the late 90s and have never updated it. I still use it on every single development project I work on. They have a bunch of other cool utilities as well.
Windows SysInternals When your (Windows) computer is out of warranty and all your geek friends have transfered to 4 year schools, this site has the answers. Download the Sysinternals Suite and run the "Autoruns" program. Find out what your computer is really doing when you're away from the keyboard.
Microsoft PowerToys - Open Command Window Here A DOS shell (actually a 32-bit Virtual Dos Machine since NT 4.0) is an extremely useful tool for developers. Problem is, getting one when you need to use it and navigating to where you need to use it is a major pain in the neck. To cut down on some of the overhead, this little feature (which is actually a simple registry hack) will put a right click option for a command prompt opened and physically located in the directory wherever you right clicked. It used to be included with the so-called Windows Power Toys, available for XP at this link.
If you have Vista or Windows 7, you already have it by simply holding the shift key and right clicking over the folder where you want a DOS shell. A command prompt option is on the right click context menu.
WinZip WinZip should not even be considered an option. If you use Windows, and you develop software, you should get this program.
Crypto-Gram Newsletter Crypto-Gram by Bruce Schneier is a free monthly e-mail newsletter from probably the foremost computer security expert in the world. Each issue is filled with interesting commentary, pointed critique, and serious debate about security.
Java dev using Command Prompt Quick tutorial on how to do Java development using a Command Prompt window. Includes section on how to set the path and some handy tips for quickly getting up to speed on the essential DOS commands that you will need.

Americans With Disabilities Act (ADA): Reasonable Accommodation
If you have a legally protected disability under the Americans with Disabilities Act (ADA) or California discrimination law, and you believe you need reasonable accommodation to participate fully in this class, please make an appointment to see me during my office hours to discuss your need.