Computer Science (CS)

This is an archived copy of the 2016-17 Catalog. To access the most recent version of the catalog, please visit http://catalog.jccc.edu/.

Courses

CS 134   Programming Fundamentals (4 Hours)

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. lab /wk.

CS 200   Concepts of Programming Algorithms Using C++* (4 Hours)

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 (with a grade of "B" or higher) or CS 201 or CS 205 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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 200H   HON: Concepts of Programming Algorithms Using C++* (1 Hour)

Prerequisites: Honors department approval.

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

CS 201   Concepts of Programming Algorithms using C#* (4 Hours)

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 (with a grade of "B" or higher) or CS 200 or CS 205 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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 205   Concepts of Programming Algorithms using Java* (4 Hours)

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 with a grade of "B" or higher) or CS 200 or CS 201 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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 or both MATH 116 and CS 134 or appropriate math assessment scores.

Upon successful completion of this course, the student should be able to use fundamental discrete mathematics as it relates to computers and computer applications. The student will be exposed to a variety of discrete mathematical topics. The course will include fundamental mathematical principles, combinatorial analysis, mathematical reasoning, graphs and trees, and Boolean logic circuits. 3 hrs. lecture/wk.

CS 210H   HON: Discrete Structures I* (1 Hour)

Prerequisites: Honors department approval.

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

CS 211   Discrete Structures II* (3 Hours)

Prerequisites: CS 210.

Upon successful completion of this course, the student should be able to use fundamental discrete mathematics as it relates to computers and computer applications. The student will experiment with a variety of discrete mathematical topics. The course will include fundamental mathematical principles, combinatorial analysis, mathematical reasoning, graphs and trees, and Boolean logic circuits. 3 hrs. lecture/wk.

CS 211H   HON: Discrete Structures II* (1 Hour)

Prerequisites: Honors department approval.

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

CS 225   Digital Logic with VHDL* (2 Hours)

Prerequisites: ELEC 125.

This course introduces students to the Very High Speed Integrated Circuit Hardware Descriptive Language (VHDL) used to implement digital logic designs with programmable logic devices. Students will learn the different types of programmable logic devices and how to use an industry-standard programming environment to code designs with VHDL. 1hr. lecture & 2 hrs. instuctional lab/wk.

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. instructional 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 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: 2016-17
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Lab Hours: 2

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. lab /wk.

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:

  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.

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% = A
80 – 89% = B
70 – 79% = C
60 – 69% = D
0 – 59% = F

Caveats:

  1. Students must be proficient in keyboarding and in performing tasks with a Windows or Macintosh operating system.
  2. Operating system and office application courses are available in CPCA and CIS to enhance proficiency skills.

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: 2016-17
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Other Hours: 2

Requirements:

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 (with a grade of "B" or higher) or CS 201 or CS 205 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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.

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:

  1. Describe computer systems and examine ethics.
  2. Solve problems using a disciplined approach to software development.
  3. Utilize fundamental programming language features.
  4. Implement procedures.
  5. Employ fundamental data structures and algorithms.
  6. Write code using object-oriented techniques.
  7. Write code according to commonly accepted programming standards.
  8. Utilize a professional software development environment.

Content Outline and Competencies:

I. Computer Systems and Ethics

A. Describe basic hardware components.

1. Describe primary memory.

2. Describe the central processing unit.

3. Describe secondary memory.

4. Describe peripherals.

B. Describe basic software components.

1. Describe operating systems.

2. Describe high-level and machine languages.

3. Describe compilers.

C. 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% = A
80 – 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 200H

  • Title: HON: Concepts of Programming Algorithms Using C++*
  • Number: CS 200H
  • Effective Term: 2016-17
  • Credit Hours: 1
  • Contact Hours: 1
  • Lecture Hours: 1

Requirements:

Prerequisites: Honors department approval.

Description:

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

Content Outline and Competencies:

Method of Evaluation and Competencies:

Grade Criteria:

90 – 100% = A
80 – 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: 2016-17
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Other Hours: 2

Requirements:

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 (with a grade of "B" or higher) or CS 200 or CS 205 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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.

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:

  1. Describe computer systems and examine ethics.
  2. Solve problems using a disciplined approach to software development.
  3. Utilize fundamental programming language features.
  4. Employ fundamental data structures and algorithms.
  5. Write code using object-oriented techniques.
  6. Write code according to commonly accepted programming standards.
  7. Utilize a professional software development environment.

Content Outline and Competencies:

I. Computer Systems and Ethics

A. Describe basic hardware components.

1. Describe primary memory.

