Topics
Numbers
Encodings
- Binary Encodings for Integers and Real Numbers Using a Finite Number of Bits (Signmagnitude, Twos Complement, Mantissaexponent Notation)
- Basic Operations on Integers and Floating Point Numbers
- Limitations of Finite Representations
- Internal Storage Encoding of Characters - ASCII, ISCII (Indian Scripts Standard Code for Information Interchange), and UNICODE (For Multilingual Computing)
High Level Structure of Computer
Basic Architecture of a Simple Processor and Its Instruction Set
Propositional Logic, Hardware Implementation, Arithmetic Operations
Memory
System and Other Software
Introduction to Algorithmic Problem Solving Using Java
Objects
Primitive Values, Wrapper Classes, Types and Casting
Variables, Expressions
Statements, Scope
Functions
- Functions/Methods (As Abstractions for Complex User Defined Operations on Objects)
- Functions as Mechanisms for Side Effects
- Formal Arguments and Actual Arguments in Functions
- Different Behaviour of Primitive and Object Arguments
- Static Functions and Variables
- The "This" Variable
- Examples of Algorithmic Problem Solving Using Functions (Various Number Theoretic Problems, Finding Roots of Algebraic Equations)
Arrays, Strings
- Structured Data Types - Arrays (Single and Multi-dimensional), Strings
- Example Algorithms that Use Structured Data Types (E.G. Searching, Finding Maximum/Minimum, Sorting Techniques, Solving Systems of Linear Equations, Substring, Concatenation, Length, Access to Char in String, Etc.)
- Basic Concept of a Virtual Machine
- Java Virtual Machine
- Compilation and Execution of Java Programs (The Javac and Java Programs)
- Compile Time and Run Time Errors
- Basic Concept of an Exception
- The Exception Class
- Catch and Throw
Elementary Data Structures and Associated Algorithms, Basic Input/Output
- Class as a Contract
- Separating Implementation from Interface
- Encapsulation
- Private and Public Limited Company
- Interfaces in Java
- Implementing Interfaces Through a Class
- Interfaces for User Defined Implementation of Behaviour
- Basic Data Structures (Stack, Queue, Dequeue)
- Implementation Directly Through Classes
- Definition Through an Interface and Multiple Implementations by Implementing the Interface
- Basic Algorithms and Programs Using the Above Data Structures
- Basic Input/Output Using Scanner and Printer Classes from JDK
- Files and Their Representation Using the File Class
- File Input/Output
- Input/Output Exceptions
- Tokens in an Input Stream
- Concept of Whitespace
- Extracting Tokens from an Input Stream (StringTokenizer Class)
- Concept of Recursion
- Simple Recursive Functions (e.g. Factorial, GCD, Binary Search, Conversion of Representations of Numbers Between Different Bases)
- Concrete Computational Complexity
- Concept of Input Size
- Estimating Complexity in Terms of Functions
- Importance of Dominant Term
- Best, Average and Worst Case
Implementation of Algorithms to Solve Problems
Social Context of Computing and Ethical Issues
- Intellectual Property and Corresponding Laws and Rights
- Software as Intellectual Property
- Software Copyright and Patents and the Difference Between the Two
- Trademarks
- Software Licensing and Piracy
- Free Software Foundation and Its Position on Software
- Open Source Software
- Various Types of Licensing (Eg. GPL, BSD)
- Privacy, Email Etiquette, Spam, Security Issues, Phising
If you would like to contribute notes or other learning material, please submit them using the button below.
Advertisement Remove all ads