Choose course: CS 134 | CS 200 | CS 235 | CS 250

๐Ÿง‘โ€๐Ÿซ Course information (๐Ÿ”—)

CollegeJohnson County Community College     Division     CSIT (Computer Science / Information Technology)
Instructor Rachel Wil Singh (they/them) / Office: RC 348 H / Email: rsingh13@jccc.edu / Office phone: 913-469-8500, Extension 3671
Office Hours Tuesdays 3:00 - 5:30 pm / Wednesdays 3:00 - 5:30 pm / Zoom link: https://jccc.zoom.us/my/rachelsingh
SemesterFall 2023 (8/21/2023 - 12/11/2023)
Course CS 200: Concepts of Programming with C++ (4 credit hours)
Section info Section 377 / CRN 81860 / HyFlex / Tuesdays, 6:00 - 8:50 pm, RC 380
Description This course emphasizes problem solving using a high-level programming language and the software development process. Algorithm design and development, programming style, documentation, testing and debugging will be presented. Standard algorithms and data structures will be introduced. Data abstraction and an introduction to object-oriented programming will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk. (Course catalog)
Prerequisites: (CS 134 with a grade of "C" or higher or CIS 142 with a grade of "C" or higher or department waiver test and MATH 131 or higher) or MATH 241 or department approval.
Drop deadlinesTo view the deadline dates for dropping this course, please refer to the schedule on the JCCC website under Admissions>Enrollment Dates> Dropping Credit Classes. After the 100% refund date, you will be financially responsible for the tuition charges; for details, search on Student Financial Responsibility on the JCCC web page. Changing your schedule may reduce eligibility for financial aid and other third party funding. Courses not dropped will be graded. For questions about dropping courses, contact the Student Success Center at 913-469-3803.
Auto-withdrawsTo make sure that you do not get auto-dropped from the class, you need to make sure to do the following: Attendance: During the first two weeks of class at JCCC, we are required to take attendance. Any students who are marked as not in attendance during the first two weeks get auto-dropped by our system.
I count attendance at the beginning of the semester as completion of Unit 0 assignments. If these are NOT COMPLETED by the due date then I will mark you as NOT IN ATTENDANCE and you will be auto-dropped.

๐Ÿ“— Course supplies (๐Ÿ”—)

Textbook Rachel's Core Computer Science Concepts notes (free)
Coding tools We will be writing code in the REPLIT.COM programming environment.
Source control We will be storing our code on REPLIT.COM, but you should also make sure to back up your code to your computer or a flash drive.
ZoomMake sure you have a copy of Zoom downloaded so you can connect to office hours/meetings as needed!
(Optional) dark-mode for browser Dark Reader is a plugin for Firefox, Chrome, Safari, and Edge that will force pages to dark mode so you can save your eyes. :)

๐Ÿ’ก Recommended experience (๐Ÿ”—)

Computer skills - You should have a base level knowledge of using a computer, including:

  • Navigating Windows, or another operating system:
    • Installing software, as needed
    • Running software, as needed
    • Locating saved files on your computer
    • Writing text documents such as MS Word or LibreOffice Writer
    • Taking screenshots
    • Saving image files and PDF files
    • Editing .txt files

  • Navigating the internet:
    • Navigating websites, using links
    • Sending emails
    • Uploading attachments

Learning skills - Learning to program takes a lot of reading, and you will be building up your problem solving skills. You should be able to exercise the following skills:

  • Breaking down problems - Looking at a problem in small pieces and tackling them one part at a time.
  • Organizing your notes so you can use them for reference while coding.
  • Reading an entire part of an assignment before starting - these aren't step-by-step to-do lists.
  • Learning how to ask a question - Where are you stuck, what are you stuck on, what have you tried?
  • Recognizing when additional learning resources are needed and seeking them out - such as utilizing JCCC's Academic Achievement Center tutors.
  • Managing your time to give yourself enough time to tackle challenges, rather than waiting until the last minute.

