Advanced Integrated Software Development

Faculty
Commerce & Business Administration
Department
Computing Studies & Information Systems
Course Code
CSIS 2175
Credits
3.00
Semester Length
15 Weeks
Max Class Size
35
Method Of Instruction
Lecture
Lab
Seminar
Typically Offered
To be determined
Campus
Online

Overview

Course Description
This is an intensive Java programming course. Students are assumed to have prior knowledge in Object Oriented Programming, data manipulation (text, binary, database), prior knowledge in GUI design, and event handling.

Students will learn Java application development using packages, classes, abstract, interface, inner classes, file i/o, graphical user interface, database connectivity, and many more.

Course Content
  1. Introduction
    1. Usage of the official Java Development Kit (JDK) and any appropriate third-party development kit for Java
    2. Git – version control
    3. JUnit
  2. Java Fundamentals
    1. Data types, variables, and comments
    2. Arithmetic operators
    3. Conversion between primitive data types
    4. Math and String class
    5. Scope
    6. Reading keyboard input using different classes
    7. Displaying formatted output with System.out.printf
  3. Decision Structures
    1. if, if-else, if-else-if
    2. logical operators
    3. comparing String objects
    4. Conditional operator
    5. switch
  4. Loops
    1. while, do – while, for
    2. nested loops
  5. Files
    1. Input and output file processing
  6. Classes
    1. Basic class diagram
    2. Instance fields and methods
    3. static class members
    4. Constructors
    5. Overloaded methods and constructors
    6. Passing objects as arguments
    7. Returning Objects from methods
    8. toString method
    9. copy method/constructors
    10. Aggregation (UML)
    11. this reference
    12. inner classes
    13. Class collaboration (UML)
  7. Arrays and ArrayList
    1. Single and multidimensional arrays
    2. Passing arrays as arguments to methods
    3. Returning Arrays from methods
    4. String Arrays
    5. Arrays of Objects
    6. Command-line arguments
    7. Variable length argument lists
    8. ArrayList/Vector Class
  8. Introduction to basic Search and Sorting algorithm
  9. Text Processing and Wrapper Classes
    1. Wrapper classes
    2. String object and related classes (e.g  StringBuilder)
  10. Inheritance, Abstract classes and Interfaces
    1. Calling superclass constructor and methods
    2. Protected members
    3. Polymorphism
    4. Abstract classes and abstract methods
    5. Interfaces
    6. Anonymous inner classes
  11. Exceptions and Advanced File I/O
    1. Handling and Throwing Exceptions
    2. Tokenizing Strings
    3. Binary and Random Access Files
    4. Object Serialization
  12. GUI and Event Handling through
    1. Swing and/or JavaFX
  13. Database Programming
Methods Of Instruction
  • Lecture
  • Seminar
  • Tutorial
  • Hands-on exercises in the lab
Means of Assessment

Means of Assessment 

 

Assignments    

10%-20%

Quizzes

10%-30%

Midterm Examination

20%-30%

Final Examination

25%-40%

Total

     100%

 

**In order to pass the course, students must, in addition to receiving an overall course grade of 50%, also achieve a grade of at least 50% on the combined weighted examination components (including quizzes, tests, exams).

Learning Outcomes

