0% found this document useful (0 votes)
17 views

CSC 211 - Course Outline

CSC 211(JAVA) course outline

Uploaded by

Okikiola Gbeleyi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

CSC 211 - Course Outline

CSC 211(JAVA) course outline

Uploaded by

Okikiola Gbeleyi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

CSC 211 - Software Workshop II (Java)

1. Introduction to Object-Oriented Programming in Java

• Basic concepts of OOP: Understanding objects, classes, encapsulation, abstraction, inheritance, and
polymorphism.
• Java platform overview: Introduction to Java’s architecture, JVM (Java Virtual Machine), and JDK (Java
Development Kit).

2. Classes and Objects

• Class structure: Defining classes, creating objects, using constructors, and initializing object states.
• Object lifecycle: Understanding object creation, memory allocation, and garbage collection in Java.

3. Syntax of Class Definitions, Methods, and Members

• Class syntax: Declaring classes, attributes (fields), and methods.


• Access modifiers: Public, private, protected, and package-private access control in Java.
• Method overloading: Using method overloading to enhance flexibility in classes.

4. Simple Data Types, Variables, and Expressions

• Primitive data types: Understanding Java's basic types (int, char, float, double, boolean, etc.).
• Reference data types: Arrays, strings, and objects.
• Variable declarations: Local vs. instance variables, scope, and lifetime of variables.
• Expressions and operators: Arithmetic, relational, logical, and assignment operators in Java.

5. Inheritance

• Basic inheritance: Extending classes, method overriding, and the super keyword.
• Abstract classes and interfaces: Defining abstract classes and implementing interfaces for multiple
inheritances.
• Composition vs inheritance: Understanding when to use each and the implications in design.

6. Simple Data Structures: Arrays, Strings, Collection Classes

• Arrays: Declaring, initializing, and manipulating arrays in Java.


• Strings: Working with String class and methods for string manipulation (concatenation, comparison,
substring, etc.).
• Java Collections Framework: Introduction to collections like ArrayList, LinkedList, HashMap, and HashSet.

7. Iteration Protocols

• Loops and control flow: Mastery of for, while, do-while loops, and enhanced for-loops in Java.
• Iterators: Using iterators for traversing data structures, especially with collection classes.
• Streams API (optional): Introduction to Java 8 Streams API for working with sequences of elements and
performing operations.

8. Using APIs: Class Libraries and Packages for Graphics and GUI Applications
• Java Standard Library: Using core Java packages like java.util, java.lang, java.io, and java.math.
• Graphics and GUI programming: Basics of Swing and AWT for building graphical user interfaces (GUI).
• Event-driven programming: Handling user input through listeners and event handlers.

9. Object-Oriented Design

• Principles of OOP design: SOLID principles (Single responsibility, Open-closed, Liskov substitution,
Interface segregation, Dependency inversion).
• Encapsulation and modular design: Designing modular and reusable code using OOP concepts.
• Designing with classes and objects: Best practices for defining interactions between objects.

10. Fundamental Design Concepts and Principles

• Design principles: Coupling and cohesion, separation of concerns, and code reusability.
• UML diagrams: Basic understanding of class diagrams, sequence diagrams, and use case diagrams in the
design phase.
• Modularization: Structuring code into manageable components for clarity and maintainability.

11. Introduction to Design Patterns

• Overview of design patterns: Importance and use of design patterns in software development.
• Creational patterns: Singleton, Factory, Builder.
• Structural patterns: Adapter, Decorator, Composite.
• Behavioral patterns: Observer, Strategy, Command.

12. Object-Oriented Analysis and Design Testing

• Software testing fundamentals: Writing unit tests for classes and methods.
• JUnit framework: Introduction to JUnit for automated testing of Java code.
• Test-driven development (TDD): Building software by writing tests first and then writing the code to pass
those tests.

13. Risk and Liabilities of Computer-Based Systems

• Software risks: Identifying risks in software development, such as security vulnerabilities, performance
bottlenecks, and scalability.
• Legal and ethical liabilities: Discussing intellectual property, privacy concerns, and ethical considerations
in software design.

14. Emphasis on Design and Implementation Strategies

• Agile methodologies: Overview of Agile software development, Scrum, and iterative design.
• Version control with Git: Using Git for managing code, branches, and collaboration.
• Refactoring: Techniques for improving existing code without changing its functionality.

15. Individual-Based Lab Projects

You might also like