How to ask questions - When asking questions about a programming assignment via email, please include the following information so I can answer your question:

  1. Be sure to let me know WHICH ASSIGNMENT IT IS, the specific assignment name, so I can find it.
  2. Include a SCREENSHOT of what's going wrong.
  3. What have you tried so far?

๐Ÿ’ป Course format (๐Ÿ”—)

This course is HYFLEX. This means:

  • Face-to-Face instruction will be available at scheduled times on campus that you can attend.
  • Course will include live video (such as Zoom or Teams) sessions at scheduled times that you can attend.
  • Recorded instruction will be made available online.
  • Course syllabus and other materials are provided online.
  • You will have the option to complete coursework and testing either on-site or online.

For my classes:

  • I only take attendance the first week of class (The JCCC system auto-drops students who are in non-attendance during the first week.)
  • You can attend class IN PERSON or REMOTE during scheduled class times.
  • NOTE that if you're on a STUDENT VISA or getting education funds through the MILITARY you may be required to come to class in person.
  • VIDEO LECTURES and ARCHIVED CLASS VIDEOS are availble to students at any time on the RESOURCES PAGE.
  • During CLASS TIME I generally do example coding and answer questions. I do not lecture but I will discuss topics more at the request of students.
  • Class is scheduled from 6:00 - 8:50 pm. I will be there during the entire class time (in person and on Zoom), but you do not have to be present for the entire course period.
  • Students are encouraged to utilize class time to work with their groups on weekly exercises and work on assignments while I am readily available to answer questions.

View more about JCCC course delivery types here: https://www.jccc.edu/student-resources/course-delivery-methods.html

๐Ÿ…ฐ๏ธ Grading breakdown (๐Ÿ”—)

Score meanings - Assignments are usually given a list of criteria that the student will be graded on. These items will have weights associated, and then the student can receive one of the following scores:

Mastery: 10/10
Perfect score; demonstrated full comprehension of material.
Satisfactory: 9/10
Good understanding of material; perhaps small notes on things to fix up.
Not yet: 5/10
Did not demonstrate understanding of concept.
Unassessable: 0/10
Assignment missing or illegible.

Final letter grade - JCCC uses whole letter grades for final course grades: F, D, C, B, and A. The way I break down what your receive at the end of the semester is as follows:

Final letter grade:
F
0% โ‰ค grade < 59.5%
D
59.5% โ‰ค grade < 69.5%
C
69.5% โ‰ค grade < 79.5%
B
79.5% โ‰ค grade < 89.5%
A
89.5% โ‰ค grade โ‰ค 100%

โ˜‘๏ธ Assessment types (๐Ÿ”—)

Assignment type Description Weight
๐Ÿง‘โ€๐Ÿซ Check-ins Periodic check ins to see how you're doing in the course and what I could be doing better to help you. 5%
๐Ÿ“ Taking Notes Questions for you to fill out to help you study and reference. 5%
๐Ÿง  Tech Literacy Non-programming assignments related to the tech field. 10%
๐Ÿ†• Concept introductions Introductions to each of the topics with review questions, at least one each unit. 10%
๐Ÿ‹๏ธ Exercises Programming exercises to help you practice the new topics. At least one each unit. 15%
๐Ÿ’ป Projects Larger programming assignments that tie multiple topics together. 15%
๐Ÿ’ฏ Mastery Check Exam-style quizzes where you illustrate what you've learned of the topics. 40%

๐Ÿ“… Tentative schedule (๐Ÿ”—)

Schedule may be adjusted during the semester to better accommodate class pace.

