C / C++ PROGRAMMING - Syllabus

CIS054-103 (97077) Online - San José City College
Spring 2019 - January 28, 2019 to May 24, 2019

INSTRUCTOR: Dan McElroy    Dan.McElroy@sjcc.edu

OFFICE HOURS: Meet on Zoom web teleconferencing. I am available on Tuesdays 2:00pm-2:50pm and Thursdays 6:00pm-6:50pm. I can be available at other times by mutual arrangement. If you want to meet using Zoom, e-mail and I will setup a Zoom meeting.

HELP DESK: Contact the help desk if you have problems logging into the MyWeb or Canvas servers. I can't help you with login problems. Contact me for questions about the course.
    helpdesk@sjeccd.edu 1-408-270-6411 (Mon-Fri 7:00am to 5:30pm)
    http://www.sjeccd.edu/district-services/ITSS/help-desk

OPEN LAB: Room T202 in the Technology Building has Microsoft Visual Studio installed on many of the computers. Lab hours depend on the availability of staff and will be posted on Canvas around the second week of class.

GENERAL COURSE INFORMATION

This course covers both the C and the C++ programming languages. The C++ language is designed for object oriented programming (OOP) and is an extension of the C language. A lot of the code is exactly the same in both languages, but some areas are very different such as input/output, file access, string manipulation and memory allocation. Objects (OOP) are not covered in C. Discussions and examples are provided for both languages. When we reach the discussion of objects, alternate projects will be provided if you are mostly interested in the C language.

If you are new to programming, I suggest that you choose the C++ discussions and projects. As the course progresses, you can submit your projects either in C or C++ or both. I am happy to look at all of your work, however you will only get credit for one version of each project.

Because this course is being presented online, it is very important that you make sure you read and understand every part of each discussion and lab exercise requirement. It is suggested that you go over everything twice, especially anything that might be complicated or difficult to understand.

TEXTBOOK

Required Textbook - If you are primarily interested in learning C++, choose the Problem Solving with C++ textbook. If you are primarily interested in learning only the C language, choose the C How to Program textbook. If you are not sure, then choose the C++ textbook.

You only need one textbook, not two and you do NOT need a text with CDs or Access Codes. You may be able to save some money by purchasing an older version of the textbook, but don't go back than one edition. If you purchase an earlier edition, it is your responsibility to coordinate current assignments with the earlier edition.

Problem Solving with C++ 9th  Edition,    by Walter Savitch - PrenticeHall,
ISBN-13:   978-0-13-359174-3
    --- or ---
C How to Program 8th  Edition,    by Deitel - PrenticeHall,
ISBN-13:   978-0-13-422702-3

 

 

Choose only ONE textbook, either the
C++ textbook or the C textbook. If you
are not sure which, then get the C++ text.

9th editon image
Problem Solving
with C++ 9th ed

or  

C How to Program 8th edition
C How to Program
8th Ed
 

 
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.

CATALOG DESCRIPTION

Students will study C, a general-purpose programming language that 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.

PREREQUISITES / CO-REQUISITES / ADVISORIES

The class does not have a prerequisite listed, but it has several advisories that you should be aware of. You can still enroll in a class if you do not meet the advisory levels, but you may have a difficult time in the class. The class has three advisories, reading, writing and math.

ADVISORY READING LEVEL 3 - You need to be able to identify the thesis statement in college materials, make complex inferences, summarize and paraphrase information, use a college level vocabulary, etc. This advisory is in place because the textbooks for computer programming typically are not written in Simplified English. It is important to be able to read the textbooks that present complex ideas.

ADVISORY WRITING LEVEL 3 - You need to have the ability write a well-organized five-paragraph essay. Although most lab reports will not contain an essay requirement, you need to be able to write lab reports and participate in the online Discussions at a college level.

ADVISORY MATH 2 - Algebra 1 Skills - You need to be able to work with equations and variables. Some of the lab exercises may involve either complex or imaginary numbers. If you had a difficult time with high school algebra, you may also have a difficult time in a programming class.

TIME COMMITMENT

CIS054 C/C++ Programming is a three unit college class. Because it is an engineering type course, there is a lot of work. During a regular semester course, you should plan to spend about 9-10 hours per week on each 3-unit class. There may be some weeks you end up spending less time, but there may also be a few weeks that require more time.

