Last updated 2022-06-08
๐ Back to homepage |
Back to Canvas
Course information
Course policies
Student success
College | Johnson County Community College |
---|---|
Division | CSIT (Computer Science / Information Technology) |
Instructor |
Rachel Wil Singh (they/them)
|
Semester | Summer, 2022 |
Dates | June 6, 2022 - July 28, 2022 |
Course | CS 200: Concepts of Programming Algorithms Using C++ |
Course 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. |
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. |
Catalog link | https://catalog.jccc.edu/coursedescriptions/cs/#CS_200 |
Credit hours | 4 |
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. |
Textbook | The textbook for this course is available for free online at this link: https://rachels-courses.gitlab.io/webpage/textbooks/index.html. Lecture videos are also provided throughout this course. |
---|---|
Coding tools | We will be using the repl.it web-based development environments for our coding this semester. Make sure to create a free replit account before or during the first week of class. |
Zoom | Office hours will only be held via Zoom this semester - no on-campus office hours. You can follow JCCC's Zoom guide to get it set up and configured: How to Zoom (JCCC) |
This course is an online-only delivery method
(more info: https://www.jccc.edu/student-resources/course-delivery-methods.html) and everything will be presented via the internet.
Each week has one unit being covered (except week 1, which has Unit 0 for setup and Unit 1 for getting started). For summer semesters you should try to keep up with the intended class schedule so that you don't fall behind.
Week | Week of | Topics | Notes |
---|---|---|---|
1 | June 6th | ||
2 | June 13th | June 13 Last day to drop an 8-week summer course and receive a refund. | |
3 | June 20th | ||
4 | June 27th | ||
5 | July 4th | July 4 Independence day holiday, college offices closed | |
6 | July 11th | July 15 Last day to request a pass/fail grade option or to withdraw with a โWโ from an 8-week summer course. | |
7 | July 18th | ||
8 | July 25th | July 28 - Last day of summer session | |
- | - |
Aug 1 - Summer grades entered online by professors by 5 pm Aug 3 - Summer grades available to students by noon on the web |
Assignment Type | Weight | Approx. amount | Description |
---|---|---|---|
๐งโ๐ซ Check-ins | 5% | 8 (~0.71% per) | Periodic check ins to see how you're doing in the course and what I could be doing better to help you. |
๐ Concept introductions | 20% | 16 (~1.25% per) | Introductions to each of the topics with review questions, at least one each unit. |
๐๏ธ Exercises | 15% | 7 (~2.14% per) | Programming exercises to help you practice the new topics. At least one each unit. |
๐ Peer Review | 5% | 8 (~0.71% per) | Share specific pieces of your work with your classmates, compare, give constructive feedback to your peers. One per each exercise. |
๐ง Tech Literacy | 5% | 8 (~0.63% per) | Non-programming assignments related to the tech field. At least one each unit. |
๐ป Projects | 10% | 3 (~3.33% per) | Larger programming assignments that tie multiple topics together. Usually every few weeks. |
๐ฏ Mastery Check | 40% | 7 (~5.71% per) | Exam-style quizzes where you illustrate what you've learned of the topics. Usually one per unit. |
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:
F | D | C | B | A |
---|---|---|---|---|
0% โค grade < 59.5% | 59.5% โค grade < 69.5% | 69.5% โค grade < 79.5% | 79.5% โค grade < 89.5% | 89.5% โค grade โค 100% |
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.
At the start of the semester I set all the assignments to 0% for all students. I do this for a few reasons:
Since you can re-submit weekly assignments like exercises and concept introductions, if you get a low score the first time you can always keep working on it to get more experience and a higher grade.
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.
This course is online-only this semester, so COVID won't really affect how we interact. Office hours will be held only online via Zoom, or you can also post questions to the discussion board.
If we do need to meet up on campus to work through something tricky, the instructor will be wearing a mask indoors, and prefers for the student to also wear a mask.
Since you will be interacting with other students in this course, please make sure to review this Code of Conduct:
We as students and instructors to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our community include:
Examples of unacceptable behavior include:
This Code of Conduct applies within all course spaces, including on campus, in the discussion boards, via email, and the course Discord channel.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the instructor at rsingh13@jccc.edu. All complaints will be reviewed and investigated promptly and fairly. The instructor is obligated to respect the privacy and security of the reporter of any incident.
(Adapted from the Contributor Covenant Code of Conduct)
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 Rachel 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.
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.
Each week is generally designed with this "path" in mind:
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.
Keep notes - As you go through the assigned reading, lecture videos, and Concept Introductions, make sure to keep notes! Keep a quick reference for yourself so you don't have to sift through the material to find information.
Exams - The exams are available via Canvas and are untimed. My expectation is that if you don't know the answer to a question you should do research - go back and review the assigned reading, or view the lecture videos, or go through the related Concept Introduction. You can also open up your IDE (replit, visual studio, code::blocks) to test out code before you give a final answer.
To Be Determined
Each Unit has a corresponding discussion board forum where you can post questions. This is the first place you should post questions, so that other people with similar questions can also see the answer.
You can also email the instructor (ideally via Canvas' inbox) or join office hours (via Zoom) with questions.
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.
CANVAS CALENDAR
Canvas has a calendar view you can utilize to check for assignment due dates coming up.
GOOGLE CALENDAR
Google Calendar and other calendar services can send you text and email notifications, so it might be useful to keep track of your assignments and due dates with one of these.
PAPER DAY PLANNERS
Paper day planners can be handy if you're able to get yourself to check them regularly.
Here are some that I made that you can print out and use:
I, personally, have a Mini 3-ring binder that I fill with my day planner pages and carry around with me everywhere that contains my day planner and my notes otherwise.
Access Services (https://www.jccc.edu/student-resources/access-services/)
Access Services values the diversity disability brings to the college campus. Access Services provides students with disabilities equal opportunity and access to college programs and services so all students can participate in the full college experience available at Johnson County Community College.
Some of the accommodations and services we offer include testing accommodations, note-taking assistance, sign language interpreting services, audiobooks/alternative text and assistive technology. All accommodations are determined on a case-by-case basis during a meeting with an Access Services advisor.
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!
Academic Advising (https://www.jccc.edu/student-resources/academic-counseling/)
JCCC has advisors to help you with:
Personal Counseling (https://www.jccc.edu/student-resources/personal-counseling/)
Sometimes personal issues can affect academic progress. 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.
We hope the following information will help you. It is not intended to take the place of discussing your concerns with a counselor. If you are struggling and need help with the personal issues, including the following issues listed on our site, we want to help you.
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 has been established 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.
We are here to empower you, so you can focus on being healthy, successful and less stressed. The center is a safe, friendly place to meet your basic needs. Your mental and physical well-being is paramount.
If you are experiencing food or housing insecurity, or other hardships, stop by COM 319 and visit with our helpful staff. If you know someone who needs a helping hand, tell them about our services or come with them for support.
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.
Student Resources Directory (https://www.jccc.edu/student-resources/)
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.
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:
http://www.jccc.edu/student-resources/student-handbook.html
View the full course catalog entry at: http://catalog.jccc.edu/coursedescriptions/cs/#CS_200
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.