COSC-1337 Programming Fundamentals II


Paul Thayer

Credit Fall 2024


Section(s)

COSC-1337-001 (89623)
LEC TuTh 6:55pm - 7:50pm DIL DLS DIL

LAB TuTh 8:00pm - 8:55pm DIL DLS DIL

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-value, call-by-reference, 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. Features in C++ 2011/2014/2017 will be introduced.

 

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

 

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

10th edition: 2020 ISBN-13: 978-0-13-523500-3. The most recent edition is preferred.

 

Instructional Methodology:  This is a distance learning course. Resources 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 relevant 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

900 – 1000

800 – 899

700 – 799

600 – 699

0 – 599

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 quizzes, labs and exams. 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%



 

 

 


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]
As far as I know, 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

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. Monday, September 6, 2021 (Labor Day), Thursday November 25, 2021 (Thanksgiving) and Friday November 26, 2021 are Holidays (college closed). 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 Thursday, November 18, 2021.  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).


Course Subjects

COSC 1337 – Programming Fundamentals II – Fall 2021
Sec 2 (Synonym 27918) and Sec 5 (Synonym 27920) – Prof. Thayer
‘DL2’, ‘DL5’ Distance Learning on-line

Assignments:
Quizzes and Labs

Wk

DateMonWed

Day

Lecture

Read
Gaddis

Assigned on Tu/Th.
On-time: <= 2 weeks.
-20%<=4; -50%<=6 wks

1

8/23

Mon

Course Intro - (syllabus, info sheet, C++ IDE)

 

Quiz 0; Lab 0

8/25

Wed

Ch 1: Intro to computers & programming with C++

Ch 1

Quiz 1; Lab 1

2

8/30

Mon

Ch 2: Introduction to C++, Python vs. C++

Ch 2

Quiz 2; Lab 2

9/1

Wed

Ch 3: Expressions and Interactivity
cin/cout; types, type convert, formatting;

Ch 3

Quiz 3; Lab 3, Exam 0

3

9/6

Mon

Labor Day - college closed - no telecom

 

 

9/8

Wed

Ch 4: Making Decisions, conditions, if/else

Ch 4

Quiz 4

4

9/13

Mon

if/else vs. complex condition, flags, switch, enum

 

Lab 4

9/15

Wed

Ch 5: Looping; while, do, for, break, continue

Ch 5

Quiz 5; Lab 5

5

9/20

Mon

Ch 6: Functions, modular / procedural programming

Ch 6

Quiz 6; Lab 6

9/22

Wed

parameters: value, reference, const, defaults, overloading; scope: local, static, nested, global

 

 

6

9/27

Mon

Review for EXAM 1  (Chaps 1-6) (start exam1 part 1)

 

Exam1 p1

9/29

Wed

Function Templates (Ch 16) vs. function overloading
EXAM 1 Theory Parts 1&2 (Chs 1-6)

Ch 7

complete lab 6 before x1 Exam 1 p2

7

10/4

Mon

Ch 7: Intro to Classes (start)
EXAM 1 Lab Part 3 (Chs 1 - 6)

 

Exam 1 p3

10/6

Wed

Ch 7: Intro to Classes & Objects, cont’d

 

Quiz 7

8

10/11

Mon

Ch 7: Intro to Classes & Objects, cont’d

 

Lab 7

10/13

Wed

Ch 8: Arrays and Vectors

Ch 8

Quiz 8

Congratulations! You have reached this Semester’s Halfway Point!

9

10/18

Mon

Ch 8: Arrays and Vectors, range, cont’d

 

Lab 8

10/20

Wed

Ch 9: Searching, Sorting

Ch 9

Quiz 9

10

10/25

Mon

Ch 9: sorts: bubble, selection, insert, quick, etc.

 

Lab 9

10/27

Wed

Ch 9: Algorithm Analysis, performance testing

 

 

11

11/1

Mon

Review for EXAM 2  (Chaps 1-6, 7 - 9) (start x2 p1)

 

Exam2 p1

11/3

Wed

Ch 10: Intro to Pointers (preview)

EXAM 2 Theory Parts 1&2 (Chs 1-6; 7-9)

Ch 10

complete lab 9 before x2 Exam 2 p2

12

11/8

Mon

EXAM 2 Lab Part 3 (Chs 1-6; 7-9) (no new mat’l)

 

Exam 2 p3

11/10

Wed

Ch 10: dynamic memory (new/delete), leaks; const

 

Quiz 10

13

11/15

Mon

Ch 10: pointers to classes, structs; smart pointers

 

Lab 10

11/17

Wed

Ch 11: this, friend, constructor default/overloading; copy vs. assign, operator overloading; const/non-const, private/public, static/non-static members

Ch 11

Quiz 11

Notice: Thursday, November 18, 2021 is the ACC Final Withdrawal Date!

14

11/22

Mon

Ch 11: More about classes and object orientation

 

Lab 11

11/24

Wed

Ch 11: inheritance; Ch 14: Recursion (Thanksgiving)

Ch 14

Quiz 14, Lab 14

15

11/29

Mon

Ch 14: Recursion, cont’d

 

 

12/1

Wed

Ch 14: Recursion, cont’d (start x3 p1)

 

Exam3 p1

16

12/6

Mon

Review for EXAM 3  (Chs 1–11, 14)
EXAM 3 Theory Parts 1&2 (Chs 1-11; 14)

 

complete lab 14 before x3

Exam3 p2

12/8

Wed

EXAM 3 Theory and Lab (Chapters 1 – 11, 14)

 

Exam 3 p3

The last date to submit assignments for consideration this semester is Friday, December 10, 2021

The instructor has the prerogative to change the course schedule as required.  Students are encouraged to read material and view video content per the course schedule. More information on quizzes, labs, and specific sections to read in the textbook will be available in class and on Blackboard.

 


 


Office Hours

T Th 9:00 PM - 9:30 PM online on Zoom

NOTE 15 min before and after each class on tue, thr.

Published: 09/23/2024 17:28:22