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.
- Demonstrate a thorough understanding of modular programming by designing programs that require the use of programmer-defined functions.
- Demonstrate a thorough understanding of arrays by designing and implementing programs that search and sort arrays.
- 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.
- Demonstrate a thorough understanding of the concept of pointers and dynamic memory allocation by designing and implementing programs using pointers and dynamic memory allocation.
- 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.
- Demonstrate good documentation style in all of the programs written in this course.
- Demonstrate proficiency in implementing data validation code, performing unit testing, and developing test plans while implementing robust solutions to the assignments in this course.
- Demonstrate a thorough understanding of stream input/output for both console and files.
- 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
|
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:
- The student is unable to complete the course during the semester due to unexpected circumstances beyond their control.
- The student must have earned at least half of the total course grade points (500) by the end of the semester.
- 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.
- 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
|
Assignments: |
||||
Wk |
DateMonWed |
Day |
Lecture |
Read
|
Assigned on Tu/Th.
|
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 |
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 |
Ch 7 |
complete lab 6 before x1 Exam 1 p2 |
|
7 |
10/4 |
Mon |
Ch 7: Intro to Classes (start) |
|
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) |
|
complete lab 14 before x3Exam3 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, 2021The 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