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