Syllabus
Programming Fundamentals II

Programming Fundamentals II

COSC-1337

Credit Summer 2020
06/01/2020 - 08/02/2020

Course Information

Section 004
Distance Learning
ONL DIL
Murtaza Ally

Office Hours

  • M W
    4:10 pm - 4:40 pm
    Virtual Office
    or by appointments.
    Email the instructor with a request

Course Requirements

 

Course Description

Review of control structures and data types with emphasis on structured data types. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering.

This course is an introduction to the C++ programming language and its subset, the C programming language.  Program structure, block, storage types, console and file I/O, functions, arrays, strings, pointers, call-by-reference, call-by-value, and dynamic memory allocation will be discussed.  The concept and use of classes will be covered in some detail.  The differences between C++ and C will also be discussed.

Prerequisite

COSC 1336 or instructional program approval.

Course Rationale

This course is designed to teach students the C++ programming language and introductory and intermediate programming concepts with examples and applications using the C++ language.  The course builds and extends topics covered in the prerequisite course, COSC 1336 and prepares students for more advanced programming courses such as ITSE 2331 (Advanced C++ Programming) as well as for entry level programming employment.  The course is required for an Associate Degree in several Computer Information Systems and Computer Science degree areas.


Readings

Approved Course Text

Starting out with C++: Early Objects (10th edition). Gaddis, Walters, Muganda, Pearson, 2020. (ISBN- 9780135235003).

 

Student Learning Outcomes/Learning Objectives

Course Objectives/Learning Outcomes

  1. Demonstrate a thorough understanding of modular programming by designing programs that require the use of programmer-defined functions.
  2. Demonstrate a thorough understanding of arrays by designing and implementing programs that search and sort arrays.
  3. Demonstrate a thorough understanding of the object-oriented programming concepts of encapsulation, data abstraction and composition by designing and implementing classes including the use of overloaded functions and constructors.
  4. Demonstrate a thorough understanding of the concept of pointers and dynamic memory allocation by designing and implementing programs using pointers and dynamic memory allocation.
  5. Demonstrate a thorough understanding of the implementation of programmer-defined functions and classes by writing code, performing unit testing and debugging of multiple complex programs. A
  6. Demonstrate good documentation style in all of the programs written in this course.
  7. Demonstrate proficiency in implementing data validation code, performing unit testing, and developing test plans while implementing robust solutions to the assignments in this course.
  8. Demonstrate a thorough understanding of stream input/output for both console and files.
  9. Demonstrate an understanding of the differences between C and C++ in the areas of strings; pass by reference/passing pointers, and structs by designing and implementing programs that use C strings, C++ strings, C language structs and classes.

Competencies

  1. Develop programs using procedural and object-oriented programming concepts.
    1. Design, code and test programs that use input, output and arithmetic operations.
    2. Design, code and test programs that use branching and looping control structures.
    3. Design, code and test modular programs that contain multiple functions.
    4. Design, code and test programs that contain programmer-defined data types (classes).
  2. Develop programs using C++ struct, classes and arrays.
    1. Design, code and test programs that use arrays and structures (arrays of structures).
    2. Design, code and test programs that use two-dimensional arrays.
    3. Design, code and test programs that use arrays and sequential search.
  3. Develop programs using pointers, dynamic memory allocation, files and strings.
    1. Design, code and test programs that use pointers, dynamically-allocated arrays and sorting.
    2. Design, code and test programs that use C++ strings and input and output files.
    3. Design, code and test programs that use C strings

Scans Competencies

SCANS competencies have been identified that are relevant to the level of instruction in the community college environment.  These competencies reflect the knowledge and skills employees need to succeed in any occupation.  To be successful in this course the following SCANS competencies will need to be applied:

RESOURCES

1.1 Manages Time

INTERPERSONAL

2.1 Participates as a member of a team

2.6 Works with Cultural Diversity

INFORMATION

3.1 Acquires and Evaluates Information

3.2 Organizes and Maintains Information

3.3 Uses Computers to Process Information

SYSTEMS

4.1 Understands Systems

4.2 Monitor and Corrects Performance

4.3 Improve and Designs Systems

TECHNOLOGY

5.1 Selects Technology

5.2 Applies Technology to Task

5.3 Maintains and Troubleshoots Technology

 

BASIC SKILLS

6.1 Reading

6.2 Writing

6.3 Arithmetic

6.4 Mathematics

6.5 Listening

THINKING SKILLS

7.2 Decision Making

7.3 Problem Solving

7.4 Mental Visualization

7.5 Knowing How to Learn

7.6 Reasoning

PERSONAL SKILLS

