Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CSIS 137 Syllabus - Summer 2023

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

CS/IS 137 – Advanced Programming in C/C++

Summer 2023
Ticket #1047
Online Class

Instructor: Kristina Shroyer kshroyer@glendale.edu

Office Hours: There are no office hours in Summer or Winter sessions. However we have Canvas messaging,
email, and the last 5 minutes of optional Zoom Conferences for questions.

Questions/OPTIONAL Zoom Conferences:

STUDENT QUESTION FORUM: I have created a student question forum for you in Canvas
(it’s in Module 1-c or you can find it under the discussions tab on the left side of Canvas). This
is an extra resource for class questions that aren’t personal in nature. You can ask questions here
(general class questions only though save any personal questions for email). Asking here is good
because then other students can answer and help other students or if no one knows the answer, I
can answer the question. This way everyone can see the answer at once. Using this is not required
some classes like it some do not. Many classes choose to create a Discord instead of using this
which is ok with me.

OPTIONAL ZOOM CONFERENCE(S): We will have AT LEAST ONE Optional Zoom


Conference. I like to have one the first week of the course just to make sure everyone is on track. I
will have that one optional Zoom conference Wednesday 06/21/23 at 11:45 am, it will be around
30-40 minutes. This does NOT MEAN you wait to start the class – start navigating Canvas as soon
as Canvas is posted on Tuesday 06/20/23. The 06/21/23 Zoom is just for questions and me making
sure you’re started in the right direction. We may have other optional Zoom conferences during the
session if needed - I will announce them if we have them but usually they will be in the evenings (the
first one had to be morning due to an appointment I have Thursday).

CANVAS DIRECT MESSAGING – BEST WAY TO CONTACT ME DIRECTLY: The best


way to contact me is using your Inbox in Canvas. The inbox in Canvas is at the left side of the screen
(in the red section on the far left). Using the Inbox is easy, simply click it and then click the compose
email icon at the top of the screen toward the right. The Compose message dialog will pop up. Then
select this course, once you do that you can select me from the choices of who to send the message to.
Note you can message your fellow students in the course this way as well. PLAN AHEAD: asking
for homework help the day it’s due or the night before is not a good strategy and it is NOT ok to
expect a response at the last minute. I can NOT guarantee messages sent at the last minute will
be returned in time.

IMPORTANT NOTE ON HOW TO MESSAGE/EMAIL CODE QUESTIONS: For this class


since we are doing complicated programs with MULTIPLE files I ask that you copy/paste the
SECTION of the code you believe you are having the problem with into your email. At this point in
your programming you should be able to compile your own programs (if not you may be in the wrong
course). That said if you think you have a DESIGN problem with say your data type then you should
attach (NO SCREENSHOTS) both data type files (the .h and the .cpp to your email). BUT NO
MATTER WHAT – SCREENSHOTS ARE NOT USEFUL SO PLEASE DO NOT SEND
THEM – they clog up my computer and I can’t work with the code on them so I can’t help when
those are sent.

1
EMAIL: Email is the second-best way to contact me directly (the best way is Canvas Messaging
– see above). I say second best because I see the Canvas messages must faster (see above)
because I almost always have Canvas open in the background. However, if you can’t get to
Canvas to message me there, please email. My email is: kshroyer@glendale.edu.

REPLYING TO CANVAS MESSAGES AND EMAILS: I will answer Canvas messages and
emails as soon as I possibly can. However, I unfortunately can’t be on the Canvas/email 24
hours per day, seven days a week. I do have a family (including a young daughter) and work
days at another job so emails sent during those times will likely be returned either that night or
the next morning. Emails/Canvas messages sent Monday – Friday (by 5pm) will be replied to in
24 hours (unless there is a special situation or emergency), emails/messages may be returned
faster than that but no guarantees. Emails/Canvas messages sent Friday (after 5pm), Saturday, or
Sunday will be replied to by Monday morning at the latest, possibly sooner but again no
guarantees. Plan ahead: asking for homework help the day it’s due or the night before is not
a good strategy and it is NOT ok to expect a response at the last minute. I can NOT
guarantee emails sent at the last minute will be returned in time.

I will make sure and check email and Canvas messages at least once a day Monday – Friday
(before 5pm). I cannot guarantee I will be able to check and respond to email/Canvas messages
on the weekends (meaning Friday after 5pm, Saturday and Sunday). That means you want to get
your questions in Monday – Friday (before 5pm) to get a faster response. Make sure and put
the course name in the subject line of the email/Message and the word “Question”
(Example: Question: CSIS 137 – Online Class). Do make sure and say which class you are
in I am teaching more than one course this summer.

I. Course Description:
Computer Science/Information Systems 137 prepares the student for C++ programming in the workplace and other real-
world environments. The course will focus on the intermediate and advanced object-oriented programming concepts
(including inheritance and polymorphism) as well as other advanced concepts including but not limited to: pointers,
templates, files and streams, exception handling, and operator overloading. We will focus on the details (and DESIGN so
we will not be just “coding”) needed to make your programs professional and robust. If there is extra time I can and will
add additional topics not on the list below. Also, you will have the opportunity to create a final project of your choice;
you can explore additional advanced topics from the book I may not get to when you do that project, so there is some
opportunity to learn more topics than I present if you are interested.