2. Describe the central processing unit.

3. Describe secondary memory.

4. Describe peripherals.

B. Describe basic software components.

1. Describe operating systems.

2. Describe high-level and machine languages.

3. Describe compilers.

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

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% = A
80 – 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: 2016-17
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Other Hours: 2

Requirements:

Prerequisites: CS 134 (with a grade of "B" or higher) or CIS 142 with a grade of "B" or higher) or CS 200 or CS 201 or MATH 241 or an appropriate score on department waiver test or department approval for prior work-related experience.

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.

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:

  1. Describe computer systems and examine ethics.
  2. Create object-oriented problem solutions.
  3. Utilize fundamental programming language features.
  4. Implement methods.
  5. Employ fundamental data structures and algorithms.
  6. Write code using object-oriented techniques.
  7. Write code according to commonly accepted programming standards.
  8. Utilize a professional software development environment.

Content Outline and Competencies:

I. Computer Systems and Ethics

A. Describe basic hardware components.

1. Describe primary memory.

2. Describe the central processing unit.

3. Describe secondary memory.

4. Describe peripherals.

5. Describe file systems.

B. Describe basic software components.

1. Describe operating systems.

2. Describe high-level and machine languages.

3. Describe compilers.

C. 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 accesssors, 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% = A
80 – 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: 2016-17
  • Credit Hours: 3
  • Contact Hours: 3
  • Lecture Hours: 3

Requirements:

Prerequisites: MATH 171 or both MATH 116 and CS 134 or appropriate math assessment scores.

Description:

Upon successful completion of this course, the student should be able to use fundamental discrete mathematics as it relates to computers and computer applications. The student will be exposed to a variety of discrete mathematical topics. The course will include fundamental mathematical principles, combinatorial analysis, mathematical reasoning, graphs and trees, and Boolean logic circuits. 3 hrs. lecture/wk.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

  1. Apply the mathematical tools and techniques basic to and needed for most courses in computer science
  2. Develop the ability to reason precisely using discrete mathematics models
  3. Apply the relationship between discrete mathematics and computer science
  4. Apply the elements of logic to computer science
  5. Write the truth table of a proposition
  6. Demonstrate how a proposition is used in computer science
  7. Apply combinatorial circuits and their use in computer science
  8. Demonstrate how to simplify Boolean expressions and their use in computer science
  9. Apply the elements of set theory and related topics to computer science
  10. Demonstrate Cartesian product and their use in computer science
  11. Demonstrate sequences and their use in computer science
  12. Demonstrate mathematical induction and its use in computer science
  13. Demonstrate matrices and their use in computer science
  14. Demonstrate graphs and their use in computer science
  15. Demonstrate trees and their use in computer science
  16. Demonstrate proofs and arguments and their use in computer science  

Content Outline and Competencies:

I. Introduction
   A. Determine whether a solution is possible in a variety of
circumstances
   B. Count the number of solutions in a variety of circumstances
   C. Optimize a solution in a variety of circumstances
   D. Create PERT charts
   E. Find the critical path for a PERT chart

II. Sets
   A. Define a set and related properties
   B. Use operations with sets
   C. Use Venn Diagrams  with sets
   D. Use DeMorgan's Law
   E. Use the Cartesian Product

III. Equivalence Relations
   A. Define an equivalence relation
   B. Find if a relation has the reflexive property
   C. Find if a relation has the symmetic property
   D. Find if a relation has the transitive property
   E. Define and use partitions

IV. Congruence Classes
   A. Define a congruence class and related properties
   B. Do arithmetic operations using congruence classes

V. Functions
   A. Define a function and related properties
   B. Define one-to-one and related properties
   C. Define onto and related properties
   D. Define composition and related properties

VI.   Define and use the concepts of Mathematics Induction

VII. Graphs
   A. Define a graph and related properties
   B. Define a matrix and related properties
   C. Add matrices
   D. Subtract matrices
   E. Do scalar multiplication
   F. Do matrix multiplication
   G. Represent a graph as a graph, an adjacency list, and a matrix
   H. Change from any representation of a graph to another form
   I. Define and use the concept of isomorphisms
   J. Define a path and related properties for a graph
   K. Define a circuit and related properties for a graph
   L. Find Euler paths and circuits for a graph
   M. Find Hamiltonian paths and cycles for a graph
   N. Find the shortest path between any two points in a graph
   O. Color a map
   P. Find the graph of a map
   Q. Define a digraph and related properties
   R. Represent a digraph as a graph, an adjacency list, and a matrix
   S. Change the representation of a digraph from any representation of a