Week/DateSuggested topicsWeek notes
1 / Aug 21 Welcome to CS 200! Aug 21 - First day of fall semester
2 / Aug 28 Exploring software, main() Aug 28 - Last day to drop and receive full refund
3 / Sept 4 Variables, cin/cout
4 / Sept 11 If/else if/else, switch statements
5 / Sept 18 While loops
6 / Sept 25 (TBD)
7 / Oct 2 Pointers, memory, functions
8 / Oct 9 Structs, classes
9 / Oct 16 For loops, arrays, vectors Oct 16 - Application deadline for fall graduation
10 / Oct 23 Strings, ifstream, ofstream
11 / Oct 30 Inheritance
12 / Nov 6 Searching, sorting, recursion
13 / Nov 13 SEMESTER PROJECT Nov 15 - Last day to withdraw with "W"
14 / Nov 20 SEMESTER PROJECT
15 / Nov 27 SEMESTER PROJECT
16 / Dec 4 FINAL EXAM, DEC 5 7:00-8:50 pm Dec 5 - 11, final exam week

โŒš Due dates, late assignments, and re-submissions (๐Ÿ”—)

  • Due dates are set as a guide for when you sh ould have an assignment in by.
  • End dates (or "Available until" dates) are a hard-stop for when an assignment can be turned in. Assignments cannot be turned in after this date until The Reopening.
  • Resubmissions are permitted to improve your grade on an assignment. You may resubmit an assignment after the end date only at the end of the semester.
  • The Reopening happens at the end of the semester once all other assignments have been graded. This period allows you to turn in any remaining late assignments for a small penalty to the overall score.

๐Ÿง๐Ÿง๐Ÿง Attendance policy (๐Ÿ”—)

JCCC requires us to take attendance during the first week of the semester. Students are required to attend class (if there is a scheduled class session) this first week. If there are scheduling conflicts during the first week of class, please reach out to the instructor to let them know.
JCCC auto-drops students marked as not in attendance during the first week of class, but students can be reinstated.
See https://www.jccc.edu/admissions/enrollment/reinstatement.html for more details.

  • This class' modality is HYFLEX:
    • You are free to choose to participate in class through any mode and move between options as desired. Options include:
    • Face-to-Face instruction will be available at scheduled times on campus that you can attend.
    • Course will include live video (such as Zoom or Teams) sessions at scheduled times that you can attend.
    • Course will include live video (such as Zoom or Teams) sessions at scheduled times that you can attend.
    • Recorded instruction will be made available online.
    • You will have the option to complete coursework and testing either on-site or online.

    • Class time begins with example code, clarifications to content, and possible group discussions lead by the instructor, followed by "open lab" time where students may work on assignments.
    • Students are encouraged to attend class either in person or remotely for at least part of the scheduled class session. This is the best time to work on your weekly Exercises, as the instructor and your teammates will be available to answer questions as needed.
    • You do not need to let the instructor know if you're going to miss a class. However, for extended absenses, please let the instructor know.
    • The instructor DOES NOT auto-drop students for non-attendance.

