Syllabus
Programming Fundamentals II

Programming Fundamentals II

COSC-1337

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

Course Information

Section 001
Distance Learning
ONL DIL
Paul Thayer

Section 001
Laboratory
ONL DIL
Paul Thayer

Office Hours

  • M T W Th F Sa
    NULL - NULL
    online, email, BlkBrd Collaborate, chat
    For online class: I check email regularly, several times a day, 7 days a week. Note: Email me to set up chat session, Blackboard Collaborate if desired.

COURSE DESCRIPTION / RATIONALE

Course Description: This is an introduction to the C++ programming language and its subset, the C programming language. Program structure, blocks, 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. Differences between C, C++, and Python will be discussed. Some new features in C++ 2011/2014/2017 will be introduced.

Pre-requisite: COSC 1336 (preferred) or similar programming course or department approval.

Instructional Methodology:  This is a distance learning course. Resources including audio and video recordings (prior and current in-class lectures and webcam) will be available on-line. Blackboard is the primary source for course materials. ACC campus access is subject to change and not required. Students must have their own computer and internet access. Any computer which runs C++ can be used for the labs. The instructor uses use the Orwell DevC++ development environment. Students may use the C++ compiler of their choice, but grading will be done in Orwell DevC++. Students are encouraged to email the instructor when they have questions or get stuck on a programming assignment. Attach troublesome code as an email file attachment.

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) and COSC 2436 (Data Structures) 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.

Note: This course is not intended to be the student’s first course in programming. Although introductory programming concepts are covered, only a quick review is provided. The pace of instruction, quizzes, labs and exams will be fairly rapid. Please take advantage of email, BlackBoard audio and video, textbook, slides, and all other available resources to be successful.

Student Learning Outcomes/Learning Objectives

Course Objectives / Learning Outcomes: Students will be exposed to the following concepts and/or skills at an introductory concepts level:

The analysis and design of programs based on requirements and performance considerations; evaluation of various possible technical solutions; object-oriented design considerations; system integration; program documentation; program debugging procedures; developing program testing plans; consideration of program operating environment; use of reusable software.

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

SCANS (Secretary’s Commission on Achieving Necessary Skills):

The following list summarizes the SCANS competencies addressed in this course:

RESOURCES

1.1 Manages Time

INTERPERSONAL

INFORMATION

3.3 Uses Computers to Process Information

SYSTEMS

 

TECHNOLOGY

5.2 Applies Technology to Task

BASIC SKILLS

6.3 Arithmetic

6.5 Listening

THINKING SKILLS

7.5 Knowing How to Learn

PERSONAL SKILLS

 

 

Readings

Approved Course Text: Starting out with C++ Early Objects Gaddis, Walters, Muganda. Pearson.

10th edition: 2020 ISBN-13: 978-0-13-523500-3.

Course Requirements

Grade Policy: Grades will be assigned based on concepts and practical application. Exams, quizzes, and lab projects will be a part of the grade. There is no curve. Your grade is based on your individually earned point total. Point totals are not “rounded up” to the next higher grade level. Extra credit opportunities are included in some assignments. See the Blackboard MyGrades area for your current point total on graded assignments. An overall grade is assigned based on this scale:

 

Points Percentage

90% - 100%

80% - 89.9%

70% - 79.9%

60% - 69.9%

0% - 59.9%

Grade

A

B

C

D

F

 

Each student’s grade for this course consists of attendance, quizzes over textbook reading and concepts, labs on C++ programming skills, exams on both concepts and skills. There are three exams. The final exam is comprehensive. For a complete list, see the table below:

#

Item

points per one item

total points

percent of grade

1)

Quiz 0 on the syllabus

  10 points

10

1.0%

2)

Lab 0 student info sheet

  10 points

10

1.0%

3)

Exam 0 practice exam

  10 points

10

1.0%

4)

(12) Quizzes Ch 1 – 11, 14

  10 points per quiz

120

12.0%

5)

(6) Labs Ch 1 – 6

  20 points per lab

120

12.0%

6)

(6) Labs Ch 7 – 11, 14

  30 points per lab

180

18.0%

7)

Exam 1 (Ch 1 – 6)

120 points (40-40-40)

120

12.0%

8)

Exam 2 (Ch 7 – 9)

180 points (60-60-60)

180

18.0%

9)

Exam 3 (Ch 10 – 11, 14)

250 points(80-85-85)

250

25.0%

 

TOTAL

 

1000

100.0%