Prerequisites: CSIS 135 or equivalent C++ programming experience. This is NOT an entry level class and will
NOT start at the beginning (we won’t even review the basics or functions) – you should be able to COMPILE your
own code and you should be able to do a BASIC OBJECT ORIENTED PROGRAM with THREE FILES (two for
the data type a .h and a .cpp and one for main) You should have a good understanding of the following programming
concepts in order to take this class: C++ syntax, variables, data types, loops, selection statements, functions, arrays, the
C++ string class, and any other basic concepts. In addition, you should have an understanding of the basics of object
oriented programming (we will review this a bit but not in as much details as in a lower level class): what are objects,
how do they work, how to define and object (set functions, get functions etc.), and how to program a client class to create
instances of an object definition and use them. You should be able to create a calss data type using TWO FILES (a .h and
a .cpp) along with a THIRD file for main. We will start out with a review of objects but will quickly get to the
intermediate and advanced object-oriented programming concepts.

IMPORTANT: In this course you will learn problem solving, design, and GOOD PROGRAMMING TECHNIQUE
(not just “coding”): You are no longer in a beginning programming class – this is the real thing, and while it’s a bit
harder it also means you will learn to do more interesting things. In this class it is very important that you learn to solve
problems on your own and that you use good design techniques not just hack coding copied from the internet (you need to
understand what the code means and how to write it in a reusable, maintainable way). Software engineering is about
problem solving by designing algorithms and implementing code to make those algorithms become programs. In this
class you should try to work on WELL DESIGNED, REUSABLE code yourself and solve your own problems. While I
2
will help you with code when you are stuck, I can’t be receiving 30-40 emails per project from a student, you need to try
to figure out the problem yourself. I do allow groups for HW, and you are allowed to help each other on HW but
please don’t copy/paste projects or use Chat GPT because if you do that the class will be pointless and you won’t
learn anything and you really need to understand this material to move forward in Computer Science. If you don’t
learn to figure out the problems yourself now, you will have a hard time in a job environment. That means keep trying
and do as much as you can before asking questions, if you get stuck step away from it for a few hours and come back with
a fresh perspective (this has worked for me often). Just make sure you have really worked hard on trying it yourself to
try to force yourself to really start problem solving before asking – my goal is for you to be able to do this on your own
and get a good job!

My suggestion for solving problems on your own is to try a lot of solutions – the only way to figure it out is to try and
debug. When you are stuck you ARE allowed to talk with other students and get help and suggestions. If this still doesn’t
work, then ask me as a last resort. I’m not saying I won’t help (not at all!) but you need to learn to do this, the only reason
I mention this is in past courses I have had students send 40-50 emails per project without really trying to solve it
themselves first (I want to help you learn to solve as many problems as possible on your own before resorting to email).

NOTE THAT ALL WORK YOU HAND IN IN THIS CLASS MUST COMPILE. This is NOT an entry level class so
you should know how to comment out things that aren’t working in order to hand in work that compiles. Work that
doesn’t compile will NOT pass. If you are unable to compile programs, I recommend a different lower level class to
help with that before taking this one.

II. Online Course Requirements (Class Exercises AND Regular Discussion Boards):
This is an ONLINE course, which means the course is completely online. HOWEVER ONLINE DOES NOT MEAN YOU
LOG IN WHENEVER YOU WANT AND DO THE WORK AT YOUR OWN PACE – this is NOT a self-paced course. You
must PARTICIPATE REGULARALY and log in multiple times during the week. I am required by GCC policy to drop you
for non-attendance if you don’t do this. I will outline the participation requirements more clearly below. GCC has
stringent requirements on what we must do online, plus this class has a lot of material in it so it is important we do the
required learning and that you participate online. Our course will be held in Canvas, our online learning system and as I
already mentioned we will have a couple occasional optional Zoom conferences. However, we have to have some
required online participation points, for this we will have: Class Exercises and Weekly Discussion Boards.

• Class Exercises: You will have weekly class exercises required for the course that are part of your participation
grade. A class exercise is different from a homework because it is almost always something I do in a recording
that you replicate. So for example I may record an example of myself making a Rectangle data type that has
constructors and destructors in it – for your class exercise I would have you watch that recording and replicate my
Rectangle and turn it in. Class exercises for that reason are easier than homework since I’m giving the answer on
the recording, and you are just following along with the recording to make your own code that replicates the
example. There is only one class exercise that is more of an answer the questions about a recording (that’s the
one at the beginning of the class over the introductory material).

• Weekly Discussion Boards: In addition to Class Exercises there will be discussion boards each week which will
include problems and questions from book/lectures and other discussion activities. Once you submit your
assignment or your answer to the discussion forum question, you will be required to read other student’s
responses and provide feedback. NOTE: BLANK DISCUSSION BOARD POSTS ARE NOT ALLOWED –
you may NOT make a blank post in order to see other student’s posts before making yours to copy or
cheat. If you do this (make a blank post for ANY reason) you will be a ZERO on the discussion board.