8.1 Responsibility

8.2 Self-Esteem

8.3 Sociability

8.4 Self-Management

8.5 Integrity/Honesty

 

Course Subjects

 

Orientation

Orientation is required. The Orientation instructions are on the Blackboard site for this class. Students who do not complete orientation during the first week of class will be dropped from the class.

Class progress

Students are expected to understand they have enrolled in an online distance learning course and must manage their time to keep up with the schedule and pace of the class.  In this course, each new concept builds on previous concepts so that regular progress through the material is crucial to success on tests and assignments.  Students should check grades in Blackboard regularly to ensure that they are not getting behind.

Assignments

Grade will be assigned based both on concepts and practical application. Exams, exercises, and programming assignments will be a part of the grade.  Lab assignments have a grace period of two days after they are due for a penalty of 20%.

Exams

Exams will be taken during the dates assigned in the course schedule.  Exams will be taken on the students’ home computer.  Exams must be taken by the due date posted in the Course Schedule.

Grading Percentages

The following represents the breakout of assignments by percentage:

Exam 1

20%

Exam 2

20%

Exam 3

20%

Practice Assignments (10)

10%

Projects (10)

30%

TOTAL

100%

 

Grade Policy

 

Grade will be assigned based be assigned on the following grading scale:

90% - 100%     A

80% - 89%       B

70% - 79%       C

60% - 69%       D

0%    - 59%       F

Program Documentation and Style Requirements

One of the requirements of this course is that you program in a professional programming style.  20% of your grade on each programming assignment will be based on program documentation and style. The goal is to make your program easy to read and understand.

You should follow a standard indentation style that highlights the structure of your program. I like the indentation style used in our textbook, but as long as you consistently follow a neat, professional looking style, I won't complain.

  • Each program must begin with a comment that includes: a) your name, b) program status - either "Complete" or describe any incomplete or non-functioning part of your program, and c) a brief 1 to 3-line description of what the program does.
  • In your source file, the code for the main function should come first followed by your other functions.
  • Each function should begin with a 1 to 3-line comment describing what the function does.
  • All local variables and constants should be declared at the beginning of the function block.
  • Use meaningful variable names. One or two character names are rarely meaningful. For example, c and ch would not be acceptable names for a variable that holds the change returned from a purchase. chng is OK. change and changeDue are even better.
  • Declare one variable or constant per line. Include a comment to the right of the variable or constant declaration describing how it is used.
  • If a function is longer than 4 or 5 lines, it should be divided into sections by task with blank lines between sections. Include a 1 or 2-line comment at the beginning of each section describing what the section of statements does. I want to be able to read the comment at the beginning of a section and understand what the section does without looking at the C++ code. Note: These comments should say WHAT the section does, and not necessarily HOW it does it.

Course/Class Policies

Attendance/Class Participation

 

Regular and timely class participation in discussions and laboratory attendance is expected of all students.  If attendance or compliance with other course policies is unsatisfactory, the instructor may withdraw students from the class.  This includes participation in online classes.

In the event the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignment or other activities designated by their professor as a result of class sessions being missed. 

Course Schedule

Please note that schedule changes may occur during the semester.  Any changes will be reflected in the schedule in Blackboard and will be accompanied by an email to all students.  If the college or campus closes due to unforeseen circumstances (for example, severe weather or other emergency), the student is responsible for communicating with their professor during the closure and completing any assignments or other activities designated by their professor as a result of class sessions being missed.

Withdrawal Policy

It is the responsibility of each student to ensure that his or her name is removed from the roll should he or she decides to withdraw from the class.  The instructor does, however, reserve the right to drop a student should he or she feel it is necessary.  If a student decides to withdraw, he or she should also verify that the withdrawal is submitted before the Final Withdrawal Date.  The Final Withdrawal Date for this semester is July 20, 2020.  The student is also strongly encouraged to keep any paperwork in cases a problem arises.

Students are responsible for understanding the impact that withdrawal from a course may have on their financial aid, veterans’ benefits, and international student status.  Per state law, students enrolling for the first time in Fall 2007 or later at any public Texas college or university many not withdraw (receive a W) from more than six courses during their undergraduate college education.  Some exemptions for good cause could allow a student to withdraw from a course without having it count towards this limit.  Students are strongly encouraged to meet with an advisor when making decisions about course selection, course loads, and course withdrawals

Late Work Policy

If a student fails to submit a good faith effort for a cumulative of four or more graded assignments during the semester, the student may be dropped from the course.

Incompletes