The class begins on Monday January 28, 2019 and ends on Friday May 24, 2019. Due dates are listed on Canvas for each assignment. The class is organized into learning modules. There is usually a quiz and one or two lab assignments each module. You can complete the assignments on your own schedule as long as you submit them by their due dates. Lab assignments receive a penalty if submitted late. The late penalty is in addition to any other scores the assignment received. Quizzes must be completed by their due date, usually before the start of the next class module. Quizzes are locked after the 'Available until' date and can no longer be submitted. The due dates for each available quiz or assignment can be seen by clicking the 'Modules' link or the 'Calendar' icon on the left panel of Canvas. As a bonus, a maximum of two quizzes can be made up if the due date is missed. IMPORTANT: The last day of class for this class section is Friday May 24, 2019. Finals are due that Thursday and no work will be accepted after the end of the class.

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 (SLO)

The following SLOs are provided by the college and are part of an articulation agreement between San José City College and the UCs and the CSUs. In order to meet transfer requirements, all sections of CIS-054 must meet these objectives. By the end of the course, students will be able to:

  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 C++ 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.

HARDWARE AND SOFTWARE REQUIREMENTS

HARDWARE REQUIREMENTS - 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. You need a computer on which you can install the C or C++ compiler and debugger. Your computer must be connected to the Internet to install the software, view lectures and lab assignments, take the quizzes and tests, submit the lab assignments and participate in class discussions. There are also online C/C++ compilers that can be used to complete many but not all of the lab assignments.

INTEGRATED DEVELOPMENT SYSTEM - 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. You should receive an e-mail with information on how to get Microsoft software. More information will be available the first day of class on the Canvas class webpage. You can use any of these operating systems: Microsoft Windows, Apple Macintosh OS/X or Linux. Additional information on installing a development system is given during the first Module of the class.

ADDITIONAL SOFTWARE - Many of the handouts and lecture material are provided in the PDF format. Free Adobe Reader Software is available at https://get.adobe.com/reader/otherversions/   You also need a word processing program such as Microsoft Word, Apple Pages or OpenOffice Writer to complete the lab reports. A spreadsheet program such as Microsoft Excel, Apple Numbers or OpenOffice Calc is required to complete one of the lab assignments.

ACCESS TO SJCC COMPUTER LABS

San José 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 José City College is using Canvas as the online Learning Management System (LMS). Canvas works best with the Google Chrome and Firefox web browsers. The course webpage on 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. 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 José 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 use this e-mail address, but you may 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

Teachers can take attendance for an on-campus class by seeing who is in the class and participating. Poking your head in the door and looking at the board would not count as being present. For an online class, it is necessary that you not only login to Canvas, but you need to participate by submitting your assignments, quizzes and joining available discussions. Just logging in to Canvas and looking around is not considered participation.

Once you have shown some commitment to the class by submitting quizzes, labs, or homework, I assume that you wish to be in the class. Although it is the student's primary responsibility to drop a class, you may be dropped for non-participation. So, login to Canvas several times a week, keep up with the class and I look forward to seeing your hard work online. It is your responsibility to drop a class if you do not wish to continue.  IMPORTANT!!! You can NOT drop a class using the Canvas class website. 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 10, 2019 is the last day to withdraw from the course WITHOUT receiving a "W" on your record. Any classes that you withdraw between 2/11/2019 and 4/26/2019 will show a "W" on your record. February 10 is also the last day to drop a class and receive a refund of eligible fees.

Friday April 26, 2019 is the last day to drop the 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

Definition Percent

A=Distinguished
B=Above Average
C=Average
D=Minimum Passing
F=Failing

 A = 90%-100%
 B = 80%-89.9%
 C = 70%-79.9%
 D = 60%-69.9%
 F =  0%-59.9%

The lab assignments are an essential part of the class. You cannot pass the class by completing only the quizzes, midterm and final. You may be dropped from the class if you are not completing at least one lab assignment from each assigned module.

NO-NAME and LATE PENALTIES: The lab assignments must have your name, student ID, and exercise name at the top of the document. Late assignments will be accepted with a penalty. Penalties will be applied AFTER the score for your assignment has been computed.

Due dates are listed on Canvas for each assignment. No late assignments will be accepted after the last day of the class. Up to 5 points late penalty can deducted on lab assignments and discussion topics. The late penalty is in addition to any other scores the assignment received. In order to give students time to get added to the class and get the software development system downloaded and working (Visual Studio, Xcode, etc.), the late penalties will be waived (not assessed) for quizzes and lab assignments during the first two weeks of class.

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. The penalties listed below are for my class. Other instructors may enforce softer or much harsher penalties. For more information concerning the San José City College policy on disciplinary action, refer to the college catalog Chapter 5, Student Complaint Process, Section III-A

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.


SUPPORT SERVICES