graph to another form
   T. Find the Euler paths and circuits for a digraph
   U. Find Hamiltonian paths and cycles for a digraph

VIII. Trees
   A. Define a tree and related properties
   B. Create a spanning tree for a graph
   C. Create a minimum spanning tree for a graph
   D. Create a maximum spanning tree for a graph
   E. Create a depth-first search spanning tree for a graph
   F. Create a breadth-first search spanning tree for a graph
   G. Define a rooted tree and related properties
   H. Define a binary tree and related properties
   I. Create an expression tree for a preorder, postorder, and inorder
expression
   J. Evaluate a preorder, postorder, and inorder expression
   K. From a tree, write the preorder, postorder, and inorder expression
   L. Develop an optimal tree using Huffman Code
   M. Develop and use a binary search tree

IX. Matching Problems
   A. Use systems of distinct representations to solve a variety of
problems
   B. Apply the algorithms of maximal independent sets to solve a variety
of problems

X. Network Flows
   A. Define a transportation network and related properties
   B. Maximize a transportation network
   C. Find a cut for an optimal transportation network 

XI. Counting Techniques
   A. Use the product rule
   B. Use the sum rule
   C. Use the Pigeonhole Principle
   D. Use the notation for permutations and combinations
   E. Use combinations
   F. Use permutations
   G. Use the principle of inclusion-exclusion

XII. Combinatorial Circuits
   A. Define AND, OR, and NOT gates and their related properties
   B. Use logical gates to create circuits
   C. Find the Boolean expression of a circuit
   D. Find the truth table for a Boolean expression
   E. Use Karnaugh maps to optimize a circuit or a logical expression


Method of Evaluation and Competencies:

A minimum of 4 examinations            at least 60%
A minimum of 10 quizzes                at least 10%
A minimum of 10 homework assignments   at least 10%
                                               100%
Grade Criteria:
A = 90%
B = 80%     
C = 70%     
D = 60%     
F = less than 60%


Grade Criteria:

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 210H

  • Title: HON: Discrete Structures I*
  • Number: CS 210H
  • Effective Term: 2016-17
  • Credit Hours: 1
  • Contact Hours: 1
  • Lecture Hours: 1

Requirements:

Prerequisites: Honors department approval.

Description:

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

Content Outline and Competencies:

Method of Evaluation and Competencies:

Grade Criteria:

90 – 100% = A
80 – 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: 2016-17
  • Credit Hours: 3
  • Contact Hours: 3
  • Lecture Hours: 3

Requirements:

Prerequisites: CS 210.

Description:

Upon successful completion of this course, the student should be able to use fundamental discrete mathematics as it relates to computers and computer applications. The student will experiment with a variety of discrete mathematical topics. The course will include fundamental mathematical principles, combinatorial analysis, mathematical reasoning, graphs and trees, and Boolean logic circuits. 3 hrs. lecture/wk.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

  1. Use the mathematical tools and techniques basic to and needed for most courses in computer science
  2. Use logic and truth tables
  3. Use sets and apply set operations
  4. Use functions
  5. Use integer and mod arithmetic
  6. Apply matrix operations
  7. Develop discrete proofs including mathematical induction
  8. Develop and use recursive algorithms
  9. Use combinatorial analysis
  10. Use recurrence relations
  11. Use relations and apply their properties
  12. Use elementary database principles
  13. Represent relations with matrices
  14. Use Hasse diagrams to illustrate partial orderings
  15. Use the principles of graph theory
  16. Use the principles of trees
  17. Use logic, Boolean expressions and circuits and minimize each
  18. Use simple grammar applications 

Content Outline and Competencies:

I. Use fundamental mathematical tools
   A. Use logic
   B. Use truth tables
   C. Use propositional equivalences
   D. Use predicates and quantifiers
   E. Use sets
   F. Use Venn Diagrams
   G. Apply set operations
   H. Use power sets and cartesian products
   I. Use functions and their characteristics
   J. Use sequences and summations
   K. Use integer/mod arithmetic
   L. Use matrices
   M. Apply matrix operations

II. Do mathematical proofs
   A. Do proofs with truth tables
   B. Do proofs using mathematical induction
   C. Use rules of inference

III. Recursion
   A. Develop recursive algorithms
   B. Develop recursive functions
   C. Evaluate recursive definitions

IV. Counting
   A. Use the Sum Rule
   B. Use the Product Rule
   C. Use the Pigeonhole Principle
   D. Use Inclusion-Exclusion Principle
   E. Use Tree diagrams to solve appropriate counting problems
   F. Use Permutations
   G. Use Combinations
   H. Use discrete probability
   I. Use generalized permutations and combinations
   J. Use recurrence relations
   K. Solve recurrence relations
   L. Apply the inclusion-exclusion principle

