College | Johnson 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 |
Semester | Fall 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 deadlines | To 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-withdraws | To 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. |
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. |
Zoom | Make 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. :) |
Computer skills - You should have a base level knowledge of using a computer, including:
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:
How to ask questions - When asking questions about a programming assignment via email, please include the following information so I can answer your question:
This course is HYFLEX. This means:
For my classes:
View more about JCCC course delivery types here: https://www.jccc.edu/student-resources/course-delivery-methods.html
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:
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:
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% |
Schedule may be adjusted during the semester to better accommodate class pace.
Week/Date | Suggested topics | Week 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 |
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.
See the JCCC Course Delivery Methods page (https://www.jccc.edu/student-resources/course-delivery-methods.html) for more details.
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:
NOT OK:
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.
Program 1 - if statement | Program 2 - if/else statement | Program 3 - if/else if statement |
---|
Program 1, Student A | Program 1, Student B | Program 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%. |
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)
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.
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.
Follow College COVID-19 safety guidelines.
https://www.jccc.edu/media-resources/covid-19/
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:
Describe computer systems and examine ethics.
Solve problems using a disciplined approach to software development.
Utilize fundamental programming language features.
Implement procedures.
Employ fundamental data structures and algorithms.
Write code using object-oriented techniques.
Write code according to commonly accepted programming standards.
Utilize a professional software development environment.
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.