Each C++ quiz or lab is due one week after the date assigned AND before the upcoming exam (whichever is earlier). Each exam tests the student on skills learned from the preceding quizzes and labs. You should complete assignments prior to being tested on them. Recommended pacing: complete each lab within one week of the date assigned and prior to the next exam. It is very helpful to complete all labs prior to the upcoming exam. The exam tests concepts from prior labs.

 

Assignments are considered late if submitted after the due date. Late lab assignments will be accepted with a penalty of 20% if completed up to one week late; a 50% penalty if completed up to two weeks late. No work is accepted after two weeks late or after Friday, August 31, 2020. The main penalty for late work is that you lose points on the exam because you were not prepared. You will always receive some credit for doing an assignment, but a late penalty may apply.

COURSE/CLASS POLICIES

Academic Integrity

A student is expected to complete his or her own projects and tests.  Students are responsible for observing the policy on academic integrity as described in the current ACC Student Handbook.

 

Students may work together to learn to program in C++. If you collaborate on a lab with another student and your lab is substantially the same as another student’s lab, both students who worked together should mention who they worked with in the comments. If substantially similar labs are submitted without a declaration of collaboration, the score for the labs may be reduced to zero on suspicion of cheating (submitting another student’s work as your own). Quizzes on the reading should be done independently and without help.

 

The penalty accessed will be in accordance with the current ACC Student Handbook policy.  See http://www.austincc.edu/handbook for more information. For this course, the penalty for scholastic dishonesty is a grade of ‘F’ for the course.


 

Incomplete

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 unexpected circumstances beyond their control.
  2. The student must have earned at least half of the total course grade points (500) by the end of the semester.
  3. The request for the incomplete grade must be made in person at the instructor’s office and necessary documents completed by the last day of instruction.
  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 reverting to an “F”.
     

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.  For schedules and details please refer to http://www.austincc.edu/support-and-services/tutoring-and-academic-help/tutoring-services-and-schedules.

 

Testing Center Guidelines [Open Campus Sections Only]
Testing centers are not available. If this changes during the semester, that may open up another option for testing. For now, the course does not rely on the testing centers.

 

Attendance / Withdrawal

Attendance does not apply to an online class. Regular participation is expected and observed via BlackBoard “last access” and time-stamped assignments. Students will be held responsible for all assigned material. Regular weekly progress helps ensure satisfactorily course completion. Saturday, July 4, 2020 (Independence Day) is a Holiday (which doesn’t help much – a holiday on a Saturday?) See: http://www.austincc.edu/calendars/academic-calendar.

It is the student’s responsibility to follow the Course Withdrawal/Drop Instructions if they wish to withdraw from this class. See: http://www.austincc.edu/online-services/course-drop-withdrawal. The last date to withdraw for this semester is Monday, July 20, 2020.  It is not the responsibility of the instructor to withdraw the students from their class even though the instructor has the prerogative to do so under the above listed circumstances. Typically, the instructor does not withdraw students! If it appears, on the final withdraw date, that a student will surely receive an ‘F’ for the course, the instructor may withdraw a student.  Do not rely on the instructor to withdraw you from the course! If you do NOT wish to be withdrawn, despite low scores, advise the instructor before the final withdrawal date.

Students who enroll for the third or subsequent time in a course taken since Fall 2002 are charged a higher tuition rate.  State law permits students to withdraw from no more than six courses during their entire undergraduate career at Texas public colleges or universities.  With certain exceptions, all course withdrawals automatically count towards this limit.  Details regard this policy can be found in the ACC College Catalog. See: http://www.austincc.edu/catalog/.

Student Files – Privacy

The information that a student stores in his/her student volume in the Computer Studies Labs may be viewed by their instructor for educational and academic reasons.

Students with Disabilities

Each ACC campus offers support services for students with documented physical or psychological disabilities.  Students with disabilities must request reasonable accommodations through the Office for Students with Disabilities on the campus where they expect to take the majority of their classes.  Students are encouraged to make this request three weeks before the start of the semester. See current ACC Student Policies at: http://www.austincc.edu/support-and-services/services-for-students/student-accessibility-services-and-assistive-technology.

Communication

The ACC online Blackboard system http://acconline.austincc.edu and ACC Gmail accounts will be used as the official communication system during this semester.  Lecture notes, handouts, changes to course schedule or assignments and your grades will be posted on Blackboard and all email communication will be via the ACC Gmail accounts.  All students are expected to check both Blackboard and their ACC Gmail accounts on a regular basis.  For information on how to log onto Blackboard and ACC Gmail please visit the following sites:
http://acconline.austincc.edu                                                   (Blackboard logon)