A student may receive a temporary grade of “I” (Incomplete) at the end of the semester only if ALL of the following conditions are satisfied:

  1. The student is unable to complete the course during the semester due to circumstances beyond their control.
  2. The student must have earned at least half of the grade points needed for a “C” by the end of the semester.
  3. The request for the grade must be made in person at the instructor’s office and necessary documents completed.
  4. To remove an “I”, the student must complete the course by two weeks before the end of the following semester.  Failure to do so will result in the grade automatically reverting to an “F”.

Statement on Scholastic Dishonesty

Austin Community College values academic integrity in the educational process. Acts of academic dishonesty/misconduct undermine the learning process, present a disadvantage to students who earn credit honestly, and subvert the academic mission of the institution. The potential consequences of fraudulent credentials raise additional concerns for individuals and communities beyond campus who rely on institutions of higher learning to certify students' academic achievements, and expect to benefit from the claimed knowledge and skills of their graduates. Students must follow all instructions given by faculty or designated college representatives when taking examinations, placement assessments, tests, quizzes, and evaluations. Actions constituting scholastic dishonesty include, but are not limited to, plagiarism, cheating, fabrication, collusion, falsifying documents, or the inappropriate use of the college’s information technology resources. Further information is available at https://www.austincc.edu/about-acc/academic-integrity-and-disciplinary-process

For this course, the penalty for scholastic dishonesty is a grade of ‘F’ for the course.

Student Rights and Responsibilities

Academic freedom is a foundation and hallmark of higher education. In the context of college-level courses, it specifically refers to the rights of free expression and respect for others with differing opinions. Students at the college have the rights accorded by the U.S. Constitution to freedom of speech, peaceful assembly, petition, and association. This concept is accompanied by an equally demanding concept of responsibility on the part of the student. Just as you are expected to exercise these rights with respect for state and federal law in the larger world, you are expected to exercise these rights as a student with respect for the college’s standards of conduct. These rights carry with them the responsibility to accord the same rights to others in the college community and not to interfere with or disrupt the educational process. Students and faculty alike should enable a climate of mutual respect and civility while fostering the freedom to debate and discuss the merits of competing ideas.

Enrollment in the college indicates acceptance of the rules set forth in the student standards of conduct policy, which is administered through the office of the campus dean of student services. Due process, through an investigation and appeal process, is assured to any student involved in disciplinary action.

Student Complaints

A defined process applies to complaints about an instructor or other college employee. You are encouraged to discuss concerns and complaints with college personnel and should expect a timely and appropriate response. When possible, students should first address their concerns through informal conferences with those immediately involved; formal due process is available when informal resolution cannot be achieved.

Student complaints may include (but are not limited to) issues regarding classroom instruction, college services and offices on the basis of actual or perceived race, color, national origin, religion, age, gender, gender identity, sexual orientation, political affiliation, or disability.

Further information about the complaints process, including the form used to submit complaints, is available at: http://www.austincc.edu/students/students-rights-andresponsibilities/student-complaint-procedures

Statement on Privacy

The Family Educational Rights and Privacy Act (FERPA) protects confidentiality of students’ educational records. Grades cannot be provided by faculty over the phone, by e-mail, or to a fellow student.  Individual student grades are posted in Black Board.

Students Accessibility Services 

Each ACC campus offers support services for students with documented disabilities. Students with disabilities who need classroom, academic or other accommodations must request them through the office of Student Accessibility Services (SAS).  Students are encouraged to request accommodations when they register for courses or at least three weeks before the start of the semester, otherwise the provision of accommodations may be delayed. Students who have received approval for accommodations from SAS for this course must provide the instructor with the ‘Notice of Approved Accommodations’ from SAS before accommodations will be provided. Arrangements for academic accommodations can only be made after the instructor receives the ‘Notice of Approved Accommodations’ from the student. Students with approved accommodations are encouraged to submit the ‘Notice of Approved Accommodations’ to the instructor at the beginning of the semester because a reasonable amount of time may be needed to prepare and arrange for the accommodations.

Safety Statement 

Health and safety are of paramount importance in classrooms, laboratories, and field activities. Students are expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies. Emergency Procedures posters and Campus Safety Plans are posted in each classroom and should be reviewed at the beginning of each semester.

All incidents (injuries/illness/fire/property damage/near miss) should be immediately reported to the course instructor. Additional information about safety procedures and how to sign up to be notified in case of an emergency can be found at http://www.austincc.edu/emergency

Everyone is expected to conduct themselves professionally with respect and courtesy to all. Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual may be immediately dismissed from the day’s activity and will be referred to the Dean of Student Services for disciplinary action.

In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the course. In that event, students will be provided an addendum to the class syllabus that will supersede the original version.

Freedom of Expression Policy

