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 134: Programming Fundamentals (4 credit hours) |
Section info | Section 380 / CRN 81856 / Hybrid / Wednesdays, 6:00 - 8:50 pm, RC 353 |
Description |
In this introductory course, students will create computer applications that perform tasks and solve problems. Students will utilize fundamental logic, problem-solving techniques, and key programming concepts to design, develop and test modular applications using a professional high-level programming language. 3 hrs. lecture, 2 hrs. open lab /wk. (Course catalog)
Prerequisites: None |
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 | |
---|---|
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 HYBRID. 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 134! | Aug 21 - First day of fall semester |
2 / Aug 28 | Exploring software | Aug 28 - Last day to drop and receive full refund |
3 / Sept 4 | Designing programs | |
4 / Sept 11 | Storing data in variables | |
5 / Sept 18 | Building programs 1 | |
6 / Sept 25 | (TBD) | |
7 / Oct 2 | Branching with if statements | |
8 / Oct 9 | Repeating code with while loops | |
9 / Oct 16 | Storing lists of data, for loops | Oct 16 - Application deadline for fall graduation |
10 / Oct 23 | Building programs 2 | |
11 / Oct 30 | Delegating tasks with functions | |
12 / Nov 6 | Object Oriented Programming w/ classes | |
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 6 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 the outlook of computing careers.
Describe and convert among data representations.
Apply different algorithm development and problem-solving techniques.
Write computer programs that utilize fundamental statements and processes.
Use procedures to divide solutions into more manageable code.
Apply appropriate programming style.
I. Computer Science Outlook
A. Explore the history of computing and its relationship to computing innovations and careers.
B. Explore the contributions of computer science innovators.
C. Explore the integration of computer science into other fields.
D. List and describe multiple types of positions including the degree required.
E. Differentiate salaries based upon position, geographic location and experience.
F. Describe the regional and national career outlook.
II. Data Representation
A. Associate characters with their ASCII (American Standard Code for Information Interchange) numeric values.
B. Relate binary data representation to the physical storage of data in computer memory.
C. Convert unsigned numbers among numeric systems.
1. Convert binary to decimal.
2. Convert decimal to binary.
3. Convert binary to hexadecimal.
4. Convert hexadecimal to binary.
5. Convert decimal to hexadecimal.
6. Convert hexadecimal to decimal.
7. Demonstrate overflow using basic binary addition.
III. Algorithm Development and Problem-Solving Techniques for Software Development
A. Define fundamental terms.
1. Algorithm
2. Flowchart
3. Pseudo-code
4. Top-down design (Divide and conquer)
5. Boundary value
B. Represent program flow with flowcharts.
C. Represent algorithms with pseudo-code.
D. Transform pseudo-code into code solution comments.
E. Implement top-down design by dividing a larger problem into smaller, more manageable units.
F. Apply the phases of the software development life cycle.
G. Develop and test code incrementally.
H. Test solutions using elementary techniques.
1. Test expected and unexpected values.
a. Test negative, zero and positive numeric values.
b. Test equality.
c. Test string values including upper and lower case.
d. Test different data types.
e. Test boundary values.
2. Create input/output decision tables.
a. Identify inputs that evaluate to true.
b. Identify inputs that evaluate to false.
3. Test functions.
a. Test valid and invalid parameters.
b. Test return values.
c. Test functions independently and as part of an algorithm.
I. Trace program flow manually.
J. Implement basic debugging techniques.
a. Utilize error messages to fix code.
b. Insert print statements.
IV. Fundamental Statements and Expressions
A. Define fundamental terms.
1. Binary operator
2. Unary operator
3. Operand
4. Variable
5. Identifier
6. Data Type
7. Boolean
8. Integer
9. Floating-point number
10. String
11. Empty string
12. Iteration
13. Syntax
14. Syntax error
15. Compiler
16. Interpreter
17. Logic error
18. Literal value
19. Constant
20. Reserved word
B. Create and utilize variables holding string, integer, floating-point and Boolean values.
C. Evaluate expressions by applying rules of operator precedence.
1. Manually evaluate expressions with multiple arithmetic operators.
2. Manually evaluate expressions with relational operators.
a. Compare numeric values.
b. Compare characters by using the ASCII table.
c. Compare strings by using the standard string comparison algorithm.
3. Manually evaluate compound expressions with multiple logical operators.
4. Manually evaluate expressions containing a combination of arithmetic, relational and logical operators.
D. Write code that utilizes arithmetic, relational and logical expressions.
E. Write assignment statements.
F. Implement selection statements.
1. Write code using a one-way branch (if).
2. Write code using a two-way branch (if else).
3. Write code using a multi-way branch (else if).
4. Analyze program flow.
a. Represent algorithm flow with flow charts.
b. Manually trace program flow.
c. Follow program flow using a debugger.
5. Write selection statements with compound conditions.
6. Analyze code with nested selection statements.
G. Implement repetition statements.
1. Write code using for loops.
2. Write code using while loops.
3. Analyze program flow.
a. Represent algorithm flow with flow charts.
b. Manually trace program flow.
c. Follow program flow using a debugger.
4. Write loops with selection statements inside the loop body.
5. Analyze code with nested repetition statements.
H. Utilize randomly generated numbers.
I. Process input and output.
1. Retrieve data from standard input.
2. Apply data type transformations necessary to process input.
3. Write data to standard output.
4. Apply basic formatting to output, including decimal values, indentation, and escape characters.
5. Utilize basic text file input/output.
J. Utilize sequenced data collections (lists or arrays)
1. Create a sequenced collection of strings.
2. Create a sequenced collection of numeric values.
3. Differentiate between elements and indexes.
4. Utilize indexes to access and modify individual elements.
5. Swap values at two different indexes by using one additional variable.
6. Process sequenced data using loops.
a. Use indexes to display all stored elements.
b. Use indexes to change all stored elements to a given value.
c. Use indexes to sum all stored numbers.
d. Use indexes to increase or decrease all stored numbers by a given amount.
e. Integrate a selection statement to compare a given value to all elements.
V. Procedures
A. Define fundamental terms.
1. Function
2. Method
3. Signature
4. Actual parameter / Argument
5. Formal parameter
6. Identifier scope
7. Local variable
8. Global variable
B. Call built-in procedures.
1. Call built-in procedures requiring zero arguments.
2. Call built-in procedures requiring one argument.
3. Call built-in procedures requiring two or more arguments.
C. Create and call programmer-defined procedures.
1. Create and call programmer-defined procedures with zero parameters.
2. Create and call programmer-defined procedures with one parameter.
3. Create and call programmer-defined procedures with two or more parameters.
4. Create and call programmer-defined procedures that process sequenced data collections (lists or arrays) as parameters.
5. Create and call programmer-defined procedures containing no return statements.
6. Create and call programmer defined procedures containing return statements.
D. Process returned values.
VI. Programming Style
A. Write structured and readable code.
B. Create comments and documentation.
C. Apply a given coding style guide.