Syllabus CS 134, Summer 2022

Last updated 2022-05-25

🔙 Back to homepage | Back to Canvas



🧑‍🏫 Course information (🔗)

CollegeJohnson County Community College
Division CSIT (Computer Science / Information Technology)
Instructor

Rachel Wil Singh (they/them)
RC 348 H (Office) / rsingh13@jccc.edu (email)
Office hours To Be Determined

SemesterSummer, 2022
DatesJune 6, 2022 - July 28, 2022
CourseCS 134: Programming Fundamentals
Course description

In this introductory course, students will create interactive computer applications that perform tasks and solve problems. Students will design, develop and test object-oriented programs that utilize fundamental logic, problem-solving techniques and key programming concepts. 3 hrs. lecture, 2 hrs. open lab /wk.

Catalog linkhttps://catalog.jccc.edu/coursedescriptions/cs/#CS_134
Credit hours4
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.

📗 Course supplies (🔗)

TextbookThere is no official textbook for this course but links to reading materials and/or video overviews will be provided throughout the semester.
Coding toolsWe 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.
ZoomOffice 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)

💻 Course format (🔗)

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.

📅 Tentative schedule (🔗)

WeekWeek ofTopicsNotes
1 June 6th

Unit 0: Welcome and setup

Unit 1: Computer basics

2 June 13th

Unit 2: Python basics

June 13 Last day to drop an 8-week summer course and receive a refund.
3 June 20th

Unit 3: Storing data in classes

4 June 27th

Unit 4: Storing data in lists

5 July 4th

Unit 5: Control flow - Branching and looping

July 4 Independence day holiday, college offices closed
6 July 11th

Unit 6: The INs and OUTs of functions

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

Unit 7: Object Oriented Programming basics

8 July 25th

Unit 8: Putting it all together

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


📜 Course policies (🔗)

☑️ Assessment breakdown (🔗)

Assignment TypeWeightApprox. amountDescription
🧑‍🏫 Check-ins 5% 7 (~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 25% 12 (~2.08% per) Introductions to each of the topics with review questions, at least one each unit.
🏋️ Exercises 25% 8 (~3.13% per) Programming exercises to help you practice the new topics. At least one each unit.
🔎 Peer Review 10% 8 (~1.25% per) Share specific pieces of your work with your classmates, compare, give constructive feedback to your peers. One per each exercise.
🧠 Tech Literacy 10% 8 (~1.25% per) Non-programming assignments related to the tech field. At least one each unit.
💻 Projects 5% 1 (~5% per) Larger programming assignments that tie multiple topics together. Usually every few weeks.
💯 Mastery Check 20% 7 (~2.86% per) Exam-style quizzes where you illustrate what you've learned of the topics. Usually one per unit.

🅰️ Final letter grade breakdown (🔗)

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:

FDCBA
0% ≤ grade < 59.5% 59.5% ≤ grade < 69.5% 69.5% ≤ grade < 79.5% 79.5% ≤ grade < 89.5% 89.5% ≤ grade ≤ 100%

😬 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.

0️⃣ Why do all my assignments start off at 0%? (🔗)

At the start of the semester I set all the assignments to 0% for all students. I do this for a few reasons:

  • I'd like students to think of completing each assignment as "gaining experience".
  • I don't want a student's grade to go down for getting work done. It should only ever go up.
  • Paints a clearer picture of how far through the class each student is at.

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.

💬 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.

⌚ Due dates, late assignments, and re-submissions (🔗)

  • Assignments have due dates set. This is the time you should turn in your assignment, even if it is incomplete.
  • Assignments will receive feedback after submission and you can resubmit assignments for an improved grade afterwards. Therefore, it's important to submit what you have by the due date.
  • Assignments turned in after the due date will automatically have 7% deducted from the grade per day late. Make sure to turn in assignments by the due date, even if it's incomplete. You can resubmit an assignment after getting feedback.
  • Assignments won't close until the end date (or "open until date"), which is set for July 27th, 11:59 pm for this semester. Assignments will not be reopened after this time.
  • It is your own responsibility to keep track of due dates and the end date. The instructor cannot act as a personal secretary for each individual student. If you have trouble keeping track, please look at this page for resources: Student Success

🧍🧍🧍 Attendance policy (🔗)

  • The instructor tracks attendance during the first two weeks of class, but afterwards does not.
  • JCCC policy is to auto-drop students who are not in attendance during the first week of class.
  • To make sure you do not get auto-dropped during the first two weeks of class, make sure to complete Unit 0, which will count as your "attendance".

😷 COVID and this course (🔗)

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.

🧍🧍 Code of conduct (🔗)

Since you will be interacting with other students in this course, please make sure to review this Code of Conduct:


Pledge

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.

Standards

Examples of behavior that contributes to a positive environment for our community include:

  • Demonstrating empathy and kindness toward other people
  • Being respectful of differing opinions, viewpoints, and experiences
  • Giving and gracefully accepting constructive feedback
  • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
  • Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

  • The use of sexualized language or imagery, and sexual attention or advances of any kind
  • Trolling, insulting or derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others’ private information, such as a physical or email address, without their explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional/academic setting

Scope

This Code of Conduct applies within all course spaces, including on campus, in the discussion boards, via email, and the course Discord channel.

Enforcement

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)