o In addition, replies are required to be POLITE and CONSTRUCTIVE. Do not say “it is horrible code/a
horrible answer”, “I didn’t like it”, or “it’s unreadable” or “that is just wrong!”. Everyone’s code/answer
has SOMETHING good about it, first say what that is…then instead of saying “it’s horrible” or “it’s
unreadable” say something like: “I had trouble reading (specify which part of the code) because of (state
specific reason here – maybe extra variables, unlined curly braces etc.” or “I disagree with this part of
your answer because….”. No code/answer is perfect either, if you can’t find something to give a
suggestion on, maybe find something to make to make the code even better, for example: “I liked this
3
function in your code and it worked well but it might be even better if you added (say something specific
here)” or “Your answer was good but what about…”. Comment on someone else’s code/answer in the
same way you would like yours commented on.
o Nonproductive replies that don’t really say anything will not get full points. Examples: “I liked it”. “It
was clear” “ I learned a lot”, “It was detailed” etc.. This is a participation grade. The point is to give
useful constructive feedback to other students that helps them and/or enhances the discussion. Good
replies that get full points will: correct a post (and not just say it was wrong or that you disagree give the
correct answer), add a detail to a post or add an interesting supportive detail from the lecture slides or
about the topic.

I am NOT grading this on how good your code/answer is or how good of comments you get. I’m grading on how much
good, constructive feedback you give others along with a reasonable attempt at the original post. I will give you a
minimum number of comments to make each week but that will only get you the B, to get the A go above and beyond that
by a couple comments. Short irrelevant replies to discussion boards do not count and will not receive full points. So “I
liked it”, “thank you for your post”, “I learned a lot”, “It was clear” etc. will not get credit as replies.

III. Course Aims and Objectives:


Aims
At the completion of this course, you should have a solid understanding of intermediate/advanced object-oriented
programming. You should be able to code object-oriented programs involving multiple files and objects using advanced
techniques and concepts. In addition, you should have an understanding of some of the more advanced C++ programming
concepts such as operator overloading, files and templates.

Course Topics (General List – not all inclusive):


-Object Oriented Programming – A Deeper Look
-Review Object Oriented Programming
-Review pointers
-The this pointer
-Private Utility Functions in Classes
-Destructors
-Friend Functions and Friend Classes
-Review Pointers and new and delete
-static class members
-composition
-C-Strings
-Operator Overloading: String & Array Objects
-Object Oriented Programming - Inheritance
-Object Oriented Programming - Polymorphism
-Templates (new C++ standard array templates)
-Stream Input/Output
-Exception Handling
-File Processing
-Standard Template Library (vectors and linked lists – maybe more if time)
-Introduction to the C++11 (formerly C++ 0x) standard
-The 10th edition of the book I recommended for the class does have the new standard
incorporated into it – it always takes a while for the community to transition to the new standard.
What I will do is read it as the class is going and try to incorporate anything interesting I see that
pertains to our class. You are not required to get the 10th edition though!
-Introduction to the Boost Libraries (time permitting)
-Irrlicht Game Engine (time permitting)
-this we usually don’t get to but I have some introductory slides and resources you can use to get
information if you are interested.

4
IV. Required Textbook/Class Notes/Canvas/ConferZoom/Software and Supplies:

1. Text (RECOMMENDED):

• RECOMMENDED: You may use ANY C++ book for this class provided:
1. It’s object-oriented
2. It’s FAIRLY RECENT – published in 2017 or later
3. If you want the book the lecture slides are based on it is listed below, my only caution is
while the material in the book is good it can be a difficult read.

Text Lecture Slides are based on:


C++ How to Program 10th Edition, by Deitel & Deitel
Publisher: Pearson Education
ISBN: 978-0134448237

2. Class Notes/Recordings (REQUIRED – they are free): I will be providing a set of slides/notes/videos for
this class. Most weeks you will have a set of lecture slides and a corresponding video to watch – you should
have the slides open and follow along with the video as you watch it. Some weeks there may only be slides to
read but that will be less often. Some of the lecture slides are not as detailed as CSIS 112 and CSIS 135 so
it’s VERY IMPORTANT TO WATCH THE VIDEOS AS WELL. These lecture slides are my original work
based on the book material and are intended to assist students in learning as well as guide the lecture. You
should read these notes EVERY week in addition to watching the videos and either attending or listening to
recordings of any optional Zoom Conferences. The NOTES WILL HAVE TYPOS – THEY ARE FREE AND
I DO NOT HAVE TIME TO CORRECT TYPOS SO PLEASE DO NOT EMAIL ABOUT THEM.
• The link to the course recording page is on the FIRST PAGE of Canvas – bookmark it and use
it often it has all the important information needed to do well in this course

3. Canvas (REQUIRED – it is FREE): We will use Canvas (an online class system) for this course – ALL
COURSE INFORMATION: links to videos (all videos are on the same course recording page so the link is
the same for all of them), lecture slides, examples files, and programming assignments will be posted for you
on Canvas. Each week the material we cover will be in a Canvas Module (just think of a Module as a way of
organizing material in Canvas). Some modules we may spend one week on some we may spend two weeks
on. Since this is the first time this class is offered fully online, I do not yet have all the Modules created, I
will get new Modules for each week posted by the Sunday before that week. In addition, homework/projects
and participation exercises, other work, is REQUIRED to be submitted on Canvas – NO EMAILED
WORK of any kind WILL BE ACCEPTED – NO EXCEPTIONS. Do not email work I will ignore the
email and give zero credit.

• Canvas will have ALL the example programs (.cpp and .h files only, you’ll need to make them into
Visual Studio or XCode projects), lecture slides (in different formats), videos, and other class
information in it. Basically, everything from class is done in Canvas. It is REQUIRED that
everyone log in and participate on Canvas multiple times per week. I will post important
announcements and all course information there, it is your responsibility to regularly log in to
Canvas and have up to date information on the class including but not limited to test dates,
assignments, assignment due dates, announcements, and optional Zoom conferences. If you’re not
keeping up on Canvas that is NOT an excuse for missing an assignment or exam. You CAN NOT
PASS WITHOUT SIGNING INTO CANVAS REGULARLY MULTIPLE TIMES EACH WEEK.
In addition, grade information will be posted in Canvas, I will NOT (it is not allowed) give
grade information via email (it is against school policy).

4. Glendale Zoom (REQUIRED it’s free and part of Canvas): Glendale Zoom is a Zoom conferencing
program built into Canvas. Most weeks there will be optional Zoom Conferences. Glendale Zoom is web
based and easy to use. If you can’t attend a Zoom Conference, it will be recorded and you will need to listen
to the recording on the course recording page (link is on the Home Page of Canvas).
5
5. Software: You are required to have a C++ IDE at home in order to do labs and homework. Since this is
NOT an entry level C++ class you can have any C++ IDE you would like and it is assumed you already have
one. See the next section of the syllabus for details.

V. Software Needed for this Class:


This is an advanced level class so at this level I assume you are able to install software and get yourself set up at home.
Most of you probably already have C++ set up at home so I’m fine with you using whatever set up you have as long as it
supports object-oriented programming. I will recommend an IDE for both PC users and Mac users to use at home, but
you may use any IDE you want, just know if you use an IDE other than the ones I recommend it is your responsibility to
learn it and troubleshoot it. I will only support the ones I recommend.

• Recommended Software if you don’t already have a C++ IDE set up:
• For PC users:
§ I’m recommending Microsoft Visual Studio Community the latest edition. NOTE I’m
recommending Visual COMMUNITY NOT Visual CODE. If you use Visual Code that is ok
but I won’t be able to support it since I don’t use that one. This is an advanced class however
so you can use. any IDE this is just the one I can help with for PC users.
§ Link to download Microsoft Visual Community (latest edition):
https://visualstudio.microsoft.com/downloads/

• For Mac Users:


§ I’m recommending X-Code
§ This is easy to get, just go to the App Store. It’s free.

VI. Weekly Course Schedule/Procedure:


Every week of class will include the following:
1. Every week we will be working on a Module or Modules in Canvas. The first page in each Module will be an
overview of what you need do to complete that module. Modules include: lectures to read, videos to watch,
optional Zoom Conferences to attend or listen to recordings of, Class Exercises, discussion boards (these are in
addition to the Class exercises), and other activities including homework and projects. At the beginning of each
week, I will send out an announcement stating what Module you should be working that week. NOTE
YOU MUST DO THE MODULES IN ORDER, OFTEN YOU WON’T BE ABLE TO MOVE ON TO THE
NEXT MODULE UNTIL THE ONE BEFORE IT IS COMPLETED.
2. Some weeks you will be assigned a programming assignment. These homework assignments will be included in
the assigned Modules (see above). You will turn in your .cpp and .h files for the programming HW on Canvas ( I
do NOT want .zip files – you may submit a .zip file IN ADDITION TO your .h and .cpp files but I want .h and
.cpp files).
3. Almost every week will have a Class Exercise assigned. Remember these are shorter than HW and are
participation type exercises to help you understand and keep up with the material, so they are graded on
reasonable effort. Sometimes we might even start this together in our optional Zoom conferences.
4. There will be a midterm project and final project everyone is required to complete. Instructions will be on Canvas
when you are ready to start.
5. Most weeks you will also have a discussion board to complete on Canvas (this is in addition to the Class
Exercises). The discussion boards will vary each week but can include things like answering questions from the
book or submitting code. Replies are required for discussion boards (two). Details are found on the discussion
boards.

VII. Format and Procedures:


Each week at the beginning of class I will send out an announcement (it will go to your GCC email and be posted on
Canvas) that will tell you which Modules (a module is just a way an online class is divided into sections) is required for
6
the week. Within each module you will have reading material, videos to watch, class exercises, discussions to complete
(forums), and homework assigned (that you will submit on Canvas). There will also be a midterm and final project
assigned at the appropriate time as well as two exams (multiple choice, true/false and fill in the blank/very short answer).
It’s important to navigate the modules in order, the first page in each module will be an overview of what you need to do
in that module (what assignments, reading etc.) along with applicable due dates. Module 0-a through 0-c and Module 1
are organizational modules.

Once you finish the organizational modules you will get into modules containing the actual course material, Modules 2
onwards. Each of those modules will correspond to a set of lecture slides (remember the lecture slides correspond to the
book mentioned above but you don’t need that book any modern C++ book works). Within each module I will provide a
set of class notes (my own detailed summary of the Chapter the module is covering) in both PowerPoint and pdf format.
In addition to the notes there will be some supplemental videos. Each module will also have: discussion boards, class
exercises, assigned homework, assigned projects (midterm and final) and exams on exam weeks. Note each week the
module will not have ALL of these things – obviously we don’t have a project every week! The one thing that will be
fairly consistent is there will be lecture, video, and a Class Exercise each week. Most weeks will also have a discussion
board, and many will have homework (programming assignments).

A. Class Exercises – Participation Requirements and Late Policies

Participation is extremely important in online classes. Read this section of the syllabus carefully.

You are required to participate and attend online class just as you are required to participate and attend a
traditional class. This is not a self-paced correspondence class, there will be weekly requirements with
due dates. This section of the syllabus outlines some of the requirements unique to this online class. You
will have a syllabus quiz over all of this in Module 1.

• Class Exercises: These are short exercises (usually programming exercises) meant to help you learn the
class concepts through a simpler assignment (rather than a long homework). Most of the time these are
recorded exercises you watch and then do yourself based on the recording. These are graded on
reasonable effort and are therefore more of participation exercises. The point of these is to give you an
easier way to grasp the concepts before tackling the harder longer projects and homework. Once in a
while these may be discussion boards but most time they are short programming exercises.

• There will be NO MAKE UPS for the Class Exercises if you don’t complete them by the due date – NO
EXCEPTIONS. Emailing and asking will result in a loss of points. You can NOT make up
participation points.

B. Canvas Discussion Boards (Most weeks) – this is in ADDITION TO Class Exercises

Participation is extremely important in online classes. Read this section of the syllabus carefully.

You are required to participate and attend online class just as you are required to participate and attend a
traditional class. This is not a self-paced correspondence class, there will be weekly requirements with
due dates. This section of the syllabus outlines some of the requirements unique to this online class. You
will have a syllabus quiz over all of this in Module

• Discussion Boards: Most weeks there will be one or more discussion boards for you to complete on Canvas.
I will show you details the first day of class. These boards will involve answering questions on course
material, posting code and commenting on others code, or other activities. These are REQUIRED and part of
your grade.
o Discussion Boards can be UP TO (but no more than) a week late, HOWEVER there will be a
15% penalty for being late. In addition they can NOT be turned in after the class is over, so
the discussion boards near the end of the class may not be able to be turned in a whole week
late.
7
o The only exception is the first discussion board (the Mandatory Check in Activity) can NOT be late
on the initial post (GCC requirements say I must drop you if you don’t submit this by the due date), if
you miss the replies you won’t be dropped but will lose points. NO LATES ON THE MADATORY
CHECK IN ACTIVITY.

C. Homework/Programming Assignments
Some weeks (not all) you will have homework/programming assignments. Homework/Programming assignments
will be posted in Canvas in the corresponding Module along with due dates. Homework/Programming
assignments can be done in groups of UP TO 3 (so you can do the assignment individually in a group of 1
or you can do it in a group of 2 or 3). If you work in a group, EACH GROUP MEMBER MUST SUBMIT
A COPY OF THE ASSIGNMENT FOR GRADING REASONS. IN ADDITION, EACH GROUP
MEMBERS NAME MUST BE ON THE SUBMISSION (even though everyone submits it) SO I KNOW
WHO WORKED TOGETHER. Theses assignments are required to be done in C++ using the techniques
we learned in class. C++ techniques and concepts learned in class are part of your final project grading as well
as exams so homework helps you prepare.

o Submitting Homework/Programming Assignments: Homework/Programming assignments should


be submitted on Canvas in the appropriate Module.
§ Do NOT submit your entire project file (it’s too big for Canvas to handle).
§ DO NOT SUMBIT ONLY ZIP FILE – you can OPTIONALLY submit one IN
ADDITION TO WHAT’S REQUIRED (see below) but I do NOT want only a zip file.
§ Instead just submit the following for homework assignments:
1. All of your .h and .cpp files INDIVIDUALLY
§ NO EMAILED HOMEWORK WILL BE ACCEPTED NO EXCEPTIONS.

o Homework/Programming Assignment Late Policies: NO LATES WILL BE ACCEPTED MORE


THAN 1 WEEK LATE (NO EXCEPTIONS). Lates will receive a 10% penalty.

o Homework/Programming Assignment Grading: Lab/Programming assignments ARE


REQUIRED TO COMPILE to receive a grade. Do NOT hand in anything that doesn’t
compile. To get all the points the assignment must compile, run as expected and follow directions (so
use the structures and techniques asked for in the assignment).

D. Midterm and Final Projects and Submission Procedures for those Projects
In this class, rather than having programming exams you will do a midterm project and a final project. For the
midterm project I will assign you a project to do in a group. For the final project I will also assign the project
(this is NEW in the past I let people pick projects but people started having Chegg to their projects so we can’t do
this any more) but I will have some flexibility in it (example instead of saying put this exact exception handling
here I might say add three instances of exception handling – your choice on how to add it in). The final project
will be an INDIVIDUAL project.

Midterm projects are REQUIRED to be done in groups of 2-3. I will help you form groups.

Final projects are REQUIRED to be done individually.

Submission of Midterm and Final PROJECTS (no lates – this is DIFFERENT than homework): You will
submit ALL individual files (.h and .cpp and any supporting word documents) AND a .zip file in Canvas.
HOWEVER, for Midterm and Final PROJECTS NO LATE ASSIGNMENTS WILL BE ACCEPTED –
NO EXCEPTIONS do NOT ask. Hand in whatever you have finished on the due date.

8
E. Exams (THERE ARE TWO “Mini” EXAMS – you KEEP BOTH SCORES)
• Mini Exams: I call these Mini Exams because they are low stakes meaning they are worth a low percentage
of your overall grade (the grade emphasis is on programming). There will be TWO of these and you will take
BOTH EXAMS – they will be 5% each. NO MAKE UP EXAMS WILL BE GIVEN NO EXCEPTIONS.

I will go over the test rules in detail as the exams approach, but the general rules are:
o You get only ONE attempt.
o NO EXCUSES of “I accidentally clicked it” or “My computer broke” – everyone has been taking
classes online for a while so all issues should be ironed out. If you miss an exam that one will
automatically count as your lowest exam score. NO MAKE UPS DO NOT EMAIL AND ASK.
o The exams will be timed.
o Your exam must be turned in by the due date – NO EXCEPTIONS, NO LATES DO NOT
EMAIL AND ASK.

F. Mini Exam Results


Time permitting, we will use a Zoom conference to have a limited opening of the exam results. This is to avoid
stealing of exam questions and answers

G. Important Dates (DOUBLE CHECK ADMIN DATES ONLINE)


(NOTE: Test Dates and Project Dates are Tentative and could change based on the classes progress)

07/04/23 FOURTH OF JULY – No Class – I will make sure nothing is due this day
07/19/23 Mini Exam #1 – (The plan is to have the exam open on 07/19/23 and be due 07/23/23 –
NO MAKE UPS NO EXCEPTIONS)
07/30/23 Midterm Project Due (tentative date – you must submit on Canvas by 11:59 pm – NO
EXCEPTIONS AND NOT LATES – submit whatever you have done on the due date)
08/10/23 Mini Exam #2 (The plan is to have the exam open on 08/10/23 and be due on 08/14/23 –
NO LATES NO EXCEPTIONS)
08/26/23 Final Project Due (note this is due the LAST DAY of class – you MUST SUBMIT by
11:59 pm – NO LATES). You can of course turn it in early if you would like.