http://irt.austincc.edu/blackboard/StudentSupport.php          (first time Blackboard user)

http://www.austincc.edu/google/  or  http://www.austincc.edu/accmail        (ACC email login)

Instructors/Lab Technicians will conduct a brief lab orientation during the first class laboratory period. If this is your first semester at ACC, you have some extra work to set up your ACC email account, your Blackboard account, etc. There is help available to accomplish these tasks. First check the ACC website: http://www.austincc.edu and other austincc.edu links (see above). Also ask lab assistants (available in every CIT lab), or call ACC help line at: (512) 233-HELP (4357).

Safety Statement

Each student is expected to learn and comply with ACC environmental, health and safety procedures and agree to follow ACC safety policies.  Emergency posters and Campus Safety Plans are posted in each classroom.  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/.  In the event of an extreme emergency or impending threat, ACC Emergency Alert can send critical voice and text messages to your cellphone. You can register or update your emergency contact information starting at the link above.

Anyone who thoughtlessly or intentionally jeopardizes the health or safety of another individual will be immediately dismissed from the day’s activity, may be withdrawn from the class, and / or barred from attending future activities.

Course Subjects

COSC 1337 – Programming Fundamentals II – Summer 2020
Synonym 204– Sec 1 – Prof. Thayer
‘DL1’ Distance Learning on-line

Assignments:
Homework and Lab

Wk

Date

Day

Lecture

Read in Gaddis

Listed on date assigned
20 to 50% off if late

1

6/1

Mon

Course Intro - (intro, syllabus, info sheet,  C++ compiler, practice exam)

 

Quiz0, Lab0, Exam0
(due 6/8)

6/3

Wed

Ch 1: Introduction to computers & programming
Ch 2: Introduction C++ (vs. Python, C)

Ch 1

Ch 2

Quiz 1; Lab 1
Quiz 2; Lab 2

(due 6/10)

2

6/8

Mon

Ch 3: Expressions and Interactivity

Ch 4: Making Decisions

Ch 3

Ch 4

Quiz 3; Lab 3
Quiz 4; Lab 4

(due 6/15)

6/10

Wed

Ch 5: Looping

Ch 6: Functions

Ch 5

Ch 6

Quiz 5; Lab 5
Quiz 6; Lab 6

(due 6/17)

3

6/15

Mon

Ch 6: Functions, cont’d; review  (Ch 1 - 6)

 

 

6/17

Wed

Complete EXAM 1 (Chapters 1 - 6) (40-40-40)
(part1:not timed; parts2&3: timed)

 

(due 6/18)

4

6/22

Mon

Ch 7: Introduction to Classes & Objects

Ch 7

Quiz 7; Lab 7
(due 6/29)

6/24

Wed

Ch 8: Arrays, Vectors

Ch 8

Quiz 8; Lab 8
(due 7/1)

5

6/29

Mon

Ch 9: Searching, Sorting

Ch 9

Quiz 9; Lab 9
(due 7/6)

7/1

Wed

Ch 9: Algorithm Performance Analysis

 

 

6

7/6

Mon

Review (Chaps 7 - 9) for Exam 2

 

 

7/8

Wed

Complete EXAM 2 (Chapters 7 - 9) (60-60-60)
(part1:not timed; parts2&3: timed)

 

(due 7/9)

7

7/13

Mon

Ch 10: Pointers, dynamic memory allocation

Ch 10

Quiz 10; Lab 10
(due 7/20)

7/15

Wed

Ch 11: More about Classes and Object Orientation

Ch 11

Quiz 11; Lab 11
(due 7/22)

Notice: Monday, July 20, 2020 is the ACC Final Withdrawal Date!

8

7/20

Mon

Ch 11: More about Classes and OO (cont’d)

 

 

7/22

Wed

Ch 14: Recursion

Ch 14

Quiz 14; Lab 14
(due 7/29)

9

7/27

Mon

Review  (Chapters 1 – 11, 14)

 

 

7/29

Wed

Complete EXAM 3 (Chapters 1–11, 14)
 
(points: 80-85-85)
(part1:not timed; parts2&3: timed)

 

(due 7/30)

The last date to submit assignments for consideration this semester is Friday, July 31, 2020.

Note: The instructor has the prerogative to change the course schedule as required.  Students are strongly encouraged to read over the current chapter, per the course schedule, before each class. More information on quizzes, labs, and specific sections to read in the textbook will be available in class and on Blackboard.