At the end of this course the successful student will be able to: 

  • Identify the purpose and behavior of a provided code fragment. 

  • Modify an existing code fragment to change its behavior. 

  • Modify conditional and iterative structures in a short program. 

  • Write well-structured, well- documented, well-commented readable code. 

  • Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, basic conditional and iterative structures, and functions. 

  • Describe the syntax and semantics of conditional structures. 

  • Use conditional structures. 

  • Apply the techniques of decomposition to break a program into smaller pieces. 

  • Describe the role of formal and actual parameters of a function. 

  • Describe how strings and arrays are allocated, manipulated and used. 

  • Compare iterative and recursive solutions for elementary problems such as factorial. 

  • Formulate loop invariants for simple loops. 

  • Demonstrate loop termination. 

  • Implement, test, and debug simple recursive methods. 

  • Explain the philosophy of object- oriented design and the concepts of encapsulation, abstraction, inheritance, interface and polymorphism. 

  • Describe how the class mechanism supports encapsulation and information hiding. 

  • Compare and contrast the notions of overloading and overriding. 

  • Identify the scope of the variables involved in a given code. 

  • Access and program databases using various classes. 

  • Design GUI programs. 

  • Implement version control.
  • Construct class diagram, aggregation, and collaboration.
  • Describe the significance and benefits of version control.
  • Learn basic version control, assess the role of Git and create online repositories using Git.
  • Describe the basic Junit framework, Design effective unit test cases for Java lasses in Junit Execution Environment.
  • Design class diagrams which describe the structure of a system by modeling its classes, attributes, methods and relationships among objects.
Textbook Materials

 

  • Farrell. Java Programming. Latest Edition.  Course Technology.
  • or any alternative textbook approved by the Department.
  • Supplementary materials/references will be provided by the instructor

Requisites

Prerequisites

Courses listed here must be completed prior to this course:

Corequisites

Courses listed here must be completed either prior to or simultaneously with this course:

  • No corequisite courses

Equivalencies

Courses listed here are equivalent to this course and cannot be taken for further credit:

  • No equivalency courses

Requisite for

This course is not required for any other course.

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

Institution Transfer Details Effective Dates
Alexander College (ALEX) ALEX CPSC 2XX (3) 2019/05/01 to -
College of New Caledonia (CNC) CNC CSC 110 (3) 2019/05/01 to -
College of the Rockies (COTR) COTR COMP 1XX (3) 2019/05/01 to -
Kwantlen Polytechnic University (KPU) KPU INFO 2313 (3) 2019/05/01 to -
Simon Fraser University (SFU) SFU CMPT 1XX (3) 2019/05/01 to -
Thompson Rivers University (TRU) TRU COMP 2XXX (3) 2019/05/01 to -
University Canada West (UCW) UCW CMPT 2XX (3) 2019/05/01 to -
University of British Columbia - Okanagan (UBCO) UBCO COSC 2nd (3) 2019/05/01 to -
University of British Columbia - Vancouver (UBCV) UBCV CPSC 2nd (3); DOUG CSIS 1175 (3) & DOUG CSIS 2175 (3) = UBCV CPSC 1st (3) & UBCV CPSC 2nd (3), Exempt UBCV CPSC 110 2019/05/01 to -
University of Northern BC (UNBC) UNBC CPSC 2XX (3) 2019/05/01 to -
University of the Fraser Valley (UFV) UFV COMP 2XX (3) 2019/05/01 to -
University of Victoria (UVIC) UVIC CSC 2XX (1.5) 2019/05/01 to -
Vancouver Island University (VIU) VIU CSCI 160 (4) 2019/05/01 to -

Course Offerings

Winter 2021

CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
16475
Tue
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
Wong
Tak Lam
Open
Online
Students will NOT receive credit for both CSIS 1275 and CSIS 2175.

This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
30
0
30
0
Days
Building
Room
Time
Tue
12:30 - 15:20
CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
16476
Wed
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
Wong
Tak Lam
Open
Online
Students will NOT receive credit for both CSIS 1275 and CSIS 2175.

This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
30
0
30
0
Days
Building
Room
Time
Wed
12:30 - 15:20
CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
16477
Fri
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
Virani
Rahim
Open
Online
Students will NOT receive credit for both CSIS 1275 and CSIS 2175.

This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
30
0
30
0
Days
Building
Room
Time
Fri
12:30 - 15:20
CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
16478
Thu
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
TBA
(Faculty)
Open
Online
Students will NOT receive credit for both CSIS 1275 and CSIS 2175.

This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
30
0
30
0
Days
Building
Room
Time
Thu
15:30 - 18:20