VIII. Grading:

(a) Programming Assignments/Homework 7%


(b) Class Exercises 7%
(c) Discussion Boards 7%
(d) Mini Exam 1 5%
(e) Mini Exam 2 5%
(f) Midterm Project 34%
(g) Final Project 35%

It is very important to complete the programming assignments. To get a thorough understanding of


the concepts it’s very important to PROGRAM the concepts not just read about them. The best way to
becoming a better programmer is to write as many programs as possible.

It is also very important to either email the lecture slides to yourself or save them on your flash drive.
You will need to study the slides and example programs to do well on the objective exams.

Grading Scale
90% and above A
80%-89% B
9
70%-79% C
60%-69% D

Class Exercises: There will be NO MAKE UPS OR LATES on these – NO EXCEPTIONS. So you
must complete the activity by the due date. These are participation grades based on effort so there is no
point in turning them in late.

Programming/Homework Assignments (grading and late policy): will be graded ON REASONABLE


EFFORT ONLY BUT THEY MUST COMPILE (so did you complete it at least REASONABLELY –
I’m looking for an attempt at all portions of the assignment and that you at least get it to compile and
work CLOSELY to what the requirements are). I will accept late homework assignments for ONLY
ONE WEEK – so a homework assignment can be UP TO a week late – there will be a 10% penalty
for submitting late. Once the week passes you may NOT submit a late homework assignment – NO
EXCEPTIONS. The reason is these are graded on effort and you may have to post your
assignment for feedback a week after the due date. TURN IN WHATEVER YOU HAVE DONE
when the week late deadline passes on homework.