See the JCCC Course Delivery Methods page (https://www.jccc.edu/student-resources/course-delivery-methods.html) for more details.

๐Ÿ˜‡ Academic Honesty (๐Ÿ”—)

The assignments the instructor writes for this course are meant to help the student learn new topics, starting easy and increasing the challenge over time. If a student does not do their own work then they miss out on the lessons and strategy learned from going from step A to step B to step C. The instructor is always willing to help you work through assignments, so ideally the student shouldn't feel the need to turn to third party sources for help.

Generally, for R.W. Singh's courses:

OK:

  • Asking the instructor for help, hints, or clarification, on any assignment.
  • Posting to the discussion board with questions (except with tests - please email me for those). (If you're unsure if you can post a question to the discussion board, you can go ahead and post it. If there's a problem I'll remove/edit the message and just let you know.)
  • Searching online for general knowledge questions (e.g. "C++ if statements", error messages).
  • Working with a tutor through the assignments, as long as they're not doing the work for you.
  • Use your IDE (replit, visual studio, code::blocks) to test out things before answering questions.
  • Brainstorming with classmates, sharing general information ("This is how I do input validation").

NOT OK:

  • Sharing your code files with other students, or asking other students for their code files.
  • Asking a tutor, peer, family member, friend, AI, etc. to do your assignments for you.
  • Searching for specific solutions to assignments online/elseware.
  • Basically, any work/research you aren't doing on your own, that means you're not learning the topics.
  • Don't give your code files to other students, even if it is "to verify my work!"
  • Don't copy solutions off other parts of the internet; assignments get modified a little bit each semester.

If you have any further questions, please contact the instructor.

Each instructor is different, so make sure you don't assume that what is OK with one instructor is OK with another.

๐Ÿ‘ฏ How do teams work in this course? (๐Ÿ”—)

  • Assignments for teams:
    • Teams will be utilized throughout the semester for exercises (weekly smaller programming assignments) but not for projects (larger multi-topic programming assignments).
  • How group exercises work:
    • Each Exercise Assignment is meant to introduce students to a new concept "in a vacuum", so they are relatively small simple programs.
    • Each Exercise may have several parts to cover a few different aspects of the new topic. For example:
      Program 1 - if statementProgram 2 - if/else statementProgram 3 - if/else if statement
    • Beyond the different program parts, each Exercise also has a "Student A", "Student B", and "Student C" version. Student A, B, and C all have programs relating to the same topics for each Assignment, with the assignment requirements being similar but different. For example:
      Program 1, Student AProgram 1, Student BProgram 1, Student C
      Calculate assignment score, display "PERFECT" if result is 100% Calculate remaining bank balance, display "OVERDRAWN" if result is less than 0. Calculate remaining fuel in tank, display "LOW FUEL" if result is beneath 25%.
    • The Exercise on Replit will be shared between all 3 members of the team.
    • Each student will coordinate whether they will be A, B, or C. Each student will do ONLY their own set of programs. (DO NOT do all three, A, B, and C parts!)
    • Students can ask each other questions and collaborate on the exercises.
    • Students will turn in their group work together. One student can turn it in on Canvas and it will show up as a submission for each teammate.
    • Each teammate will be assessed individually and receive their own grade. Other teammates' work does not get reflected in your grade.
    • If a team only has 2 students in it, the lack of a third member will not impact either student's score. The Student C work can be left undone with no penalty.
  • Getting a team:
    • As student schedules differ and drops happen throughout the semester, students can choose their teammates for each exercise assignment in the course.
    • Canvas has a Groups system that students can use to self-select groups.
    • Replit also allows group self-select for assignments.
    • Instructor might be required to create or modify groups if Canvas or other tools aren't cooperating.
  • Corresponding with teammates:
    • Students may wish to correspond with their team via Canvas Discussion Board, Student Email, group text messages, and/or Discord chatroom in the course server.

๐Ÿ’ฏ Student success tips (๐Ÿ”—)

I need to achieve a certain grade for my financial aid or student visa. What do I need to plan on?
If you need to get a certain grade, such as an A for this course, to maintain your financial aid or student visa, then you need to set your mindset for this course immediately. You should prioritize working on assignments early and getting them in ahead of time so that you have the maximum amount of time to ask questions and get help. You should not be panicking at the end of the semester because you have a grade less than what you need. From week 1, make sure you're committed to staying on top of things.
Where do I find feedback on my work?
Canvas should send you an email when there is feedback on your work, but you can also locate assignment feedback by going to your Grades view on Canvas, locating the assignment, and clicking on the speech balloon icon to open up comments. These will be important to look over during the semester, especially if you want to resubmit an assignment for a better grade.
How do I contact the instructor?
The best way to contact the instructor is via Canvas' email system. You can also email the instructor at rsingh13@jccc.edu, however, emails are more likely to be lost in the main inbox, since that's where all the instructor's work-related email goes. You can also attend Zoom office hours to ask questions.
Where do I go if I have questions on an assignment?
First, look at the Canvas Discussion Board and post there if you need help with an assignment. Posting snippets of code is O.K., as well as posting error messages. Also reach out to students on your team or students you've worked with previously. (Don't just give each other the solutions, but brainstorm together.)
How do I keep track of assignments and due dates so I don't forget something?
Canvas has a CALENDAR view, but it might also be useful to utilize something like Google Calendar, which can text and email you reminders, or even keeping a paper day planner that you check every day.
What are some suggestions for approaching studying and assignments for this course?
Each week is generally designed with this "path" in mind:
1. Watch lecture videos, read assigned reading.
2. Work on Concept Introduction assignment(s).
3. Work on Exercise assignment.
Those are the core topics for the class. The Tech Literacy assignments can be done a bit more casually, and the Topic Mastery (exams) don't have to be done right away - do the exams once you feel comfortable with the topic.
How do I find a tutor?
JCCC's Academic Achievement Center (https://www.jccc.edu/student-resources/academic-resource-center/academic-achievement-center/) provides tutoring services for our area. Make sure to look for the expert tutor service and you can learn more about getting a tutor.

๐Ÿฆฎ Accommodations and life help (๐Ÿ”—)

How do I get accommodations? - Access Services https://www.jccc.edu/student-resources/access-services/
Access Services provides students with disabilities equal opportunity and access. Some of the accommodations and services include testing accommodations, note-taking assistance, sign language interpreting services, audiobooks/alternative text and assistive technology.
Is there someone I can talk to for emotional support? - Personal Counseling
https://www.jccc.edu/student-resources/personal-counseling/
JCCC counselors provide a safe and confidential environment to talk about personal concerns. We advocate for students and assist with personal issues and make referrals to appropriate agencies when needed.
How can I report ethical concerns? - Ethics Report Line
https://www.jccc.edu/about/leadership-governance/administration/audit-advisory/ethics-line/
You can report instances of discrimination and other ethical issues to JCCC via the EthicsPoint line.
What if I'm having trouble making ends meet in my personal life? - Student Basic Needs Center
https://www.jccc.edu/student-resources/basic-needs-center/
Open in COM 319 -- Check website for schedule. The JCCC Student Assistance Fund is to help students facing a sudden and unforeseen emergency that has affected their ability to attend class or otherwise meet the academic obligations of a JCCC student. If you are experiencing food or housing insecurity, or other hardships, stop by COM 319 and visit with our helpful staff.
How do I get a tutor? - The Academic Achievement Center https://www.jccc.edu/student-resources/academic-resource-center/academic-achievement-center/
The AAC is open for Zoom meetings and appointments. See the website for their schedule. Meet with a Learning Specialist for help with classes and study skills, a Reading Specialist to improve understanding of your academic reading, or a tutor to help you with specific courses and college study skills. You can sign up for workshops to get off to a Smart Start in your semester or analyze your exam scores!
Is there someone I can talk to for my degree plan? - Academic Advising
https://www.jccc.edu/student-resources/academic-counseling/
JCCC has advisors to help you with:
  • Choose or change your major and stay on track for graduation.
  • Ensure a smooth transfer process to a 4-year institution.
  • Discover resources and tools available to help build your schedule, complete enrollment and receive help with coursework each semester.
  • Learn how to get involved in Student Senate, clubs and orgs, athletics, study abroad, service learning, honors and other leadership programs.
  • If thereโ€™s a hold on your account due to test scores, academic probation or suspension, you are required to meet with a counselor.
What other student resources are there? - Student Resources Directory
https://www.jccc.edu/student-resources/

๐Ÿซ Additional JCCC information (๐Ÿ”—)

ADA compliance / disabilities

JCCC provides a range of services to allow persons with disabilities to participate in educational programs and activities. If you are a student with a disability and if you are in need of accommodations or services, it is your responsibility to contact Access Services and make a formal request. To schedule an appointment with an Access Advisor or for additional information, you can contact Access Services at (913) 469-3521 or accessservices@jccc.edu. Access Services is located on the 2nd floor of the Student Center (SC202)

Attendance standards of JCCC

Educational research demonstrates that students who regularly attend and participate in all scheduled classes are more likely to succeed in college. Punctual and regular attendance at all scheduled classes, for the duration of the course, is regarded as integral to all courses and is expected of all students. Each JCCC faculty member will include attendance guidelines in the course syllabus that are applicable to that course, and students are responsible for knowing and adhering to those guidelines. Students are expected to regularly attend classes in accordance with the attendance standards implemented by JCCC faculty.

The student is responsible for all course content and assignments missed due to absence. Excessive absences and authorized absences are handled in accordance with the Student Attendance Operating Procedure.

Academic dishonesty

No student shall attempt, engage in, or aid and abet behavior that, in the judgment of the faculty member for a particular class, is construed as academic dishonesty. This includes, but is not limited to, cheating, plagiarism or other forms of academic dishonesty.

Examples of academic dishonesty and cheating include, but are not limited to, unauthorized acquisition of tests or other academic materials and/or distribution of these materials, unauthorized sharing of answers during an exam, use of unauthorized notes or study materials during an exam, altering an exam and resubmitting it for re-grading, having another student take an exam for you or submit assignments in your name, participating in unauthorized collaboration on coursework to be graded, providing false data for a research paper, using electronic equipment to transmit information to a third party to seek answers, or creating/citing false or fictitious references for a term paper. Submitting the same paper for multiple classes may also be considered cheating if not authorized by the faculty member.

Examples of plagiarism include, but are not limited to, any attempt to take credit for work that is not your own, such as using direct quotes from an author without using quotation marks or indentation in the paper, paraphrasing work that is not your own without giving credit to the original source of the idea, or failing to properly cite all sources in the body of your work. This includes use of complete or partial papers from internet paper mills or other sources of non-original work without attribution.

A faculty member may further define academic dishonesty, cheating or plagiarism in the course syllabus.

Campus Health Guidelines for COVID-19

Follow College COVID-19 safety guidelines.
https://www.jccc.edu/media-resources/covid-19/


Stay home when you're sick

Wash hands frequently

Cover your mouth when coughing or sneezing

Clean surfaces

Facial coverings are available and welcomed but not required

Wear your name badge or carry your JCCC photo id while on campus

College emergency response plan

https://www.jccc.edu/student-resources/police-safety/police-department/college-emergency-response-plan/


Student code of conduct policy

http://www.jccc.edu/about/leadership-governance/policies/students/student-code-of-conduct/student-code-conduct.html


Student handbook

http://www.jccc.edu/student-resources/student-handbook.html

Campus safety

Information regarding student safety can be found at http://www.jccc.edu/student-resources/police-safety/. Classroom and campus safety are of paramount importance at Johnson County Community College and are the shared responsibility of the entire campus population. Please review the following:

  • Report Emergencies: to Campus Police (available 24 hours a day)
  • Be Alert:
    • You are an extra set of eyes and ears to help maintain campus safety
    • Trust your instincts
    • Report suspicious or unusual behavior/circumstances to Campus Police (see above)
  • Be Prepared:
    • Identify the red/white stripe Building Emergency Response posters throughout campus and online that show egress routes, shelter, and equipment
    • View A.L.I.C.E. training (armed intruder response training - Alert, Lockdown, Inform, Counter and/or Evacuate) โ€“ Student training video: https://www.youtube.com/watch?v=kMcT4-nWSq0
    • Familiarize yourself with the College Emergency Response Plan
  • During an Emergency: Notifications/Alerts (emergencies and inclement weather) are sent to all employees and students using email and text messaging
  • Weapons Policy: Effective July 1, 2017, concealed carry handguns are permitted in JCCC buildings subject to the restrictions set forth in the Weapons Policy. Handgun safety training is encouraged of all who choose to conceal carry. Suspected violations should be reported to JCCC Police Department 913-469-2500 or if an emergency, you can also call 911.

๐Ÿซ Course catalog info

Objectives

  1. Describe computer systems and examine ethics.

  2. Solve problems using a disciplined approach to software development.

  3. Utilize fundamental programming language features.

  4. Implement procedures.

  5. Employ fundamental data structures and algorithms.

  6. Write code using object-oriented techniques.

  7. Write code according to commonly accepted programming standards.

  8. Utilize a professional software development environment.

Content Outline and Competencies:

I. Computer Systems and Ethics

A. Describe basic software components.

1. Describe operating systems.

2. Describe high-level and machine languages.

3. Describe compilers.

B. Examine ethics.

1. Examine ethics in the context of software development.

2. Examine the impact of ethics violations on software developers.

3. Examine the impact of ethics violations on software users.

II. Problem-Solving in Software Development

A. Define the problem.

B. Develop a solution.

1. Utilize top-down design.

2. Consider previous problems and solutions.

3. Reuse pertinent algorithms.

4. Represent algorithms with pseudo-code.

5. Identify input, output, processing and modules.

C. Code the solution.

D. Test the solution.

1. Perform unit and integration testing.

2. Select appropriate test data.

3. Trace code by hand (desk-checking) and with a debugger.

4. Evaluate code efficiency and simplicity.

III. Fundamental Programming Features

A. Declare and initialize variables and constants.

B. Use built-in operators to create expressions and statements.

1. Write assignment statements.

2. Create expressions with arithmetic, relational and logical operators.

3. Use the conditional (ternary) operator.

4. Evaluate expressions using rules of operator precedence.

5. Compare strings and numeric types.

6. Dereference and assign values to pointers.

C. Perform input and output.

1. Retrieve data from the keyboard.

2. Retrieve data from input files.

3. Write data to the console window.

4. Write data to output files.

D. Call built-in mathematical functions.

E. Implement type-casting.

F. Control program flow.

1. Implement selection statements.

a. Write code with if, else and else-if statements.

b. Use switch statements.

c. Write nested selection statements.

2. Implement repetition statements

a. Write while, for and do loops.

b. Create nested loops.

c. Analyze break and continue semantics.

G. Trap errors using selection or repetition.

IV. Procedures

A. Define and call functions with void and non-void return values.

B. Declare functions (prototyping).

C. Implement pass-by-value and pass-by-reference parameters.

D. Differentiate between actual and formal parameters.

E. Analyze and write elementary recursive code.

F. Analyze variable scope and lifetime.

G. Implement static variables.

V. Fundamental Data Structures and Algorithms

A. Implement single dimensional arrays.

1. Implement an array of integers.

2. Implement null-terminated strings.

B. Implement two-dimensional arrays.

C. Implement dynamic arrays.

1. Use new and delete to manage memory.

2. Declare pointers.

D. Search arrays.

1. Implement sequential search.

2. Implement binary search.

E. Sort arrays.

1. Sort data using bubble sort.

2. Sort data using selection sort.

3. Sort data using insertion sort.

F. Implement structures.

G. Implement an array of structures.

VI. Object-oriented Programming

A. Write code using the built-in string class and associated methods.

B. Write code using the built-in vector class and associated methods.

C. Implement encapsulation and data abstraction by writing user-defined classes.

D. Differentiate between private and public access modifiers.

E. Hide member data.

F. Write accessors, mutators and other member functions that process member data.

G. Write code that utilizes objects.

H. Implement an array of objects.

VII. Code Standards

A. Create descriptive identifiers according to language naming conventions.

B. Write structured and readable code.

C. Create documentation.

VIII. Professional Development Environment

A. Write code using a professional, integrated development environment (IDE).

B. Utilize key editor features.

C. Debug code using the integrated debugger.

D. Include and use standard libraries.