😇 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 Rachel 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 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.


💯 Student success (🔗)

📝 Learning effectively (🔗)

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.

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.

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.

Are there office hours for this semester?

To Be Determined

🆘 Getting help with assignments (🔗)

Where do I go if I have questions on an assignment?

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.

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.

How do I keep track of assignments and due dates so I don't forget something?


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.

 

🦮 Accommodations and life help (🔗)

How do I get accommodations?

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.

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.

Is there someone I can talk to for emotional support?

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.

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 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.

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 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 (🔗)

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.

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

Course catalog information (🔗)

View the full course catalog entry at: http://catalog.jccc.edu/coursedescriptions/cs/#CS_134

Objectives

  1. Describe software development careers and types of software applications.
  2. Describe internal and external data representation.
  3. Apply object-oriented software development in a graphical framework.
  4. Apply different problem-solving techniques.
  5. Write computer programs that utilize fundamental statements and processes.
  6. Break solutions into more manageable code using methods.
  7. Create solutions using object-oriented methodology.
  8. Write object-oriented programs that respond to events.

Content Outline and Competencies:

I. Software Development Careers and Software Applications

A. Describe different types of careers available to software developers.

B. Identify real-world applications that are based upon computer programs.

II. Internal and External Data Representation

A. Convert characters to and from ASCII (American Standard Code for Information Interchange) code.

B. Convert among binary, decimal and hexadecimal numbers.

C. Discuss data storage.

III. Object-Oriented Software Development in a Graphical Framework

A. Utilize an Integrated Development Environment (IDE) that presents a code editor and an execution world in a visual manner.

B. Manage project components.

C. Describe the visual interactive execution environment as presented on a computer screen.

1. Describe the two-dimensional grid world composed of pixels.

2. Describe the properties of images.

D. Use the Application Program Interface (API) documentation to select appropriate classes and methods needed to solve the current programming problem.

E. Single step program execution.

F. Inspect object instance data during program execution.

G. Describe the class hierarchy presented in the IDE.

IV. Problem-Solving Techniques for Software Development

A. Develop logic to solve computer programs.

B. Represent problems and solutions.

1. Use flowcharts to represent logical flow.

2. Use hierarchy charts to represent relationships among classes.

3. Use pseudo-code to represent algorithms.

C. Discuss top-down design.

D. Explain the software development life cycle.

E. Break a larger problem into smaller, more manageable units.

F. Develop and implement plans to test solutions.

G. Trace program flow manually and with a debugger.

H. Identify needed classes.

1. Identify needed instance and static data for the class.

2. Identify needed instance and static methods for the class.

V. Fundamental Statements and Processes

A. Declare variables using appropriate data types.

B. Use assignment operators.

C. Use arithmetic, relational and logical operators.

D. Use branching statements.

E. Use at least two different types of looping statements.

F. Process user input.

G. Generate user output.

H. Declare and manipulate arrays.

I. Generate random numbers to incorporate random behavior in objects.

J. Dynamically create and remove objects during program execution.

K. Utilize accumulator variables.

VI. Methods

A. Utilize built-in methods from the Application Program Interface (API).

B. Write methods.

C. Call methods and pass parameters.

D. Process returned values.

VII. Object-Oriented Methodology

A. Discuss advantages of object-oriented techniques.

B. Utilize objects and methods from built-in classes.

C. Create user-defined classes.

1. Create and utilize static and non-static instance variables.

2. Create and utilize static and non-static methods.

3. Create constructors to initialize instance variables.

4. Properly use public and private access modifiers.

5. Use inheritance.

D. Instantiate objects from classes.

E. Implement object interaction.

F. Analyze real-world visual applications (such as animations, games, simulations, models and apps) to identify language constructs and strategies that will help to solve the problem.

1. Identify objects, their data and methods used in the application.

2. Define appropriate classes and code the methods.

3. Create a user application that implements the visual application that was originally analyzed.

VIII. Event-Driven Programming

A. List different types of event triggers.

B. Use built-in classes to capture events.

C. Write event handlers to process events, including key pressed, mouse clicked and mouse moved.