**NOTE: Sometimes you will be required to post your programming assignment on Canvas for
discussion (online portion of the class). If you are not done, you should post what you have for
discussion – remember discussion points are about feedback not how good your code is – if you aren’t
done you can post what you are struggling with and people can help/give feedback.

Programming Assignment Grading/Feedback: I will grade programming assignments by simply


running them and seeing if they meet requirements (so looking for reasonable effort – I never grade these
until the END of the semester since we are only looking at reasonable effort). Unfortunately, I do not
have time to give detailed comments and debug programming assignments (I wish I did – what’s nice is
you will get other student’s help and feedback on Canvas). This type of grading takes hours and hours.
Grading of these assignments is fairly lenient, the purpose of these assignments is to give you
programming experience and prepare you for exams. In addition, since these are homework assignments,
I cannot be assured of whose work I am really grading and if four or five people did the “exact same
code”; it is very time consuming for me to grade one student’s work over and over. If you want more
feedback ask during Zoom conferences or via email.

Discussion Boards on Canvas: Remember these are IN ADDITION TO Class Exercises. Lates will be
accepted up to one week late but lates will get a 15% deduction. NO MAKE UPS, no exceptions.
Replies cannot be “I liked it”, “It was clear”, “Thank you”, “good job” or something equally
irrelevant – these types of replies will not get points.

