To view or print the syllabus using your web browser, click http://program-info.net/C++/54grnS17.htm
C / C++ PROGRAMMING - Syllabus
CIS054-101 (87508) Online - San José City College
Spring 2017- January 30, 2017 to May 26, 2017
INSTRUCTOR: Dan McElroy Dan.McElroy@sjcc.edu
OFFICE HOURS: I will be on campus one or two days at the beginning and
end of the semester. E-mail me to arrange a meeting time during the middle of
the semester.
HELP DESK: helpdesk@sjeccd.edu
1-408-270-6411 (Mon-Fri 7:00am to 5:30pm)
http://www.sjeccd.edu/district-services/ITSS/help-desk
TEXTBOOK (Required) - Choose either: Problem Solving with C++ 9th Edition, by Walter Savitch - PrenticeHall, ISBN-13: 978-0-13-359174-3 --- or --- Problem Solving with C++ 8th Edition, by Walter Savitch - PrenticeHall, ISBN-13: 978-0-13-216273-9 NOTE: Be cautious about purchasing 'International' versions from some vendors on the Internet. These versions contain most of the material in the US version but may be missing some text and some of the problems assigned as lab exercises. |
|
|
or |
|
COURSE OVERVIEW AND OBJECTIVES: Students will study C, a general-purpose programming language, which features brevity of expression, modern control flow and data structures, and a rich set of operators. Students will also study C++, an object oriented programming language that is built using the C language as a base. Students will learn the importance of portability and efficiency through a variety of programming assignments. This course includes application programs and/or systems software.
TIME COMMITMENT: CIS054 C/C++ Programming is a 3-unit college class. Students are expected to spend about three hours per week for each unit for a regular semester course. This computes to 9 hours per week for a regular semester 3-unit course which includes lecture, lab and homework. A full-time student taking 12 units should plan to spend 36 hours per week during a regular semester. The time commitment should be the same for an on-campus course and an online course.
The class begins on January 30, 2017 and ends on May 26, 2017. There are usually
several assignments given each week. You can complete the class assignments
on your own schedule as long as you submit them by their due dates. No work
will be accepted after the end of the class. Lab assignments receive a penalty
if submitted late. Quizzes close on their due data and cannot be submitted late.
Missing or not completing assignments may prevent you from passing the class.
If you have vacation plans, or your schedule is full with other important obligations,
you may want to consider enrolling in the course at another time.
STUDENT LEARNING OUTCOMES:
1. Analyze simple and complex programming problems and develop software
solutions.
2. Create console-based programs using structured programming techniques including
sequence, selection, and repetition.
3. Organize a solution to a large program by breaking the program into smaller
parts.
4. Manipulate data using strings and single or multidimensional arrays.
5. Construct programs using object oriented programming (OOP) techniques.
6. Create programs that use sequential and random access files.
------------------------- LECTURE CONTENT -----------------------------
1. Algorithmic Design and Testing 2. Structure of C and C++ programs 3. C / C++ Data Types a. Naming conventions b. Constants c. Variables 4. Input and Output a. The C-language printf() and scanf() functions b. The C++ language cout and cin objects 5. Operators b. Relational and logical operators c. Increment and decrement operators d. Type conversions 6. Expressions and Statements a. Assignment operators and expressions b. Precedence and order of evaluation 7. Selection a. if(...) / else b. else if(...) c. switch / case 8. Repetition a. while and for b. do / while 9. Functions and Subroutines a. Functions returning values, and functions not returning values b. External Variables c. Scope and visibility rules d. Static variables |
10. Arrays and Pointers a. One-dimensional arrays b. Array initialization c. Two-dimensional and larger arrays d. Pointers to arrays and pointers to pointers e. Pointers to functions 11. Character and String Processing a. Definition of C strings b. String manipulation using the C string library c. The C++ String class d. String manipulation using C++ strings 12. Structured Data a. Data structures using the struct statement b. Arrays of structures c. Pointers to data structures and functions d. Unions and typedefs 13. Introduction to C++ Objects a. Class construction and instantiation of objects b. Constructors and destructors c. Arrays of Objects d. Assignment operators and copy constructors e. The "this" pointer and friend functions 14. C++ Class Member Methods a. Overloaded operators b. Built-in conversions c. Class to class conversions d. Class inheritance e. Polymorphism 15. File Access a. Sequential Files b. Random Access Files c. File access using stream operators |
----------------------------- LAB CONTENT
----------------------------------
1. Using arithmetic and arithmetic-assignment operators
2.
Utilizing relational and logical operators
3. Counting loops and
sentinel value loops to terminate data input
4. Using functions
and sub procedures
5. Processing data using arrays and pointers
6. Manipulating character strings
7. Constructing Object
Oriented Programs (OOP)
8. Reading and writing sequential and
random access files
9. Utilizing debugging techniques
LAB ASSIGNMENTS:Some of the lab assignments will take longer than other labs. It is expected that each student will make use of the Open-Lab time to complete assignments as needed. Open-Lab hours are made available to students registered in CIS courses. Instructions will be given after the first week on how to use the open lab.
LAB REPORTS: Programs turned in must include screenshots of both the program and the results of testing the program. Programs will be graded on whether they work, quality of output, program readability and appearance, program construction and completeness of testing, and very importantly - documentation.
Unless otherwise indicated, each lab report must include:
1. Your name, class, platform (PC or Mac), date and an assignment ID # if provided
2. A written description of the lab project in English
3. A list of inputs, processing and outputs for each program
4. Test data values, expected results and actual results when the program runs
5. A discussion of what you did to make the program run and any problems you
encountered
6. Screenshot(s) of the program execution
7. The listing of the program (code for the program)
EXTRA CREDIT is occasionally available for work above and beyond the
minimum requirements for a lab assignment.
An extra credit lab assignment is like a regular assignment, and all
of the points earned are counted as extra credit. The extra points are added
into the total points received for the class but Canvas shows the assignment
is worth 0 points of regular credit. For example if there were two regular assignments
at 10 points each and one extra credit assignment and the student received 7
points each, the total percentage would be computed as follows: (7+7+7)/(10+10+0)
= 21/20 = 105%
Sometimes a regular assignment may have extra credit for doing more than
the minimum required to complete the assignment. For example a 10 point assignment
may have the opportunity to earn an extra 3 points for a total of 13 points
out of 10. The extra credit part of the assignment MUST be turned in when the
assignment is submitted. The extra credit points will not be awarded at a later
date even if the assignment is resubmitted. If an assignment is worth 10 points
with 3 points extra credit, Canvas initially shows the assignment as 10 points.
Extra credit points are added to the total score.
SOFTWARE REQUIREMENTS AND ACCESS TO SJCC COMPUTER LABS: The C and C++ programming languages are used to develop programs on a variety of operating systems, such as Microsoft Windows, Apple Macintosh, Linux and others. Students need access to a computer that has a C/C++ compiler and an editor or software development system such as Microsoft Visual Studio, Apple Macintosh Xcode, Code::Blocks, NetBeans, DevCpp, Eclipse, etc. If you are using Microsoft Windows, I recommend that you get a free copy of Visual Studio for students from the Microsoft Imagine (formerly Dreamspark) website using your StudentID@stu.sjcc.edu e-mail address. Your studentID will be added for access after you are registered for the class. More information will be available on the Canvas class webpage.
San Jose City College has many computer labs on campus. Many of the labs used by the CIS and CA departments have the software that you will need to complete the class assignments. Most of the other labs on campus will have Microsoft Office installed, but may not have a software programming development system installed. You need to be an SJCC registered student to use the computers in the Library. You may need to be registered for tutoring to use the LRC labs. Other labs serve different departments on campus. You may need to be registered in one of their classes to use their labs.
CANVAS: San Jose City College is changing from Moodle to Canvas as the new Learning Management System (LMS). Canvas is being adopted by many of the California community colleges and universities such as San Jose State University. The class webpage on the online Canvas contains class notes, links to videos, PowerPoint slides, class announcements, the course syllabus, test dates, and other information for the course. All assignments must be submitted using Canvas. The assignments must have your name, student ID, and exercise name at the top of the document. Late assignments will be accepted with a penalty. Make sure you can login to your Canvas account the first day of class. If you are adding the class, your MyWeb enrollment will be reflected at the next Canvas update. Student course enrollment is updated to Canvas three times a day - 6-7AM, 12Noon-1PM and 5-6PM.
Your eight-character Canvas login ID is the same as for MyWeb and is built from the first two letters of your first name, the first two letters of your last name, and the last four digits of your SJCC student ID number. For example, if my name is Dan McElroy and my student ID is 1234567, my Canvas login would be damc4567. When you first get access to Canvas, click the 'Activate/Reset Password' link to set your password for access to all of your classes that are on Canvas.
Additional information can be viewed at http://www.sjeccd.edu/district-services/ITSS/help-desk
E-MAIL: All communication concerning the class and any assignment submissions occur through Canvas. All students are required to obtain an e-mail account in addition to their Canvas account. All correspondence through Canvas uses the e-mail address that you have listed with the Admissions and Records office. This includes any messages I send to the class as well as scores for each assignment. It is important that you update your e-mail address if it changes. If you have any questions about the course or need assistance, please contact me by e-mail at any time. You can update your e-mail address by clicking the "CLICK HERE" message on the purple rectangle when you go to the MyWeb page at http://myweb.sjeccd.edu (NOTE the 'E' in sjeccd). If you have an e-mail filter for spam, etc., it is your responsibility to make sure that you are receiving the e-mails that I send you, either from my college address Dan.McElroy@sjcc.edu, or e-mails sent through Canvas.
Students at San Jose City College are also
given a free .edu e-mail address @stu.sjcc.edu
For example, if my student ID was 1234567 and my MyWeb ID was damc4567,
my e-mail address would be damc4567@stu.sjcc.edu
The initial password starts with Password (with a capital-P) followed by six digits for the month, day and year of your birth. Example: Password061475
You are not required to used this e-mail address, but you will need it if you want to download a free version of the Microsoft Visual Studio. You do NOT need to use this e-mail address to download Code::Blocks, DevCpp or software from Apple Corp.
Additional information can be viewed at http://www.sjeccd.edu/district-services/ITSS/help-desk
ATTENDANCE AND DROPS: You are expected to participate in the class using Canvas each week. Once you have shown some commitment to the class by attending, participating in quizzes, labs, or homework, I assume that you wish to be in the class. It is your responsibility to drop the class if you do not wish to continue. However, you may be dropped by the instructor if it appears that you are not participating in the class by submitting regular course work. If you do not complete the course, and do not officially drop through the Admissions office and are not dropped by the instructor, you will receive a grade based on your completed work. If for any reason you are unable to complete the requirements for the course, you must officially withdraw by the deadline date at Admissions and Records, either in person or using https://myweb.sjeccd.edu.
Sunday, February 12, 2017 is the last day to withdraw from a spring semester course WITHOUT receiving a "W" on your record. Any classes that you withdraw from after that date will show a "W" on your record.
Thursday,April 27 is the last day to drop a spring semester course and receive a "W" on your record. After that date students will receive a letter grade based on your submitted work for the semester.
An 'Incomplete' will be issued only for extenuating justifiable circumstances (medical, military, etc.) and only if the majority of the work in the course has already been completed. An 'Incomplete' will not be considered if the majority of the work has not been completed by the end of the course. Because the grade of 'A' represents 'Distinguished', an 'A' will not be awarded to students who receive an Incomplete and finish their work after the class has officially ended even if their total score is greater than 90%.
Veterans on the GI Bill, students on financial aid and international students should contact the appropriate office to discuss consequences of dropping or being dropped from a course.
GRADING:
|
NO-NAME and LATE PENALTIES: You must include your name, student ID or Canvas ID, exercise name and assignment ID (if provided) on all work you submit. Penalties will be applied AFTER the score for your assignment has been computed.
Quizzes and Lab Assignments must be completed by 11:55pm one week after the assignment is given. Due dates are listed on Canvas for each assignment. No late assignments will be accepted after May 26, 2017, the last day of the class. A late penalty is deducted for each day or part there of for each day the assignment is late, up to 3 points late penalty. The late penalty is in addition to any other scores the assignment received.
REGRADING ASSIGNMENTS: If you ask for an assignment to be regraded
after it has already been graded, one point will be deducted from the new score.
For example, an assignment worth 10 points that is regraded will have a maximum
score of 9 points.
ACADEMIC DISHONESTY PENALTIES: You are expected to download your own
assignments and DO YOUR OWN WORK. I have several ways to help me determine if
a student is submitting another person's work. I may not catch every instance
of plagiarize work, but I can catch many. The penalties for Academic Dishonesty
far exceed the penalties for submitting your work late. I strongly suggest that
you do not share your work with other students, or share your disks or flash
drives that contain your class work. Sometimes students have loaned their flash
drive to another student and the second student accidentally submitted the wrong
file. Other times the second student just copied the first student's work and
changed the name. If it looks like work was copied, even if accidentally, the
penalties will apply. Don't take the chance on messing up your grade.
Penalty |
Cause |
zero points on the assignment and your course grade will be lowered |
All or some of your work was created by another student this semester, or a previous semester. |
zero points on the assignment and your course grade will be lowered again. |
Second offense. |
an 'F' in the class |
Third offense. |
DISCRIMINATION, STUDENT CONDUCT, PRIVACY and SEXUAL HARASSMENT:
1. The Americans with
Disabilities Act (ADA) is a civil rights statute that prohibits discrimination
against people with disabilities. Students with disabilities have rights that
can be found in Chapter
5 page 38 of the College Catalog.
2. SJCC is committed to providing a safe positive learning environment where students can pursue their educational goals. The Standards of Student Conduct can be found in Chapter 5 page 41 of the College Catalog.
3. SJCC is committed to maintaining an environment free of sexual harassment or discrimination based on race, religious creed, color, national origin, ancestry, disability, medical condition, marital status, political beliefs, organizational affiliation, sexual orientation, gender or age. Information on this can be found in Chapter 5 page 40 of the College Catalog.
4. If a student is attending a postsecondary institution at any age the rights under the Family Educational Rights and Privacy Act (FERPA) have transferred to the student. However, although the rights under FERPA have now transferred to the student, a school may disclose information from an eligible students education records to the parents of the student, without the students consent, if the student dual-enrolled in high school and college and is a dependent for tax purposes. For more information, see www2.ed.gov/policy/gen/guid/fpco/pdf/ferpafaq.pdf
CIS 054 COURSE OUTLINE - subject to change - see Canvas for any updates
to the class schedule.
Week |
Lecture Topics |
Lab Assignments |
Homework and Quiz |
Module 1 |
Class Orientation Chapter 1 |
Paycheck Program 1.0 NOTE: I can be on campus Monday and Tuesday the first week of school to help students get started with the lab work and complete the first programming lab assignment. E-mail me to arrange a time if you want to meet. |
Read chapter 1 - this chapter gives a very nice introduction to C++ and
includes several helpful hints. Begin reading chapter 2 Orientation Quiz |
Module 2
Monday February 6 |
Chapter 2 |
Players on a Team Sum and Averages of Numbers |
Finish reading chapter 2 Begin reading chapter 3 Chapter 2 Quiz |
Sunday February 12 - LAST DAY TO DROP
without a 'W' on your transcript
|
|||
Module 3
|
Chapter 3 Chapter 16 |
Electric Bill Compute PI |
Finish reading chapter 3 Begin reading chapter 4 Chapter 3 Quiz |
Presidents Holiday - School closed
February 17 to February 20
|
|||
Module 4
|
Chapter 4 |
Rock Paper Scissors Long Distance Call |
Finish reading chapter 4 Begin reading chapter 5 Chapter 4 Quiz |
Module 5
|
Chapter 5 |
Fast Food Restaurant Length of a Line (Pythagorean) |
Read chapters 5 and 6 Chapter 5 Quiz |
Module 6
|
Chapter 6 |
Range, Mean, Median of a File Inventory Control Using Two Files |
Finish reading chapter 6 Chapter 6 Quiz |
Module 7
|
Chapter 7 |
Tic-Tac-Toe Delete Repeats |
Finish reading chapter 7 Chapter 7 Quiz |
Module 8 |
Chapter 8 |
String Manipulation Sentence Formatting |
Finish reading chapter 8 Midterm Exam |
Module 9 |
Chapter 9 |
Reservation System
|
Read chapter 10 - first third Chapter 9 Quiz |
Module 10 |
Chapter 10 |
Student Grading Binary Search of Structured Records This project must use an array of pointers to structured records. |
Finish reading chapter 10 Chapter 10 Quiz |
Spring Break + Cesar Chavez Holiday
- School closed April 10 to April 16
|
|||
Module 11 |
Chapter 11 Chapter 14 |
Rational Numbers Recursive Functions |
Finish reading chapter 11 Chapter 11 quiz
|
Module 12 |
Chapter 12 |
Movie Ratings ADT Digital Time |
Read chapter 12 |
Thursday April 27 - LAST DAY TO DROP
with a 'W' on your transcript
|
|||
Module 13 |
Chapter 15 |
Derived Salaried Employee Class Virtual Functions |
Finish reading chapter 15 Chapter 15 Quiz |
Module 14 |
Chapter 13 |
Linked Lists Stacks and Queues |
Read chapter 13 Chapter 13 Quiz |
Module 15 |
Chapter 17 Templates Chapter 18 Standard Template Library Iterators and Containers Generic Algorithms |
Templates & Containers |
Read chapters 17 and 18 Review for the Final
|
FINALS |
FINAL EXAM - Written test |
FINAL EXAM - Lab test |
END OF CLASS May 26 |
Important Dates Spring Semester 2017
Regular semester January 30, 2017- May 26, 2017 (all information subject to change) |
|
1/30
|
SPRING SEMESTER 2017 BEGINS |
2/12
|
LAST DAY TO ADD using add
codes on MyWeb |
2/13
|
CENSUS DAY - FIRST DAY TO DROP Spring 2017 classes with a "W" for regular semester classes |
2/17 - 2/20
|
Presidents' Holiday. Campus Closed |
2/24 |
LAST DAY TO APPLY for a refund
of fees for class(s) dropped by February 12. |
3/10
|
LAST DAY TO SUBMIT Degree/Certificate Petitions for Spring 2017 |
3/31
|
Professional Development Day (faculty and staff) - no classes held |
4/10 - 4/16
|
Spring Break + Cesar Chavez Holiday |
4/27
|
LAST DAY TO DROP Spring classes with a "W" on record |
5/19
|
Last Friday evening classes - English final exams - no regular day classes |
5/26
|
SJCC Commencement |
5/26
|
SPRING SEMESTER 2017 ENDS |
6/7
|
Spring 2017 grades available on MyWeb http://myweb.sjeccd.edu |