What else do you need to know about this class?            CIS22B / Joe Bentley / Fall 2017

What is the goal of this course?

This is an intermediate programming course.  You are here because you have made a commitment to learning C++ beyond an introductory level.  Upon “successful” completion you will have attained marketable programming skills.  You will be of value as a programmer.  Since this course is an intermediate level class, you will get less “hand holding” than you did in the introductory course (CIS22A).  You will be expected to solve more problems on your own, you will be expected to debug your own code, and you will be expected to research functions and techniques on your own.

What happens in the class?

Two lectures per week, an hour and 50 minutes, with a 10-minute break.  Each lecture will contain new material.  The lectures will contain concepts and examples, on the board, on web page examples, developed “live”.  There is a lab exercise assigned with each lecture.  Assignments will often be discussed in class.  There is one midterm and one final.  And there is time to ask questions.  If you ask questions, then, most likely, you are involved and you have some basic understanding of what is going on

Your “compiler”

In this course you will be writing a lot of code.  You will be compiling all the code you write.  It is essential that you acquire a compiler immediately.  The instructor can assist with installation.  You can use any standard, not-too-old C++ compiler.  You can work on any computer type, PC, Mac, Linux, Unix, Chrome Book, desktop, laptop, Windows (7/8/10).  The ATC computer lab works great and there are different compiler options available.  A laptop is good. If you bring it to class, you can try out the examples presented in class.  Compiler suggestions:  Code::Blocks, NetBeans, MS Visual C++ (2010 or later), the gnu compiler, Eclipse.  Compiling on a Mac is not recommended.  Recommended compiler:  Code::Blocks on a PC.  It is easy to use and does a good job of enforcing the "standard".

Online Time

Online time will be held on Tuesdays, 7:00-8:15 pm.  This time will be used to review topics covered in class, to answer questions, to discuss assignments, to work exercises and practice problems, and to explore related topics in more detail.  The online time will be held online using the web-based, interactive software, CCC Confer.  The instructor will be logged on, speaking through a webcam and sharing his desktop to answer questions and provide demonstrations. You may ask questions using your microphone or a chat box.  Login instructions for CCC Confer:
Go to www.cccconfer.org
Select Join a Class or Meeting
Locate your meeting and select Connect
Passcode: 799989

Programming Assignments

•    Email source code.  Check your code before sending it.  Once received, it will be graded.
•    In the email, use CIS22B / Ass# as the email subject (where # is the assignment number.
•    Add the source code as an attachment.  Name it ass#.cpp (where # is the assignment number).
•    Add comments to the top of your source code including your name, the assignment #, and the compiler used.
•    If you want to ask a question about the assignment, make sure it is clear that you are asking a question, otherwise, it will be graded.  Do not ask to have your assignment checked before you submit it.
•    The code will be compiled and tested using either Code::Blocks or NetBeans on Windows or Linux.  If your code does not compile and run with the instructor’s compiler, it will not be accepted.
•     Assignments are due at the beginning of the class lecture on the due date specified. Assignments will be accepted late with a 5 point penalty if they are received within 24 hours of the due date.  After that time, they will not be accepted.
•    You are encouraged to work on assignments by yourself.  Copying of assignments will result in a zero grade for both students.  The instructor is available to answer questions and provide assistance.
•    You may get help with assignments using email, office hours, or online time.  There is a maximum limit of 6 email questions per assignment.  If you have more questions than that, you need a different approach.

Lab Exercises

•    Start a new email for each lab exercise.
•    In the email, use CIS22B / Ex# the email subject (where # is the exercise number).
•    Add the source code as an attachment.  Name it ex#.cpp (where # is the exercise number).
•    Check your code before sending it.  Once received, it will be graded.
•    If you are asking a question about the exercise, make sure it is clear that you are asking a question.  Otherwise, it is assumed that you are submitting it for grading.  Do not ask to have your exercise checked before you submit it.
•    Add comments to your source code including your name, the assignment #, and the compiler used.
•    The code will be compiled and tested on either Code::Blocks or NetBeans running on Windows or Linux.
•    Lab exercises are due at the beginning of the next lecture.  Lab exercises are not accepted late.
•    The code will be compiled and tested using either Code::Blocks or NetBeans on Windows or Linux.  If your code does not compile and run with the instructor’s compiler, it will not be accepted.
•    You are encouraged to work on exercises by yourself.  Copying of exercises will result in a zero grade for both students.  The instructor is available to answer questions and provide assistance.

CodeLab

•    The CodeLab exercises are not required.  You will be given extra credit points for the exercises that you complete.
•    These are web page exercises.  They are free if you are enrolled in the class.
•    You must set up your account
•    The web page address for CodeLab is https://codelab3.turingscraft.com/codelab/jsp/login1.jsp
•    Use access code:  DEAN-25700-HKFE-34
•    You may ask for help on any CodeLab exercise.  You can use on-line time, office hours, or email to ask for help
•    Your CodeLab extra credit points (10 maximum) will be determined by the percent of exercises completed.

If you want an A, learn to  …

•    work independently, but write code for everyone.
•    debug your code
•    write test cases
•    test your code as you proceed
•    ask yourself, "what if ..."
•    write functions to solve a specific task
•    write reusable code
•    reuse code
•    write tight code
•    write efficient code
•    write self-documenting code
•    write neat code
•    read code
•    use a second, or third compiler

TextBook

The textbook is a good one.  The 7th edition of the textbook is acceptable for this class.  You are advised to read the chapters following the schedule listed in the syllabus.  Some class examples may be taken from the textbook.  

The class web pages

•    There will be updates to the class web pages.  Refresh your browser if you are viewing a web page a second time.
•    Lecture notes web pages will be updated on the weekend before the lectures.

The Midterm and Final

These are timed.  You will be permitted one page notes (both sides of the paper).  Preparing this page of notes is a good way to study for the test.