V. Relations
   A. Use relations on a set
   B. Use the properties of relations
      1. reflexive
      2. irreflexive
      3. symmetric
      4. asymmetric
      5. antisymmetic
      6. transitive
   C. Combine relations
   D. Use n-ary relations
   E. Use elementary database principles
   F. Represent relations in matrix form
   G. Represent relations in digraph form
   H. Define equivalence relations
   I. Define partial orderings
   J. Use Hasse Diagrams to represent partial orderings

VI. Graph Theory
   A. Define graphs, digraphs, simple graphs, multigraphs, pseudographs
   B. Represent graphs as pictures
   C. Represent graphs in matrix form
   D. Use graph terminology
   E. Apply graph theory to applications
   F. Use adjacency and incidence matrices
   G. Use isomorphisms and their properties
   H. Use connectivity, paths and circuits
   I. Create Euler paths and circuits
   J. Create Hamilton paths and cycles
   K. Using Dijkstra's Algorithm, find the shortest path between points
   L. Use planar graphs and their properties
   M. Color maps, create graphs of maps, and use their properties

VII. Trees
   A. Define a tree and related vocabulary
   B. Use the properties of trees
   C. Create binary search trees
   D. Use trees for preorder, postorder, and inorder expressions
   E. Develop preorder, postorder, and inorder expressions
   F. Translate trees  into preorder, postorder, and inorder expressions
   G. Translate preorder, postorder, and inorder expressions to trees
   H. Use tree transversal methods
   I. Evaluate preorder, postorder, and inorder expressions
   J. Evaluate preorder, postorder, and inorder trees
   K. Define spanning trees
   L. Create minimum and maximum spanning trees of graphs
   M. Create depth-first and breadth-first spanning trees of graphs

VIII. Boolean Algebra
   A. Use Boolean expressions and operations
   B. Create a Truth Table from a Boolean expression
   C. Represent Boolean Expression as sums of products
   D. Define logic gates and related properties
   E. Create Boolean expressions from circuits
   F. Use logic gates to include OR, AND, NOT, NOR, and NAND
   G. Create circuits using OR, AND, NOT, NOR, and NAND gates
   H. Use Karnaugh Maps to minimize circuits and Boolean expressions
   I. Use Quine-McCluskey method to minimize circuits and Boolean
expressions

IX. Grammars
   A. Define grammars and related properties
   B. Use Phrase-Structure grammars
   C. Use finite-state machines 

Method of Evaluation and Competencies:

A minimum of 3 examinations            50%
A minimum of 25 homework assignments   41.66%
A minimum of 5 quizzes                  8.33%
                                      100%
Grade Criteria:
A = 90%
B = 80%     
C = 70%     
D = 60%     
F = less than 60%

Grade Criteria:

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 211H

  • Title: HON: Discrete Structures II*
  • Number: CS 211H
  • Effective Term: 2016-17
  • Credit Hours: 1
  • Contact Hours: 1
  • Lecture Hours: 1

Requirements:

Prerequisites: Honors department approval.

Description:

One-credit hour honors contract is available to qualified students who have an interest in a more thorough investigation of a topic related to this subject. An honors contract may incorporate research, a paper, or project and includes individual meetings with a faculty mentor. Student must be currently enrolled in the regular section of the courses or have completed it the previous semester. Contact the Honors Program Office, COM 201, for more information.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

Content Outline and Competencies:

Method of Evaluation and Competencies:

Grade Criteria:

90 – 100% = A
80 – 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 225

  • Title: Digital Logic with VHDL*
  • Number: CS 225
  • Effective Term: 2016-17
  • Credit Hours: 2
  • Contact Hours: 3
  • Lecture Hours: 1
  • Lab Hours: 2

Requirements:

Prerequisites: ELEC 125.

Description:

This course introduces students to the Very High Speed Integrated Circuit Hardware Descriptive Language (VHDL) used to implement digital logic designs with programmable logic devices. Students will learn the different types of programmable logic devices and how to use an industry-standard programming environment to code designs with VHDL. 1hr. lecture & 2 hrs. instuctional lab/wk.

Supplies:

Refer to the instructor's course syllabus for details about any supplies that may be required.