San José City College provides many support services to students. A list of these services can be found at http://www.sjcc.edu/current-students/support-programs Included are: SAS, EOP&S, CalWorks, the CARR program, Puente, Umoja and Veteran Services
 

DISCRIMINATION, STUDENT CONDUCT, PRIVACY and HARASSMENT

STUDENT ACCESSIBILITY SERVICES (formerly known as DSP&S)

The Americans with Disabilities Act (ADA) is a civil rights statute that prohibits discrimination against people with disabilities. The Student Accessibility Services Program at San José City College is designed to allow students with disabilities to fully access and benefit from the general offerings and services of San José City College. The SAS office is located in the Student Center, room SC106. Contact Information is as follows:

Phone: 408-288-3746        TTY: 408-294-3447        V-Phone: 408-565-8640
Website: SJCC SAS website (http://www.sjcc.edu/current-students/support-programs/sas or see Chapter 5 of the SJCC catalog)

STUDENT CODE OF CONDUCT

Please review the following document for information regarding Student Code of Conduct guidelines, principles of discipline, standards of conduct, academic and classroom disciplinary procedures, student grievance procedures, and suspension and expulsion. Please click here to access the Student Code of Conduct: SJCC Student Code of Conduct (http://www.sjcc.edu/StudentAffairs/Documents/Student Code of Conduct.pdf or see Chapter 5 of the SJCC catalog)

SEXUAL HARASSMENT/DISCRIMINATION POLICY

It is the policy of the San José/Evergreen Community College District to provide an educational environment in which no person shall be unlawfully denied in whole or in part full and equal access to, the benefits of, or be subjected to discrimination in any program or activity of the District. This policy prohibits discrimination on the basis of legally protected categories which include ethnic group identification, race, color, language, accent, immigration status, ancestry, national origin, age, sex, religion, sexual orientation, gender identity, marital status, medical condition, veteran status, physical or mental disability, or on the basis of these perceived characteristics or based on association with a person or group with one or more of these actual or perceived characteristics.

Please click here for further information regarding the district’s Nondiscrimination Policy and Procedure: SJECCD Sexual Harassment/Discrimination Policy & Procedure (http://www.sjeccd.edu/Chancellor/Documents/Chapter-3_BP3410_Nondiscrimination.pdf or see Chapter 5 of the SJCC Catalog)

 

CIS 054 COURSE OUTLINE  -  January 28, 2019 to May 24, 2019

    Lab Reports and Quizzes are due before the start of the next module. See Canvas for due dates and any updates to the class schedule

Module
Dates

C  Lecture Topics C++ Lecture Topics Quiz, Homework and
Lab Assignments

Module 1

January 28
to
February 3

Class Orientation - Introduction to Programming in C and C++

 

Course Syllabus
Using Canvas
Submitting Lab Assignments

Computer systems
Programming and problem solving
Introduction to C and C++
C and C++ keywords
The ASCII Character Set
Testing and debugging
Integrated Development Environment (IDE)
 -Visual Studio .NET (Windows)
 -XCode (Mac)

Homework Reading Assignment:
Read chapter 1 - this chapter gives a very nice introduction to C++ and includes several helpful hints.

Open book quiz:
Chapter 1, Intro to C and C++

Lab Assignments:
1) Paycheck Program 1.0
2) Syntax Errors

Meet on Zoom:
E-mail me to arrange a time. Available times are posted on Canvas.

Module 2
 
February 4
to
February 10

C  Language Basics

Program organization
Variables and assignments
Input and output using scanf and printf
Deprecated functions
Data types and expressions
Precedence of operators
Simple Flow of control
Arithmetic operators

C++ Language Basics

Program organization
Variables and assignments
Input and output using cin and cout
Data types and expressions
Precedence of operators
Simple Flow of control
Arithmetic operators

Homework Reading Assignment:
2.1 Variables and Assignments
2.2 Input and Output
2.3 Data Types and Expressions
2.4 Simple Flow of Control
2.5 Program Style

Open book quiz:
Chapter 2, C/C++ Basics

Lab Assignments:
1) Players on a Team
2) Counting change
3) Debugging

------>
***February 10 is the last day to drop a spring semester
class without a 'W' mark on your transcript ***

Module 3

February 11
to
February 14

Decisions

Logical and Comparison Operators
Boolean expressions
Different IF statements
Case statements
Multiway branch

Illegal inputs detected by scanf

Decisions

Logical and Comparison Operators
Boolean expressions
Different IF statements
Case statements
Multiway branch

Illegal inputs detected by cin
C++ Exception handling (Try...Throw...Catch)