Mini Exams: may or may not be curved depending upon how the class performs. REMEMBER NO
MAKE UPS – NO EXCEPTIONS AND NO LATES.

Programming Projects: THERE ARE NO LATES ON MIDTERM OR FINAL PROJECTS – NO


EXCEPTIONS DO NOT EMAIL AND ASK. Turn in what you have done on the due date and
make sure it COMPILES. Comment out code that isn’t working to make it compile.

Mini Exam Make Up Policy: There are NO MAKE UP EXAMS given in this class – NO
EXCEPTIONS. The exams are only 5% each and you are given a WINDOW of time to take them so
there is no reason to be late. If you can’t take the exams during the exam window you should drop the
class and take it when you have more time.

THE GENERAL RULE IS NO SPECIAL EXCEPTIONS – everyone has things going on in their
life – if you have too much going on it might be a good idea to take the class in a semester when you
have less commitments. MATH CLASS, PHYSICS CLASS OR ENGLISH CLASS ARE NEVER
EVER A REASON TO MISS ASSIGNMENTS IN THIS CLASS – they are NOT more important.
10
Improvement: If you show significant improvement from the midterm project to the final project, this
MIGHT influence your final grade (especially if you are on the edge of a grade). This means if you have
a percentage high in the range for a grade you will be bumped up to the next grade. If you are someone
who I know gives their homework assignments to students in CSIS 112 and CSIS 135 (it’s so easy to tell
whose they are using) you will not get a grade bump up.