Objectives

  1. Evaluate the differences between various programmable logic devices to determine appropriate application.
  2. Explain how VHDL programming structures are used to implement digital logic on programmable logic devices.
  3. Demonstrate the organization and operation of an industry-standard VHDL programming environment.
  4. Design an optimized solution to a combinational digital circuit problem appropriate to a given target device.
  5. Create VHDL projects for a sequential digital circuit and implement on a target device.
  6. Demonstrate the design functionality on the hardware device in a lab environment.

Content Outline and Competencies:

I. Programmable Logic Devices (PLD)
   A. Compare the characteristics of Programmable Logic Array (PLA), Field-Programmable Gate Array (FPGA), Complex Programmable Logic Device (CPLD) and other programmable logic devices.
   B. Evaluate circuit design considerations for each type of device.
   C. Appraise applications of CPLDs and FPGAs.

II. Introduction to VHDL Programming 
   A. Describe the programming structures in VHDL.
   B. Translate basic combinational digital circuits to VHDL code.
   C. Create VHDL files to model basic logic circuits. 
   D. Describe the process for implementing a more complex digital design with VHDL.

III. The VHDL Integrated Programming Environment
   A. Configure an industry-standard VHDL programming development environment.
   B. Access code library resources for VHDL coding.
   C. Create a hierarchical VHDL project incorporating new and existing VHDL resources.

IV. Combinational Design for Programmable Logic Devices
   A. Apply Computer-Aided Design (CAD) tools to optimize designs for a target device.
   B. Explain synthesis and optimization in the VHDL environment.
   C. Test combinational circuit performance in simulation and hardware implementations.

V. Sequential Design with VHDL
   A. Design a sequential logic circuit to meet functional specifications.
   B. Create the code within a VHDL project.
   C. Describe the types of simulation tools available for testing in the given development environment.
   D. Develop a test plan to evaluate the function of the given circuit.  
   E. Evaluate a sequential design using simulation tools in the VHDL environment.
 
VI. Implement Logic on Hardware
   A. Configure a given target device for programming and upload a tested program.
   B. Evaluate the performance of the circuit according to the test plan.

Method of Evaluation and Competencies:

Quizzes/Tests  30-60% of grade
Assignments/Projects  30-60% of grade
Participation/Discussion  0-20% of grade
Total  100% of grade

Grade Criteria:
A = 90-100%
B = 80-89%
C = 70-79%
D = 60-69%
F = less than 60%

Grade Criteria:

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: 2016-17
  • 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.

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:

  1. Develop C++ programs using a disciplined object-oriented approach to software development.
  2. Create C++ classes using the concepts of encapsulation and data abstraction.
  3. Create programs that integrate advanced programming topics.
  4. Develop new classes by inheriting existing classes.
  5. Implement polymorphism to produce dynamic, run-time applications.
  6. 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% = A
80 – 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: 2016-17
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Lab 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. instructional lab/wk.

Supplies:

Refer to Instructor's course syllabus for details about any supplies that may be required.

Objectives

  1. Design object-oriented solutions for console applications, Windows Forms applications, and Web-based applications and select appropriate technology stacks.
  2. Develop, debug, build, and execute a variety of C# applications.
  3. Employ event-driven programming, event handlers, and the .NET library of classes.
  4. Develop applications that use C# to read and write information from text files.
  5. Employ ADO.NET to create Web Services and Web applications.
  6. Apply basic SQL (Structure Query Language) commands to interact with relational database management systems.
  7. Employ common data structures in C# programs.
  8. Employ a C# framework to create object-oriented C# applications.
  9. Explain related technologies such as LINQ (Language Integrated Query), WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation) and how they support object-oriented solutions.
  10. 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, 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 Accessing Data with ADO.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:

Assessment Type        Weight
Minimum of 2 exams     30-50
Quizzes                20-30%
Minimum of 5 projects  20-30%
Lab Assignments        10-20%
Total                  100%
Grading Scale:
90-100% = A
80-89% = B
70-79% = C
60-69% = D

Grade Criteria:

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: 2016-17
  • 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.

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:

  1. Write advanced object-oriented code in the context of data structures.
  2. Develop programs that integrate advanced programming topics.
  3. Analyze and create code using fundamental data structures.
  4. Examine advanced algorithms and techniques.
  5. 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% = A
80 – 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 255

  • Title: Basic Data Structures Using Java*
  • Number: CS 255
  • Effective Term: 2016-17
  • 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.

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:

  1. Write advanced object-oriented code in the context of data structures.
  2. Develop programs that integrate advanced programming topics.
  3. Analyze and create code using fundamental data structures.
  4. Examine advanced algorithms and techniques.
  5. 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% = A
80 – 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).