Homework Reading Assignment
3.1 Using Boolean Expressions
3.2 Multiway Branches

Open book quiz:
Chapter 3, Program Flow

Lab Assignments
1) Income tax bracket
2) Rock-Paper-Scissors

Discussion:
Privacy in the workplace

Holiday

February 15
to
February 18

February 15 - Lincoln Holiday
February 16 - No classes
February 17 - No classes
February 18 - Washington Holiday


     

Module 4

Februray 19
to
February 24

Loops

counting loops - from 0 or 1
sentinel value loops

while loop
do...while loop
for loop
nested loops

break statement
continue statement

Loops

counting loops - from 0 or 1
sentinel value loops

while loop
do...while loop
for loop
nested loops

break statement
continue statement

Homework Reading Assignment
3.3 More About Loops
3.4 Designing Loops

Open book quiz:
Chapter 3, Loops

Lab Assignments
1) Sum and Average of Numbers
2) Credit card interest

Module 5
 
February 25
to
March 3

Functions - Part 1

Top-Down Design
Predefined Functions
Header files - C vs. C++
Programmer-defined Functions
Procedural Abstraction
The 'Call' stack

Functions - Part 1

Top-Down Design
Predefined Functions
Header files - C vs. C++
Programmer-defined Functions
Procedural Abstraction
The 'Call' stack

Homework Reading Assignment:
Read chapter 16, Exceptions
Read chapter 4 - 1st half
4.1 Top-down Design
4.2 Predefined Functions
4.3 Programmer-defined Functions

Open book quiz:
Chapter 4, Functions

Lab Assignments:
1) Long Distance Call (use a function)
2) Debugging functions

Module 6

March 4
to
March 10
 

Functions - Part 2

Scope and visibility
Local vs. global variables
Recursion

Functions - Part 2

Scope and visibility
Local vs. global variables
Recursion
Overloading C++ functions

Homework Reading Assignment:
4.4 Procedural Abstraction
4.5 Scope and Local Variables
4.6 Overloading Function Names

Open book quiz:
Chapter 4, Scope and Visibility

Lab Assignment:
1) Menu Driven Conversion between Metric and English Measurements
2) Fast Food Restaurant

Discussion:
Ethics in the Computer Field

Module 7

March 11
to
March 17

Functions - Part 3

void Functions
Call-by-pointer parameters
Using procedural abstraction
Testing and debugging functions

Functions - Part 3

void Functions
Call-by-pointer parameters
Call-by-reference parameters
Using procedural abstraction
Testing and debugging functions

Homework Reading Assignment:
5.1 void functions
5.2 Call by reference
5.4 Debugging Functions

Open book quiz:
Chapter 5, More on Functions

Lab Assignments:
1) Rolling Dice Histogram
2) Length of a Line (Pythagorean)

Module 8

March 18
to
March 24

Arrays

Organizing data into arrays
Passing arrays to functions
Programming with arrays
Multidimensional arrays
Arrays of Structures

Arrays

Organizing data into arrays
Passing arrays to functions
Programming with arrays
Multidimensional arrays
Arrays of Structures

Homework Reading Assignment:
7.1 Introduction to Arrays
7.2 Arrays in Functions
7.3 Programming with Arrays
7.4 Multidimensional Arrays

Open book quiz:
Midterm, Chapters 1-5 and 7

Lab Assignments:
1) Tic-Tac-Toe
2) Tax Table Lookup

Module 9
 
March 25
to
March 31

Accessing Files Using C

File streams
Reading and writing files
Sequential access files
Random access files
fopen, rwx+
feof, fclose
fseek, unlink

Accessing Files Using C++

File streams
Reading and writing files
Sequential access files
Random access files
ifstream, ofstream
eof, open, close
seek

Homework Reading Assignment:
6.1 Streams and File I/O
6.2 Tools for Stream I/O
6.3 Character I/O

Open book quiz:
Chapter 6 - I/O Streams

Lab Assignments:
1) Range, Mean, Median of a File
2) Automatic Teller Machine

Module 10
 
April 1
to
April 7

Character and String Manipulation

C Strings
Searching and manipulating C strings

Character and String Manipulation

C++ Strings vs. C Strings
Searching and manipulating C++ strings
C++ Vectors

Homework Reading Assignment:
8.1 Array Type for Strings
8.2 The C++ string class
8.3 Vectors

Open book quiz:
Chapter 8, Strings

Lab Assignments:
1) Sentence Formatting
2) String Manipulation

Module 11

April 8
to
April 14

Pointers and Memory Allocation