XI. First Day Drop Policy


The only time I drop people from the class is if they don’t do the mandatory check in activity. This is GCC policy not
mine. GCC requires that I drop you if you don’t do the mandatory first week assignment in Canvas by the Thursday after
the course starts (06/23/22) since this is an online class.

X. IMPORTANT DROP POLICY (Other than the first day drop policy - ultimately you are responsible to drop
yourself do NOT EXPECT THE INSTRUCTOR TO DO IT FOR YOU – however the instructor can drop you for
non-attendance). If you decide to drop the class, you need to go into MyGCC and drop, this is a class full of adults and
you need to be responsible for yourself – dropping is easy via MyGCC!! That means it’s your responsibility to
withdrawal if you need to – make sure and do it, you don’t want to hurt your GPA by getting a failing grade when you
could have dropped or gotten a W or an EW.

**THAT SAID: An instructor can drop a student from a class for non-attendance. Non-attendance in this class occurs
when you miss TWO WEEKS IN A ROW OF Class Exercises and Regular Discussion Boards. This means do your
discussion boards and do the Class Exercises. If you are in danger of being dropped, I will email you first…if you don’t
reply I will drop you.

VII. IMPORTANT DROP POLICY (after the first week of class you MUST drop yourself – know the drop
deadline)
If you decide to drop the class, you can’t simply stop attending or just not go to exams and expect me to drop for you. I’m
not supposed to do that. That means it’s your responsibility to withdrawal if you need to – make sure and do it, you don’t
want to hurt your GPA by getting a failing grade when you could have dropped or gotten a W or an EW.

XII. Recording and Photographing policy: I do NOT allow pictures of me to be taken in class for ANY reason. There
are NO exceptions to this rule, and I am very serious about it. That doesn’t apply as much in this class. HOWEVER,
THIS CLASS HAS RECORDINGS AND MY ORIGINAL NOTES. I do NOT give anyone permission to post any
material from this class ONLINE including on social media. Doing so will result in me following GCC policy to the
strictest letter of the law. I do not like my copyrighted material being shared or my voice being shared online. YOU
ARE ALSO NOT ALLOWED TO RECORD ME OR POST AN IMAGE OF ME OR POST MY NAME
ANYWHERE.

XIII. Class Rules


-NO TALKING WHILE I AM LECTURING (this really doesn’t apply online but could apply in a Web
Conference)– talking distracts and disturbs the other students and is rude/not cool. This includes loud
whispering. First violation will be a warning. If you have continued violations it could result in a loss of your
attendance points for the day. This is a common violation in this class, please respect the class and the other
students by not talking or whispering during the class, whispering may seem quiet but in a small room like this
ends up being louder than you think. When it comes to the end of the class and you have an 88% I will
remember who continually talked during class and who did not when I decide whether or not to bump that
grade up to an ‘A’.

-Put your Cell Phones on Vibrate – If you have an emergency call you should as quietly as possible leave the
room and take the call. You should not take calls during class unless they are emergencies as this distracts the
class.

11
-My thoughts on cheating – If you are cheating in class you are wasting my time, your time, and money (both
your own money and that of the taxpayers). I also strongly believe that someone who would cheat in class
(regardless of whether they are the helper or helpee) would cheat in life and at work and is not someone I would
recommend for a scholarship, job or for anything really. If you cheat on homework I WILL know even though I
may not say so – what will happen is if you ask me for a recommendation or referral I will say no (just don’t
bother asking me for recommendations if you cheat on homework). Sometimes I suspect cheating on the exams
and can’t prove it, if that happens I will also say no to any recommendation or referral requests. I will do my best
to prevent cheating at the front end by giving multiple versions of tests and locking computers and/or the internet
and requiring phones are off - however as well all know a determined cheater will do anything they can to ruin it
for everyone, in the end it’s a waste for them and I feel sorry for their future employers.

IXV. Academic Honesty Policy


This instructor follows the Glendale Community College Honesty Policy as listed in the Glendale Community College
Catalog and the Student Handbook (free at Information Desk near Admissions). Students are, at all times, required to do
their own work. No copying of other students’ work, whether on a test or on routine class work, is allowed at any time.
Activities that are considered to be CHEATING include, but are not limited to, the following: communication with
another person during an exam, accessing materials electronic or otherwise without the instructors express permission.
Violation of any of these rules (i.e. cheating) could result in a lowering of the exam grade or the course grade (e.g. a
“Fail”), and the violator’s name and student I.D. number will be sent, with a description of the violation, to the Division
Chair and to the Vice President of Instruction to be kept on record for future reference. The Dean of Student Activities
may also be contacted for disciplinary action, if necessary.

Specific Activities that constitute cheating in this class