It is expected that faculty and students will respect the views of others when expressed in classroom discussions.

Tutoring

Free tutoring is provided for this course both on line and face-to-face.  For online schedules and details please refer to https://sites.austincc.edu/cs/student-resources/csit-tutoring-schedule/

Campus Carry

The Austin Community College District concealed handgun policy ensures compliance with Section 411.2031 of the Texas Government Code (also known as the Campus Carry Law), while maintaining ACC’s commitment to provide a safe environment for its students, faculty, staff, and visitors. Beginning August 1, 2017, individuals who are licensed to carry (LTC) may do so on campus premises except in locations and at activities prohibited by state or federal law, or the college’s concealed handgun policy. In addition, concealed weapons are not allowed on ACC-sponsored field trips where the school owns or has chartered or leased vehicles for transportation. It is the responsibility of license holders to conceal their handguns at all times. Persons who see a handgun on campus are asked to contact the ACC Police Department by dialing 222 from a campus phone or 512-223-7999. Please refer to the concealed handgun policy online at http://austincc.edu/campuscarry
 

Student Files – Privacy

Their instructor for educational and academic reasons may view the information that a student stores in his/her student volume in the Computer Studies Labs.

Discrimination Prohibited

The College seeks to maintain an educational environment free from any form of discrimination or harassment including but not limited to discrimination or harassment on the basis of race, color, national origin, religion, age, sex, gender, sexual orientation, gender identity, or disability.  Faculty at the College are required to report concern regarding sexual misconduct (including all forms of sexual harassment and sex and gender-based discrimination) to the Manager of Title IX/Title VI/ADA Compliance.  Licensed clinical counselors are available across the District and serve as confidential resources for students.  Additional information about Title VI, Title IX, and ADA compliance can be found in the ACC Compliance Resource Guide available at: https://drive.google.com/file/d/1o55xINAWNvTYgI-fs-JbDyuaMFDNvAjz/view

Use of ACC E-mail

All College e-mail communication to students will be sent solely to the student’s ACC mail account, with the expectation that such communications will be read in a timely fashion. ACC will send important information and will notify you of any college related emergencies using this account. Students should only expect to receive email communication from their instructor using this account. Likewise, students should use their ACC mail account when communicating with instructors and staff.
 

Classroom Behavior

Students are expected to demonstrate proper classroom behavior.  The professor has the prerogative to request any student that demonstrates improper and disruptive classroom behavior to leave the classroom.  Improper and disruptive behavior includes, but is not limited to: profanity, verbal outbursts, unwarranted physical activity, and lack of respect for fellow students and/or the professor.

Safety Statement

Health and safety are of paramount importance in classrooms, laboratories, and field activities.  Students are expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies.  Emergency Procedures posters and Campus Safety Plans are posted in each classroom and should be reviewed at the beginning of each semester. All incidents (injuries/illness/fire/property damage/near miss) should be immediately reported to the course instructor. Additional information about safety procedures and how to sign up to be notified in case of an emergency can be found at http://www.austincc.edu/emergency

Everyone is expected to conduct themselves professionally with respect and courtesy to all. Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual may be immediately dismissed from the day’s activity and will be referred to the Dean of Student Services for disciplinary action.  In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the course. In that event, students will be provided an addendum to the class syllabus that will supersede the original version.

Emergency Situation

In the event of disruption of normal classroom activities due to an emergency situation or an illness outbreak, the format for this course may be modified to enable completion of the semester.

 

*Each week students will have Assignments and Projects

Week

Dates

Lecture Topic(s)

Assignments

Projects*

1

6/1

6/7

Course Orientation

Intro to Computers and Programming,

Intro to C++

1, 2, 3

 

2

6/8

6/14

Expressions and Interactivity

Functions

4, 5, 6

1

3

6/15

6/21

Making Decisions

Looping

Files

7, 8, 9, 10

2

 

6/18

6/21

Exam 1

 

3

4

6/22

6/28

Characters, Strings, and the string Class

Struct

Exceptions

 

4

5

6/29

7/5

Arrays

Searching and Sorting

 

5

6

7/6

7/12

Introduction to Classes and Objects

 

6

 

7/9

7/12

Exam 2

 

 

7

7/13

7/19

Pointers & Dynamic Memory Allocation

 

7

8

7/20

7/26

More on Classes & Objects

 

8

9

7/27

8/2

More on Classes & Objects

Advanced File I/O

 

9

 

7/30

8/2

Exam 3

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NOTE: The Instructor has the prerogative to change the course schedule as required.  Students are expected to read and study the assigned material per the course schedule BEFORE each class and the Lab Due Date.