Declaring and dereferencing pointers
Memory allocation in C
Returning memory to freespace in C
Dynamic arrays in C

Pointers and Memory Allocation

Declaring and dereferencing pointers
Memory allocation in C++
Returning memory to freespace in C++
Dynamic arrays in C++

Homework Reading Assignment:
9.1 Pointers
9.2 Dynamic Arrays

Open book quiz:
Chapter 9, Pointers, Dynamic Arrays

Lab Assignments:
1) Reservation System
2) Extra Credit Lab

Break

April 15
to
April 21

Campus Closed on these days

April 15 to April 19- Spring Break
April 18 - Native American Day
April 19 - Cesar Chavez Day
April 20 to April 21 - campus closed

       

Module 12

April 22
to
April 28

C Structures, etc.

Structures, unions and enumerators
Abstract data types

C++ Intro to Objects

Structures vs. Classes
Abstract data types
The this pointer

Homework Reading Assignment:

10.1 Structures
10.2 Classes
10.3 Abstract data types
10.4 Introduction to inheritance

Open book quiz:
Chapter 10 - Structures and Objects

Lab Assignments:
1) Student Grading
2) Binary Search of Structured Records

------>
The last day to drop a spring semester class with a
'W' mark on your transcript is Friday April 26, 2019

Module 13

April 29
to
May 5

C Preprocessor

File Inclusion
Macro Substitution

C++ More on Objects

Friend functions
Overloading operators
Arrays and classes
Classes and dynamic arrays

Homework Reading Assignment:
11.1 Friend functions
11.2 Overloading operators
11.3 Arrays and classes
11.4 Classes and dynamic arrays

Open book quiz:
Bit Manipulation, Overloading

Lab Assignments:
1) Date object - C and C++
2) Rational Numbers - C and C++

Discussion:
Artificial Intelligence

Module 14

May 6
to
May 12

C Bit Manipulation

Masking and inserting bits
Shifting bits left and right


C++ Inheritance

Inheritance
Polymorphism
Virtual functions

Homework Reading Assignment:
15.1 Inheritance basics
15.2 Inheritance details
15.3 Polymorphism

Open book quiz:
Preprocessor, Inheritance

Lab Assignments:
1) Different Record Types
2a) C++ Derived School Majors
2b) C Bit Manipulation

Module 15

May 13
to
May 19

Building Large Projects

Separate Compilation
Multiple Header Files
The Make Utility

Building Large Projects

Separate Compilation
Multiple Header Files
Namespaces

Homework Reading Assignment:
12.1 Separate compilation
12.2 Namespaces

Open book quiz:
Namespaces, etc.

Lab Assignments:
1) Movie Ratings
2) ADT Digital Time

Module 16

May 20
to
May 24

 

C Final and Final Project


C++ Final and Final Project

The end of the spring semester is Friday May 24 and the last day to submit any work or late assignments tobe included in your grade.

 
IMPORTANT NOTE: The last day of the spring semester is Friday May 24

IMPORTANT DATES - Spring Semester 2019

Important Dates Spring 2019 for Regular Semester Classes
January 28, 2019 to May 24, 2019
(all information subject to change)
1/28
SPRING 2019 TERM BEGINS FOR REGULAR SEMESTER CLASSES
2/10

LAST DAY TO ADD using add codes on MyWeb
LAST DAY TO DROP spring classes without being assessed enrollment fees
LAST DAY TO DROP spring classes with eligibility for refund of fees
LAST DAY TO DROP spring classes without a "W" on a transcript
NOTE: Registration fees will be assessed for any classes dropped after 2/11

2/11
CENSUS DAY - FIRST DAY for Withdrawal "W" for a Spring Regular semester class
2/15 - 2/8
President's Day Holiday - Campus Closed
2/22
LAST DAY TO REQUEST Pass/No Pass Grading for a Spring Regular semester class from the Office of Admissions and Records
3/15
Graduation/Certificate Petitions for Spring 2019 due in the Office of Admissions and Records
3/29
Professional Development Day - no classes held
4/15 - 4/19
Spring Break - No classes held
4/18
Native American Day - campus closed
4/19
Cesar Chavez Day - campus closed
4/20 - 4/21
No classes held
4/26
LAST DAY TO DROP Spring Regular semester class with a "W" on record
5/17
English final exams - no regular English day classes meet.
Friday evening classes meet as scheduled
5/24
SPRING SEMESTER 2019 ENDS
SAN JOSÉ CITY COLLEGE COMMENCEMENT
6/5
Spring 2019 grades available on MyWeb at      http://myweb.sjeccd.edu