In this class I encourage you to discuss programming assignments and help each other during labs. HOWEVER, the
following is not helping but cheating (note some of these apply only to on campus exams some apply to online and on
campus):
*USING CHEGG or similar websites!!! This is the WORST WEBSITE ON THE PLANET WITH THE
WORST PROGRAMMERS AND VERY UNKNOWLEDGABLE PEOPLE. I will know if you used their
site because your test will be that bad! And they have HORRIBLE PROJECTS. IF you use them you will
get a bad grade and will never get a recommendation from me for anything. And it’s not just Chegg it’s all
those other similar websites as well. If you’re here to cheat you’re wasting my time which is valuable and
your own time…it’s pointless to be here for a “letter” by your name.
*TAKING PHOTOS OF EXAMS (posting them on the internet)
*For online classes: POSTING THE EXAM ANYWHERE ONLINE FOR ANY REASON – I take this
VERY SERIOUSLY and will report it to GCC for disciplinary action as well as pursue legal action
through the website were the exam is posted.
*USING A PHONE TO ACCESS CANVAS DURING THE EXAM.
*Trying to “break” the network to cheat by stealing someone else’s exam (it doesn’t work and I can see you doing
it, I will take a screen shot and send it to the Dean – she may suspend you from the college)
*Not sitting in your assigned seat during an exam.
*Copying directly off the person’s computer/test next to you during an exam even though they have a different
version of the exam and then telling me it is “coincidence” that your exam looks like the other version!!!! (there
is no such thing as that type of coincidence)
*Having a phone or electronic device visible on your desk during an exam – if it’s there I assume you’re using it
and cheating – NO EXCEPTIONS.
*Copying someone’s program exactly or almost exactly (including homework – copy/paste is cheating not
helping). The only exception would be a group project/lab.
*Copying someone’s program with only the variable names changed
*Using an assignment you got from a student that took this class in a previous semester as a guide for your own
assignment or during a programming exam (even though this semester’s assignments/exams are different this
gives you an unfair advantage)
*Using a test from a prior year that another student stole.
12
*ANY TALKING OR COMMUNICATING DURING AN EXAM FOR ANY REASON – Doing this
degrades the entire computer science profession and makes an ‘A’ mean Average (if “everyone” has an ‘A’ it
really isn’t that special any more). The ‘A’ student giving away the answers is the biggest problem in this regard.
If you are warned to stop talking during exams do not contact me for references or recommendations after the
class ends because I will NOT conscionably be able to give you one. In addition, if you cheat on all your
homework or give your homework away to other students, I WILL KNOW, and if you ask me for a letter of
recommendation or reference will not be able to conscionably give you one. In addition I will remember who
talked/got warnings during exams when it comes to the end of the class and someone has an 89% I’m trying to
decide to bump up to an ‘A’ or not.

NOTE: No two programs should ever look so much the same that as I’m grading I recognize pieces of code. The
first time you will get a warning your assignment looks too similar to someone else’s. The second time you will
both get a zero on the assignment be reported to the business division chair and further action will be taken as she
sees fit.

I am flexible with programming assignments. If you can at least get them to compile and follow the
instructions even if they aren’t perfect you will get a decent score. In addition if a lot of students are
having trouble and ask I may extend due dates. In other words, you shouldn’t have any reason to cheat.

I will be passing out a list of rules for the exams by the third week or so of class just to make sure everyone is
clear on the rules.

****IMPORTANT TEST POLICY: Seating will be assigned for the exams (this ONLY applies to classes that aren’t
fully online). During the class before the exam I will tell you which computer you will be required to sit at – the test will
not start until everyone is sitting at their assigned computer (seat). If you fail to sit at your assigned seat or refuse you will
not be allowed to take the exam.

XV. Academic Integrity


In this class I encourage you to discuss programming assignments in order to better understand the general concepts.
Explicit copying of programs or assignments is not allowed but you may explain to someone and help them fix code
(there is a difference between copy/paste and help on homework). NO HELPING WHATSOEVER IS ALLOWED ON
TESTS – THIS SHOULD BE OBVIOUS. Make sure and include comments in your programs and show your work on
your assignments so I know that you understood the work and that the work is your own.

XVI. Students with Disabilities


All students with disabilities requiring accommodations are responsible for making arrangements in a timely manner
through the Center for Students with Disabilities. If you have any questions feel free to email me and I will help you
make the proper arrangements.

XVII. Issues or Concerns


Please address any issues you may have that are relative to this course with me, your instructor, either in person during my
office hours (see above) or by email as early in the semester as possible (kshroyer@glendale.edu). I will do my best to
resolve your concern. If you and I cannot resolve the issue, I will refer you to the division chair, Mike Scott,
mscott@glendale.edu , or see Seda Melikyan in the Division Office, SR 311, 818-240-1000, Ext. 5484, for an
appointment.

XVIII. Student Email Accounts


Please activate your GCC student email account; you can do this by going to MyGCC. This is one way the school
communicates important information and if you don’t activate your account you won’t receive the information. This is
also the primary way I will communicate with you via email. You can set up the account to forward to a different email
you use for school to make it more convenient. In addition, Canvas sends all messages from me to your student email –
you could miss important announcements (sometimes I give hints on what to study for exams) if you don’t activate
your account.
13
XIX. SLOs (Student Learning Outcomes)
This is just something administration requires we put on the syllabus in this specific format (much more complicated than
the way it’s already been explained above) – all of it is explained already in the earlier sections so this is just a repeat for
you to meet requirements.
• Create computer programs using more complex OOP problems.
• Explain basic abstract data types such as arrays, linked lists, stacks, and queues.
• Explain more complex abstract data types such as trees and graphs.

14

You might also like