This course is approved by the Kansas Board of Regents for guaranteed transfer among all Kansas Regents public postsecondary institutions. Additional courses may also be eligible for transfer. Please visit a JCCC counselor or the JCCC Registrar's office, and the Transfer Kansas portal to learn more.
Courses
CS 134 Programming Fundamentals (4 Hours)
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.
CS 200 Concepts of Programming Algorithms Using C++* (4 Hours)
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.
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.
CS 201 Concepts of Programming Algorithms using C#* (4 Hours)
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.
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.
CS 202 Concepts of Programming Algorithms using Python* (4 Hours)
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.
This course emphasizes problem-solving using a high-level programming language and the software development process. Algorithm design and development, classes and inheritance, programming style, documentation, testing and debugging will be presented. Standard algorithms and data structures will be introduced. Data abstraction and object-oriented programming will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 205 Concepts of Programming Algorithms using Java* (4 Hours)
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.
This course emphasizes problem-solving using a high-level programming language and the object-oriented software development process. Algorithm design and development, classes and inheritance, programming style, documentation, testing and debugging will be presented. Standard algorithms and data structures will be introduced. Data abstraction and object-oriented programming will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 210 Discrete Structures I* (3 Hours)
Prerequisites : MATH 171 with a grade of "B" or higher or a higher level MATH course with a grade of “C” or higher.
This course focuses on the study of topics in Discrete Structures aimed at applications in Computer Science. Students will study logic, methods of proof including induction, set theory, relations, functions and Boolean algebra. They will develop general problem-solving skills.
CS 211 Discrete Structures II* (3 Hours)
Prerequisites : CS 210 with a grade of "C" or higher.
This second course in Discrete Structures is aimed at solving problems in Computer Science. Students will study computation, induction, recursion, integers, counting, graphs and trees. They will develop general problem-solving and programming skills.
CS 235 Object-Oriented Programming Using C++* (4 Hours)
Prerequisites : CS 200 or CS 201 or CS 205.
This course emphasizes programming methodology and problem solving using the object-oriented paradigm. Students will develop software applications using the object-oriented concepts of data abstraction, encapsulation, inheritance, and polymorphism. Students will apply the C++ techniques of dynamic memory, pointers, built-in classes, function and operator overloading, exception handling, recursion and templates. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 236 Object-Oriented Programming Using C#* (4 Hours)
Prerequisites : CS 201.
This course prepares students to develop object-oriented, C# applications that solve a variety of problems. Students will apply object-oriented concepts including inheritance, function overloading and polymorphism, and will utilize available classes as well as design their own. Event-driven programming, Windows applications, web development, common data structures, database access and frameworks will be presented. 3 hrs. lecture, 2 hrs. open lab/wk.
CS 250 Basic Data Structures using C++* (4 Hours)
Prerequisites : CS 235 or (CS 200 and CS 210 or CS 236 or CS 255 or CIS 240 or MATH 242).
This course continues developing problem solving techniques by focusing on object-oriented styles using C++ abstract data types. Basic data structures such as queues, stacks, trees, dictionaries, their associated operations, and their array and pointer implementations will be studied. Topics also include recursion, templates, fundamental algorithm analysis, searching, sorting, hashing, object-oriented concepts and large program organization. Students will write programs using the concepts covered in the lecture. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 252 Basic Data Structures Using Python* (4 Hours)
Prerequisites : CS 202.
This course continues developing advanced problem-solving techniques through object-oriented programming using Python. Basic data structures including stacks, queues, trees, and dictionaries will be studied and implemented. Additional topics include recursion, fundamental algorithm analysis, searching, sorting, and large program organization. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 255 Basic Data Structures Using Java* (4 Hours)
Prerequisites : CS 205 or CS 236 or CIS 240.
This course will cover advanced programming topics using Java. Files, recursion, data structures and large program organization will be implemented in projects using object-oriented methodology. Students will write programs using queues, stacks, lists and other concepts covered in the lecture. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
CS 134
- Title: Programming Fundamentals
- Number: CS 134
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
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.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
-
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.
Content Outline and Competencies:
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.
Method of Evaluation and Competencies:
Students will complete a minimum of 20 computer programs and complete at least two major exams.
20-60% Labs and Projects
10-40% Assignments and Exercises
20-60% Quizzes and Exams
Total: 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Students must be proficient in keyboarding and in performing tasks with a Windows or Macintosh operating system.
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 200
- Title: Concepts of Programming Algorithms Using C++*
- Number: CS 200
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
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.
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.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
-
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.
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.
Method of Evaluation and Competencies:
40-60% Exams (at least three)
20-30% Labs (Weekly coding activities covering current lecture topics)
10-20% Projects (Comprehensive coding activities covering multiple topics)
10-20% Exercises
0-20% Quizzes
Total: 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 201
- Title: Concepts of Programming Algorithms using C#*
- Number: CS 201
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
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.
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.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
-
Describe computer systems and examine ethics.
-
Solve problems using a disciplined approach to software development.
-
Utilize fundamental programming language features.
-
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.
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. Re-use 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
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
5. Connect to and process data from a database
D. Perform data conversions and type-casting.
E. 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, do and foreach loops
b. Create nested loops
c. Analyze break and continue semantics
F. Trap errors using selection or repetition.
G. Implement exception handling.
H. Write code using enumerations.
IV. Fundamental Data Structures and Algorithms
A. Implement single-dimensional arrays.
B. Implement two-dimensional arrays.
C. Search arrays.
1. Implement sequential search
2. Implement binary search
D. Sort arrays.
1. Sort data using bubble sort
2. Sort data using selection sort
3. Sort data using insertion sort
E. Implement lists.
F. Write LINQ (Language Integrated Query) queries.
V. Object-Oriented Programming
A. Write code using the Math and String class methods.
B. Implement encapsulation and data abstraction by creating user-defined classes.
C. Write code that utilizes user-defined classes.
D. Differentiate between public and private access modifiers.
E. Analyze variable scope and lifetime.
F. Create and utilize instance variables and properties.
1. Implement private instance variables (fields)
2. Implement static instance variables (fields)
3. Create auto-implemented properties
4. Create properties that use the “value” keyword
G. Create and utilize methods.
1. Write accessors, mutators and other methods that process fields
2. Pass parameter data by value
2. Pass parameter data by reference using the “ref” and “out” keywords
3. Recognize which data types default to pass-by-value and which default to pass-by-reference
4. Implement static methods
5. Analyze and write elementary recursive methods
6. Differentiate between actual and formal parameters
H. Implement an array of objects.
I. Implement composition.
J. Implement inheritance.
K. Implement polymorphism by using the virtual keyword to override methods.
VI. Code Standards
A. Create descriptive identifiers according to language naming conventions.
B. Write structured and readable code.
C. Create documentation.
VII. 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.
Method of Evaluation and Competencies:
Students will complete a minimum of 20 computer programs.
40-60% Exams (at least three)
20-30% Labs (Weekly coding activities covering current lecture topics)
10-20% Projects (Comprehensive coding activities covering multiple topics)
10-20% Exercises
0-20% Quizzes
Total = 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 202
- Title: Concepts of Programming Algorithms using Python*
- Number: CS 202
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
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.
Description:
This course emphasizes problem-solving using a high-level programming language and the software development process. Algorithm design and development, classes and inheritance, programming style, documentation, testing and debugging will be presented. Standard algorithms and data structures will be introduced. Data abstraction and object-oriented programming will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
-
Describe computer systems and examine ethics.
-
Solve problems using a disciplined approach to software development.
-
Utilize fundamental programming language features.
-
Implement functions.
-
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.
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 compiled and interpreted languages.
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 using current design methodologies.
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. Use built-in operators to create expressions and statements.
1. Write statements with assignment and compound assignment operators.
2. Recognize variable storage of heap references.
3. Create expressions with arithmetic, relational and logical operators.
4. Use the conditional (ternary) operator.
5. Evaluate expressions using rules of operator precedence.
6. Compare strings and basic numeric types.
B. Perform input and output.
1. Retrieve data from the keyboard.
2. Write data to the console window.
3. Retrieve data from input files.
4. Write data to output files.
C. Call built-in mathematical functions.
D. Utilize basic data types.
1. Write code containing integers, floating points, strings and Booleans.
2. Perform type conversions among the basic data types.
E. Control program flow.
1. Implement selection statements.
a. Write one-way, two-way and multi-way branching if statements.
b. Write nested if statements.
2. Implement repetition statements.
a. Write while and for loops.
b. Utilize the range function.
c. Create nested loops.
d. Analyze break and continue semantics.
F. Implement basic error handling.
1. Prevent errors by using selection statements.
2. Prevent errors by using repetition statements.
3. Catch file processing errors by using exception handling.
IV. Functions
A. Define and call functions.
1. Define and call functions containing zero and one or more return statements.
2. Define and call functions containing zero, one and multiple parameters.
3. Define and call functions containing default parameters.
B. Differentiate between actual and formal parameters.
C. Explain program utilization of the stack and the heap.
D. Analyze variable scope and lifetime.
E. Analyze and write elementary recursive code.
V. Fundamental Data Structures and Algorithms
A. Implement single-dimensional lists.
1. Create lists.
a. Create lists by using predefined values.
b. Create lists by calling append or insert methods.
c. Create lists by using elementary list comprehensions.
2. Create tuples.
3. Use bracket syntax to access and modify values.
4. Use bracket syntax to insert values (right-shift) into an oversized sorted list.
5. Use bracket syntax to delete values (left-shift) from a sorted list.
6. Use slice notation to select portions of lists.
7. Send lists to min, max, len and sum functions and process the returned values.
8. Use list class methods to process values.
9. Send lists to programmer-defined functions.
10. Return lists from programmer-defined functions.
11. Search lists.
a. Implement linear search.
i. Search lists by using bracket syntax.
ii. Search lists by using list class methods.
b. Implement binary search.
i. Search lists by using bracket syntax.
ii. Search lists by using the bisect module.
12. Sort lists.
a. Sort values by using bubble sort.
b. Sort values by using selection sort.
c. Sort values by using insertion sort.
d. Sort values by using the list class sort method.
e. Swap values by using a temporary variable.
f. Swap values by using x,y = y,x syntax.
B. Implement two-dimensional lists.
1. Create lists.
a. Create by using predefined values.
b. Create by using list class append or insert methods.
2. Use bracket syntax to access and modify values.
3. Write nested loops to process values.
C. Implement dictionaries.
1. Create dictionaries.
2. Insert, delete and modify dictionary key-value pairs.
VI. Object-oriented Programming
A. Implement encapsulation and data abstraction by creating programmer-defined classes.
B. Utilize __init__() and __str__() methods.
C. Simulate information hiding by creating instance variables with two preceding underscores.
D. Write accessors, mutators and other methods that process member data.
E. Implement a list of programmer-defined objects.
F. Implement composition.
G. Implement inheritance.
H. Override methods.
I. Demonstrate polymorphism with a list of programmer-defined objects that implement inheritance.
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. Debug code using the integrated debugger.
Method of Evaluation and Competencies:
Students will complete a minimum of 20 computer programs.
40-60% Exams (at least three)
20-30% Labs (Weekly coding activities covering current lecture topics)
10-20% Projects (Comprehensive coding activities covering multiple topics)
10-20% Exercises
0-20% Quizzes
Total = 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 205
- Title: Concepts of Programming Algorithms using Java*
- Number: CS 205
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
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.
Description:
This course emphasizes problem-solving using a high-level programming language and the object-oriented software development process. Algorithm design and development, classes and inheritance, programming style, documentation, testing and debugging will be presented. Standard algorithms and data structures will be introduced. Data abstraction and object-oriented programming will be studied and used to implement algorithms. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
-
Describe computer systems and examine ethics.
-
Create object-oriented problem solutions.
-
Utilize fundamental programming language features.
-
Implement methods.
-
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.
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 Object-Oriented Software Development
A. Define the problem.
1. Design class and interface specifications.
2. Identify composition and inheritance relationships.
3. Identify polymorphic methods.
4. Identify dynamic binding.
5. Identify procedural and data abstraction.
6. Identify abstract classes.
7. Identify the Java features needed to implement event-driven programs.
B. Develop a solution.
1. Utilize top-down design.
2. Consider previous problems and solutions.
3. Reuse pertinent algorithms.
4. Represent algorithms using current design methodologies.
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.
1. Utilize primitive data types.
2. Utilize programmer defined data types.
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 primitive types.
6. Compare reference and primitive types.
C. Perform input and output.
1. Retrieve data from the keyboard or a graphical user interface (GUI).
2. Retrieve data from input files.
3. Write data to the console window or GUI.
4. Write data to output files.
5. Connect to and process data from a database.
D. Utilize standard Java API (Application Programmer Interface) classes and interfaces.
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, repetition or exception handling.
IV. Methods
A. Define and call methods with void and non-void return values.
B. Implement static methods and instance methods.
C. Implement primitive value and reference value 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 and instance variables.
H. Write code that utilizes the “this” and “super” keywords.
I. Write code that utilizes method chaining.
J. Write code that utilizes overloaded methods.
K. Write code that utilizes methods from standard Java classes.
V. Fundamental Data Structures and Algorithms
A. Use standard Java data structures.
1. Use the String class.
2. Use the Array List class.
B. Implement single-dimensional arrays.
1. Implement an array of primitive data.
2. Implement an array of objects.
C. Implement two-dimensional arrays and multi-dimensional arrays.
D. Implement dynamic arrays.
1. Use new to acquire memory at run-time.
2. Declare reference variables.
E. Search arrays.
1. Implement sequential search.
2. Implement binary search.
F. Sort arrays.
1. Sort data using bubble sort.
2. Sort data using selection sort.
3. Sort data using insertion sort.
VI. Object-oriented Programming
A. Implement encapsulation and data abstraction by creating user-defined classes.
B. Differentiate between private, protected and public access modifiers.
C. Differentiate between static and non-static method and data modifiers.
D. Write accessors, mutators and other member methods that process member data.
E. Write code that utilizes objects.
F. Implement composition.
G. Implement inheritance.
H. Implement polymorphism.
I. Implement exception handling.
J. Utilize wrapper classes.
K. Implement object interaction.
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. Import and use the standard library.
Method of Evaluation and Competencies:
Students will complete a minimum of 20 computer programs.
40-50% Exams (at least three)
15-20% Labs (Weekly coding activities covering current lecture topics)
12-18% Projects (Comprehensive coding activities covering multiple topics)
10-15% Exercises
8-12% Quizzes
Total = 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 210
- Title: Discrete Structures I*
- Number: CS 210
- Effective Term: 2023-24
- Credit Hours: 3
- Contact Hours: 3
- Lecture Hours: 3
Requirements:
Prerequisites: MATH 171 with a grade of "B" or higher or a higher level MATH course with a grade of “C” or higher.
Description:
This course focuses on the study of topics in Discrete Structures aimed at applications in Computer Science. Students will study logic, methods of proof including induction, set theory, relations, functions and Boolean algebra. They will develop general problem-solving skills.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
- Apply the properties of propositional and predicate logic in reasoning.
- Select and apply a proof technique in the construction of a sound argument.
- Analyze and solve problems in Computer Science involving topics related to sets.
- Analyze and solve problems in Computer Science involving topics related to functions.
- Apply the rules and operations of Boolean Algebra in computer circuit design.
- Analyze and solve problems in Computer Science involving topics related to relations.
Content Outline and Competencies:
I. Propositional and Predicate Logic
A. Explain with examples the basic terminology of propositions, predicates and quantifiers.
B. Perform the operations associated with propositions, predicates and quantifiers.
C. Compare practical examples to the appropriate propositional or predicate logic model and interpret the associated operations and terminology in context.
D. Convert logical statements from informal language to propositional and predicate logic expressions.
E. Apply formal logic proofs and/or informal, but rigorous, logical reasoning to real problem, such as predicting the behavior of software or solving problems, such as puzzles.
F. Use the rules of inference to construct proofs in propositional and predicate logic.
G. Describe how symbolic logic can be used to model real-life situations or computer applications.
H Apply formal methods of symbolic propositional and predicate logic, such as calculating validity of formulae and computing normal forms.
II. Proof Techniques
A. Outline the basic structure of each proof technique: direct proof, contrapositive proof, proof by contradiction, proof by cases and proof by exhaustion.
B. Construct a correct logical argument for each of the proof techniques.
C. Construct an inductive proof of a mathematical statement.
D. Deduce the best type of proof for a given problem.
III. Set Theory
A. Explain with examples the basic terminology of sets.
B. Perform the operations associated with sets.
C. Compare practical examples to the appropriate set model and interpret the associated operations and terminology in context.
D. Describe the common mathematical sets.
E. Express sets using the roster notation, the set builder notation and Venn diagrams.
F. Construct the power set of a given set.
G. Calculate the cardinality of a given set.
H. Calculate set equalities with the use of set identities.
I. Calculate the Cartesian product of sets.
J. Calculate partitions of a given set.
IV. Functions
A. Explain with examples the basic terminology of functions.
B. Perform the operations associated with sets, functions and relations.
C. Compare practical examples to the appropriate function model and interpret the associated operations and terminology in context.
D. Calculate values using the floor and ceiling functions.
E. Determine if a function is one-to-one.
F. Determine if a function is onto.
G. Calculate the inverse of a bijective function.
H. Calculate the composition of two functions.
I. Calculate values using the log and exponential functions using properties of the two functions.
V. Boolean Algebra
A. Compare the elements and the operations of propositional logic and set theory to those of Boolean Algebra.
B. Define Boolean functions.
C. Convert Boolean expressions to disjunctive normal form and conjunctive normal form.
D. Determine if a set of operators is functionally complete.
E. Design a digital circuit using AND gates, OR gates and inverters to implement a Boolean expression.
VI. Relations
A. Construct an arrow diagram of a relation.
B. Construct an adjacency matrix representation of a relation.
C. Calculate trails, paths, circuits and cycles in a directed graph.
D. Calculate the composition of relations.
E. Construct a Hasse Diagram of a partial order.
F. Construct a partition of an equivalence relation.
G. Determine the transitive closure of a relation using matrices.
Method of Evaluation and Competencies:
60-90% Exams (4 minimum)
10-40% Homework, Exercises, Quizzes
Total: 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 211
- Title: Discrete Structures II*
- Number: CS 211
- Effective Term: 2023-24
- Credit Hours: 3
- Contact Hours: 3
- Lecture Hours: 3
Requirements:
Prerequisites: CS 210 with a grade of "C" or higher.
Description:
This second course in Discrete Structures is aimed at solving problems in Computer Science. Students will study computation, induction, recursion, integers, counting, graphs and trees. They will develop general problem-solving and programming skills.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
- Describe the nature and limits of computation.
- Utilize induction and recursion in expressing and solving problems in Computer Science.
- Prove elementary properties of modular arithmetic and explain their applications in Computer Science.
- Use methods of combinatorics to solve counting problems.
- Use graphs to solve problems algorithmically.
- Use trees to solve problems algorithmically.
Content Outline and Competencies:
I. Computation
A. Define algorithm.
B. Express an algorithm using pseudocode.
C. Calculate the asymptotic growth of functions.
D. Calculate the asymptotic time complexity of an algorithm.
E. Define a finite state machine.
F. Define a Turing Machine.
II. Induction and Recursion
A. Characterize sequences as increasing, decreasing, arithmetic or geometric.
B. Construct a recurrence relation of a sequence.
C. Determine the members of a sequence defined by a recurrence relation.
D, Compute the summations of a numerical sequence.
E. Compute the closed form of a summation.
F. Construct an inductive proof to find an explicit formula for a sequence defined by a recurrence relation.
G. Construct a recursive solution for a computer algorithm.
H. Construct a divide and conquer algorithm using recursion.
I. Analyze a problem to determine underlying recurrence relations.
III. Modular arithmetic
A. Compute the divisor and modulus for integers.
B. Compute addition mod m and division mod m in the ring of integers mod m.
C. Express a positive integer other than 1 uniquely as a product of prime numbers.
D. Compute the greatest common divisor and the least common multiple of two non-zero integers.
E. Apply Euclid’s algorithm for finding the greatest common divisor.
F. Represent integers in base 2 (binary), base 10 (decimal) and base 16 (hexadecimal) and perform arithmetic operations in the different bases.
G. Apply encryption and decryption procedures on non-negative integers.
IV. Combinatorics
A. Apply the sum, the product and the bijection rules.
B. Calculate permutations and combinations of a set and interpret the meaning in the context of the particular application.
C. Apply the counting by complement rule.
D. Apply the rule for counting multisets.
E. Apply the rule for counting permutations with repetitions.
F. Apply the rule for inclusion-exclusion.
G. Apply the pigeonhole principle.
H. Apply generating functions for counting problems.
V. Graphs
A. Illustrate the basic terminology of graph theory including properties and special cases for graphs.
B. Represent a graph as an adjacency list and as a matrix.
C. Determine if two graphs are isomorphic.
D. Represent walks, trails, circuits, paths and cycles in graphs.
E. Represent a Euler circuit in an undirected graph.
F. Represent a Hamiltonian cycle in an undirected graph.
G. Represent a planar graph.
H. Determine the chromatic number of a graph.
I. Solve a variety of real-world problems in computer science using appropriate forms of graphs.
VI. Trees
A. Illustrate the basic terminology of trees including properties and special cases for each type of tree.
B. Represent a rooted tree.
C. Demonstrate how problems in computer science can be expressed using trees.
D. Demonstrate different traversal methods for trees including pre-, post- and in-order traversal.
E. Construct a spanning tree of a graph using both a depth-first and a breath-first search.
F. Construct a minimum spanning of a weighted graph using Prim’s algorithm.
Method of Evaluation and Competencies:
60-90% Exams (4 minimum)
10-40% Homework, Exercises, Quizzes
Total: 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 235
- Title: Object-Oriented Programming Using C++*
- Number: CS 235
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
Prerequisites: CS 200 or CS 201 or CS 205.
Description:
This course emphasizes programming methodology and problem solving using the object-oriented paradigm. Students will develop software applications using the object-oriented concepts of data abstraction, encapsulation, inheritance, and polymorphism. Students will apply the C++ techniques of dynamic memory, pointers, built-in classes, function and operator overloading, exception handling, recursion and templates. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
Upon successful completion of this course, the student should be able to:
- Develop C++ programs using a disciplined object-oriented approach to software development.
- Create C++ classes using the concepts of encapsulation and data abstraction.
- Create programs that integrate advanced programming topics.
- Develop new classes by inheriting existing classes.
- Implement polymorphism to produce dynamic, run-time applications.
- Employ commonly accepted programming standards for code and documentation.
Content Outline and Competencies:
I. Software Development
A. Identify C++ features needed to solve problems in C++.
B. Define the problem and identify the classes.
C. Develop a solution.
D. Code the solution.
E. Test the solution.
II Encapsulation and Data Abstraction
A. Apply the C++ syntax to define classes.
B. Use the string class and the vector template classes.
C. Create copy constructors.
D. Create friend functions.
E. Create overloaded operators including the >>, << and = operators.
F. Implement class composition.
G. Describe and create constructors and destructors.
H. Describe use of the “this” pointer.
I. Implement classes that contain arrays of objects.
J. Compare static and instance data members in a class.
K. Compare private and public access specifiers.
III. Advanced Programming Topics
A. Establish pointers to manage dynamic memory.
1. Use new and delete operators.
2. Declare dynamic memory arrays.
3. Define and use pointers to objects.
4. Define objects containing pointers.
B. Create recursive functions.
C. Organize projects into multiple files.
D. Handle exceptions caused by unusual or error conditions during program execution.
E. Describe and use the C++ I/O system.
F. Create templates to develop data independent classes.
IV. Inheritance
A. Explain how inheritance can be used to develop new classes.
B. Explain the “is-a” and the “has-a” relationships between classes.
C. Describe and use constructors and destructors for inherited classes.
D. Define the base class.
E. Use inherited classes.
F. Create overloaded, inherited functions.
V. Polymorphism
A. Explain how polymorphism is used to solve programming problems.
B. Create virtual functions.
C. Create abstract classes using pure virtual functions.
D. Explain static binding and dynamic binding.
VI. Code Standards
A. Create descriptive identifiers according to language naming conventions.
B. Write structured and readable code.
C. Create documentation.
Method of Evaluation and Competencies:
20 – 30% Labs (weekly coding activities covering current lecture topics)
10 – 20% Projects (comprehensive coding activities covering multiple topics)
10 – 20% Exercises
0 – 20% Quizzes
40 – 60% Exams (at least two major exams)
100%
Grade Criteria:
90 – 100% = A80 – 89% = B
70 – 79% = C
60 – 69% = D
0 – 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 236
- Title: Object-Oriented Programming Using C#*
- Number: CS 236
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
Prerequisites: CS 201.
Description:
This course prepares students to develop object-oriented, C# applications that solve a variety of problems. Students will apply object-oriented concepts including inheritance, function overloading and polymorphism, and will utilize available classes as well as design their own. Event-driven programming, Windows applications, web development, common data structures, database access and frameworks will be presented. 3 hrs. lecture, 2 hrs. open lab/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to Instructor's course syllabus for details about any supplies that may be required.Objectives
- Design object-oriented solutions for console applications, Windows Forms applications, and web-based applications and select appropriate technology stacks.
- Develop, debug, build and execute a variety of C# applications.
- Employ event-driven programming, event handlers and the .NET library of classes.
- Develop applications that use C# to read and write information from text files.
- Employ ADO.NET to create web services and web applications.
- Apply basic SQL (Structure Query Language) commands to interact with relational database management systems.
- Employ common data structures in C# programs.
- Employ a C# framework to create object-oriented C# applications.
- Explain related technologies such as LINQ (Language Integrated Query), WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation) and how they support object-oriented solutions.
- Apply the principles of object-oriented design to solve current problems.
Content Outline and Competencies:
I. Object-Oriented Programming and Frameworks
A. Discuss the history and objectives of C# and .NET.
B. Explain and utilize the characteristics of object-oriented design.
C. Utilize Visual Studio and explore an associated framework.
II. Object-Oriented Windows Solutions
A. Discuss key elements of graphical user interfaces (GUI).
B. Discuss issues related to GUI design.
C. Design, develop, debug and execute GUI desktop solutions.
D. Employ common GUI controls.
III. Event-Driven Programming
A. Implement delegates.
B. Implement event handlers.
C. Apply combo box and list box classes in C# programs.
D. Apply menus, tab controls, radio buttons and check box classes in C# programs.
IV. Advanced Object-Oriented Programming
A. Utilize abstraction, encapsulation, inheritance and polymorphism in object-oriented design.
B. Explain the difference between composition and inheritance.
C. Discuss why polymorphism is a common goal in .NET.
D. Discuss multi-tier applications and component-based development.
E. Utilize abstract and partial classes.
F. Implement interfaces.
G. Implement generics
V. Error Handling
A. Explain exception classes.
B. Employ standard exceptions and create custom exceptions.
C. Employ exception handling techniques including catching and throwing exceptions and using try, catch and finally blocks.
D. Experiment with the numerous types of errors and exceptions and develop advanced techniques for debugging.
E. Employ the debugger to find run-time errors.
VI. File Input and Output
A. Utilize the System.IO namespace classes.
B. Employ File and Directory classes.
C. Employ FileInfo and DirectoryInfo classes.
D. Apply stream classes to read and write data from text files in C# programs.
E. Read and write binary files.
VII. Data Structures and Data Access with ASP.NET, SQL, and LINQ
A. Discuss common data structures such as lists, stacks, queues and trees.
B. Utilize generics with a data structure to solve an applications problem.
C. Discuss data access technologies.
D. Employ DataReader, DataSet and DataAdapter classes.
E. Employ SQL to query databases.
F. Utilize visual development tools for data access.
G. Explain the use of LINQ.
VIII. Web Solutions
A. Compare and contrast Windows versus web development.
B. Explain and employ ASP.NET.
C. Utilize a variety of web controls.
D. Explain web services and their role in distributed applications.
E. Discuss issues related to the development of mobile applications.
IX. C# Frameworks
A. Discuss frameworks and software development kits (SDKs) - what they are and when they are used.
B. Employ a sample framework.
C. Develop and use multimedia classes (e.g., images and sounds).
D. Discuss applications that employ additional devices and hardware.
E. Create an application using a sample framework or SDK.
Method of Evaluation and Competencies:
30-50% Minimum of 2 exams
20-30% Quizzes
20-30% Minimum of 5 projects
10-20% Lab Assignments
Total 100%
Grade Criteria:
90 – 100% = A80 – 89% = B
70 – 79% = C
60 – 69% = D
0 – 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 250
- Title: Basic Data Structures using C++*
- Number: CS 250
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
Prerequisites: CS 235 or (CS 200 and CS 210 or CS 236 or CS 255 or CIS 240 or MATH 242).
Description:
This course continues developing problem solving techniques by focusing on object-oriented styles using C++ abstract data types. Basic data structures such as queues, stacks, trees, dictionaries, their associated operations, and their array and pointer implementations will be studied. Topics also include recursion, templates, fundamental algorithm analysis, searching, sorting, hashing, object-oriented concepts and large program organization. Students will write programs using the concepts covered in the lecture. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
Upon successful completion of this course, the student should be able to:
- Write advanced object-oriented code in the context of data structures.
- Develop programs that integrate advanced programming topics.
- Analyze and create code using fundamental data structures.
- Examine advanced algorithms and techniques.
- Write code according to commonly accepted programming standards.
Content Outline and Competencies:
I. Advanced Object-Oriented Code
A. Implement inheritance.
B. Implement polymorphism, virtual methods and late binding.
C. Implement class and function templates.
D. Write code with classes from the Standard Template Library.
E. Implement class composition.
F. Create user-defined exception objects.
G. Implement friend classes and functions.
H. Implement overloaded operators.
II. Advanced Programming Topics
A. Manage indexing, pointers and multiple levels of indirect addressing.
B. Manage dynamic memory.
C. Write recursive programs.
D. Organize projects into multiple files.
E. Handle exceptions.
F. Pass function pointers.
G. Implement backtracking.
H. Examine and create recursive grammars and languages.
I. Implement prefix and postfix expressions.
III. Fundamental Data Structures
A. Analyze code implementing linked lists, dummy head nodes, circular linked lists and doubly linked lists.
B. Analyze code implementing stacks.
C. Analyze code implementing queues.
D. Analyze code implementing trees and associated traversals.
E. Analyze code implementing dictionaries.
F. Analyze code implementing priority queues.
G. Analyze code implementing heaps.
H. Analyze code implementing hash tables.
I. Create applications utilizing fundamental data structures.
IV. Advanced Algorithms
A. Review data sorting with selection, bubble and insertion sort.
B. Sort data with merge sort, quick sort, radix sort and heap sort.
C. Analyze algorithmic efficiency.
V. Code Standards
A. Create descriptive identifiers according to language naming conventions.
B. Write structured and readable code.
C. Create documentation.
Method of Evaluation and Competencies:
20 – 30% Labs (Weekly coding activities covering current lecture topics)
10 – 20% Projects (Comprehensive coding activities covering multiple topics)
10 – 20% Exercises
0 – 20% Quizzes
40 – 60% Exams (Minimum of 2)
100%
Grade Criteria:
90 – 100% = A80 – 89% = B
70 – 79% = C
60 – 69% = D
0 – 59% = F
Caveats:
None
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 252
- Title: Basic Data Structures Using Python*
- Number: CS 252
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
Prerequisites: CS 202.
Description:
This course continues developing advanced problem-solving techniques through object-oriented programming using Python. Basic data structures including stacks, queues, trees, and dictionaries will be studied and implemented. Additional topics include recursion, fundamental algorithm analysis, searching, sorting, and large program organization. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
- Write advanced object-oriented code in the context of data structures.
- Develop programs that integrate advanced programming topics.
- Analyze and create code using fundamental data structures.
- Examine advanced algorithms and techniques.
- Write code according to commonly accepted programming standards.
Content Outline and Competencies:
I. Advanced Object-Oriented Code
A. Implement inheritance.
B. Implement polymorphism.
C. Implement interfaces.
D. Implement class composition.
E. Create programmer-defined exception objects.
F. Implement overloaded operators.
G. Explain static and dynamic typing.
II. Advanced Programming Topics
A. Write recursive programs.
B. Organize projects into modules.
C. Handle exceptions.
D. Examine and create recursive grammars and languages.
E. Implement prefix and postfix expressions.
F. Implement backtracking.
III. Fundamental Data Structures
A. Analyze code implementing linked lists, dummy head nodes, circular linked lists and doubly linked lists.
B. Analyze code implementing stacks.
C. Analyze code implementing queues.
D. Analyze code implementing trees, binary search trees and associated traversals.
E. Analyze code implementing priority queues.
F. Analyze code implementing heaps.
G. Analyze code implementing hash tables.
H. Create applications utilizing fundamental data structures.
IV. Advanced Algorithms
A. Review data sorting with selection, bubble and insertion sort.
B. Sort data with merge sort, quick sort and heap sort.
C. Implement linear and binary searching.
D. Analyze algorithmic efficiency.
V. Code Standards
A. Create descriptive identifiers according to language naming conventions.
B. Write structured and readable code.
C. Create documentation.
Method of Evaluation and Competencies:
20-30% Labs (Weekly coding activities covering current lecture topics)
10-20% Projects (Comprehensive coding activities covering multiple topics)
10-20% Exercises
0-20% Quizzes
40-60% Exams (Minimum of 2)
Total: 100%
Grade Criteria:
90 - 100% = A80 - 89% = B
70 - 79% = C
60 - 69% = D
0 - 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).
CS 255
- Title: Basic Data Structures Using Java*
- Number: CS 255
- Effective Term: 2023-24
- Credit Hours: 4
- Contact Hours: 5
- Lecture Hours: 3
- Other Hours: 2
Requirements:
Prerequisites: CS 205 or CS 236 or CIS 240.
Description:
This course will cover advanced programming topics using Java. Files, recursion, data structures and large program organization will be implemented in projects using object-oriented methodology. Students will write programs using queues, stacks, lists and other concepts covered in the lecture. 3 hrs. lecture, 2 hrs. lab by arrangement/wk.
Textbooks:
http://bookstore.jccc.edu/Supplies:
Refer to the instructor's course syllabus for details about any supplies that may be required.Objectives
Upon successful completion of this course, the student should be able to:
- Write advanced object-oriented code in the context of data structures.
- Develop programs that integrate advanced programming topics.
- Analyze and create code using fundamental data structures.
- Examine advanced algorithms and techniques.
- Write code according to commonly accepted programming standards.
Content Outline and Competencies:
I. Advanced Object-Oriented Code
A. Implement inheritance.
B. Implement polymorphism, virtual methods and late binding.
C. Implement generic classes and interfaces.
D. Write code with classes from the Java Library.
E. Implement class composition.
F. Create user-defined exception objects.
II. Advanced Programming Topics
A. Write recursive programs.
B. Organize projects into packages and multiple files.
C. Handle exceptions.
D. Examine and create recursive grammars and languages.
E. Implement prefix and postfix expressions.
F. Input and output data using advanced input/output capabilities.
III. Fundamental Data Structures
A. Analyze code implementing linked lists, dummy head nodes, circular linked lists and doubly linked lists.
B. Analyze code implementing stacks.
C. Analyze code implementing queues.
D. Analyze code implementing trees and associated traversals.
E. Analyze code implementing priority queues.
F. Analyze code implementing heaps.
G. Analyze code implementing hash tables.
H. Create applications utilizing fundamental data structures.
IV. Advanced Algorithms
A. Review data sorting with selection, bubble and insertion sort.
B. Sort data with merge sort, quick sort and heap sort.
C. Review linear and binary searching.
D. Analyze algorithmic efficiency.
V. Code Standards
A. Create descriptive identifiers according to language naming conventions.
B. Write structured and readable code.
C. Create documentation.
Method of Evaluation and Competencies:
20 – 30% Labs (Weekly coding activities covering current lecture topics)
10 – 20% Projects (Comprehensive coding activities covering multiple topics
10 – 20% Exercises
0 – 20% Quizzes
40 – 60% Exams (Minimum of 2)
100%
Grade Criteria:
90 – 100% = A80 – 89% = B
70 – 79% = C
60 – 69% = D
0 – 59% = F
Caveats:
Student Responsibilities:
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 may send an email or call Access Services at (913)469-3521. Access Services is located on the 2nd floor of the Student Center (SC 202).