Computer Science (CS)

This is an archived copy of the 2020-21 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. open 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.

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

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

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 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 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 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 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 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: 2020-21
  • Credit Hours: 4
  • Contact Hours: 5
  • Lecture Hours: 3
  • Other 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. open lab /wk.

Supplies:

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

Objectives

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

Content Outline and Competencies:

I. Software Development Careers and Software Applications

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

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

II. Internal and External Data Representation

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

B. Convert among binary, decimal and hexadecimal numbers.

C. Discuss data storage.

III. Object-Oriented Software Development in a Graphical Framework

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

B. Manage project components.

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

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

2. Describe the properties of images.

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

E. Single step program execution.

F. Inspect object instance data during program execution.

G. Describe the class hierarchy presented in the IDE.

IV. Problem-Solving Techniques for Software Development

A. Develop logic to solve computer programs.

B. Represent problems and solutions.

1. Use flowcharts to represent logical flow.

2. Use hierarchy charts to represent relationships among classes.

3. Use pseudo-code to represent algorithms.

C. Discuss top-down design.

D. Explain the software development life cycle.

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

F. Develop and implement plans to test solutions.

G. Trace program flow manually and with a debugger.

H. Identify needed classes.

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

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

V. Fundamental Statements and Processes

A. Declare variables using appropriate data types.

B. Use assignment operators.

C. Use arithmetic, relational and logical operators.

D. Use branching statements.

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

F. Process user input.

G. Generate user output.

H. Declare and manipulate arrays.

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

J. Dynamically create and remove objects during program execution.

K. Utilize accumulator variables.

VI. Methods

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

B. Write methods.

C. Call methods and pass parameters.

D. Process returned values.

VII. Object-Oriented Methodology

A. Discuss advantages of object-oriented techniques.

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

C. Create user-defined classes.

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

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

3. Create constructors to initialize instance variables.

4. Properly use public and private access modifiers.

5. Use inheritance.

D. Instantiate objects from classes.

E. Implement object interaction.

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

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

2. Define appropriate classes and code the methods.

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

VIII. Event-Driven Programming

A. List different types of event triggers.

B. Use built-in classes to capture events.

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

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: 2020-21
  • 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.

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 201

  • Title: Concepts of Programming Algorithms using C#*
  • Number: CS 201
  • Effective Term: 2020-21
  • 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.

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.

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: 2020-21
  • 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.

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: 2020-21
  • 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.

Supplies:

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

Objectives

  1. Apply the properties of propositional and predicate logic in reasoning.
  2. Select and apply a proof technique in the construction of a sound argument.
  3. Analyze and solve problems in Computer Science involving topics related to sets.
  4. Analyze and solve problems in Computer Science involving topics related to functions.
  5. Apply the rules and operations of Boolean Algebra in computer circuit design.
  6. 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% = 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 210H

  • Title: HON: Discrete Structures I*
  • Number: CS 210H
  • Effective Term: 2020-21
  • 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: 2020-21
  • 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.

Supplies:

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

Objectives

  1. Describe the nature and limits of computation.
  2. Utilize induction and recursion in expressing and solving problems in Computer Science.
  3. Prove elementary properties of modular arithmetic and explain their applications in Computer Science.
  4. Use methods of combinatorics to solve counting problems.
  5. Use graphs  to solve problems algorithmically.
  6. 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% = 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 211H

  • Title: HON: Discrete Structures II*
  • Number: CS 211H
  • Effective Term: 2020-21
  • 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 235

  • Title: Object-Oriented Programming Using C++*
  • Number: CS 235
  • Effective Term: 2020-21
  • 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: 2020-21
  • 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.

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 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% = 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 250

  • Title: Basic Data Structures using C++*
  • Number: CS 250
  • Effective Term: 2020-21
  • 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: 2020-21
  • 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:

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