What else do you need to know about this class? CIS22B / Joe Bentley / Fall 2020
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
online Zoom lectures per week, an hour and 50 minutes. Each lecture
will contain new material. The lectures will contain concepts and
examples, some as web page examples, some developed "live". There
is a lab exercise assigned with each Tuesday lecture. Assignments
will sometimes be discussed in class and sometimes discussed during an optional online session. There is an online midterm
and 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. It is good if you try
out the examples presented in class. Compiler suggestions:
Code::Blocks, NetBeans, MS Visual C++ (2015 or later), the gnu
compiler, Eclipse. Compiling on a Mac is sometimes a
problem. If you use a Mac, learn early the issues and do not
repeat the errors. Recommended compiler: Code::Blocks on a
PC. It is easy to use and does a good job of enforcing the
"standard".
Online Time
Optional
online sessions will be offered during the class. These sessions
will be scheduled to optimized student needs and available times.
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 Zoom. 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.
TA
There
will be a class TA, Sharon Yang. She will be available to answer
questions by Canvas email. She will also conduct a TA session to
answer questions on Friday at 3 pm.
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. Use ass#.cpp (where # is the assignment number) as a source file name.
- Add comments to the top of your source code including your name, the assignment #, the compiler used, and operating system.
- 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 a gnu
compiler 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 or
sharing 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 Ex# the email subject (where # is the exercise number).
- Add the source code as an attachment. Use ex#.cpp (where # is the exercise number) as a source file name.
- 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://www.turingscraft.com/tcgo
- Use access code: DEAN-28362-YAAX-46
- The first 7 chapters of CodeLab exercises, through Structures, are due 10/27 (1:30 pm), the rest are due before the final.
- 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.
- 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 8th 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 and assignments may be updated at times
The Midterm and Final
These are timed and online.