B Sc Computer Science, which is a Bachelor of Science degree in the field of Computer Science (Bachelor of Computer Science), still stands to be one of the most popular degrees. Eligibility for B Sc Computer Science programs varies from college to college but will typically require you to complete Class 12 boards with Physics, Chemistry and Mathematics or at least with Mathematics. B Sc Computer Science points at a variety of job openings in the software and IT industries of today, with multiple opportunities in India and abroad mostly after post graduation& higher qualifications.
B Sc Computer Science: Introduction
B Sc Computer Science is typically a 3-year long program. B Sc Computer Science syllabus covers all aspects of computers right from the basic fundamentals of computers.
Basic fundamentals include
- All functions of computing devices
- How they operate through high level/low level/ assembly languages
- High-level languages (HLLs) are the ones that programmers use for coding in modern times. C++, Java, Python, Perl, Ruby, etc are all examples. Anyone or a combination of these can be used to build software.
- All HLLs are broken down into assembly languages first. These are simplified versions of the HLLs. Assembly language uses both alphabets and numbers and some special characters like # (hash) \ (backslash)etc.
- Assembly language codes are further broken down into machine code.
- Machine language is the only one the machines understand. All computers in the world operate on machine language. Machine language is a sequence of 1’s and 0’s only, no characters, no letters and no other number.
- So the HLLs and assembly codes have to be translated to machine language and then the computer does what the code asks it to do. This is called the ‘execution of the code’.
- For an example, if you want to print “Hello World” on your computer screen, you write the program in C++ (suppose), then the computer converts the program (of 2/3 lines) to assembly language (simplified version; several lines) which is then translated into a string of 1’s and 0’s (machine code; many more lines). After this, the computer actually prints “Hello World” on the screen (execution of the print command in this case)! All of this is done in less than half a second.
- So the first few stages are just about translation from one language to the other. The translation is also done by the computer itself but it does not perform the ‘printing’ function (in this case).
- Assembly and Machine language systems, hardware-level processing are hardly given emphasis at undergraduate degree level syllabi across colleges. Programming with HLLs and other associated technologies receive maximum proportion.
- Discrete mathematics – involves higher mathematics, calculus and statistics mostly, Class 11-12 level onwards
- Electronics and Semiconductor Physics: this deals with how the electronic circuits, the memory of a computer, etc works after the HLL code is converted to machine code or object code (also called binary code). The final execution of the code is carried out by the electronic chips inside the memory of a computer.
Most of the course is taught using popular in-demand programming languages like C, C++ and JAVA.
Note: Every programmer today uses any one of the high level languages to write codes (C++ and Python are the most popular). HLLs can also be used in combination.
‘C’ is almost obsolete.
Codes can also be written manually in the low level languages but it is a very very lengthy process and hence the HLLs were invented. HLLs are written by humans and translated into assembly/ machine by computer. HLLs are converted to low level languages (to both assembly and machine) by a computer itself. When translation till machine level is reached, the computer executes a task because it only understands machine language.
Every computer uses machine codes without which it does not run.
C++ is taught at Class 12 levels too and is highlighted as a good first language to learn.
Computer programs, called the “source code”, are written in high level languages (HLL). Human programmers write these source codes in HLLs
Every programmer today uses any one of the high level languages to write codes (C++ and Python are the most popular). HLLs can also be used in combination.
For an example, if you want to print “Hello World” on your computer screen, at Step 01 you write the program in C++ (or any other HLL)
Source code goes through a language processor which may be a compiler or an interpreter or a combination of both.
As per the example, your C++ HLL script to print ‘Hello World’ will go through the compiler at this Step 02
Things to remember at this step
- All computer programs/ source codes mandatorily have to be converted to machine language in order to be executed.
- Machine language (sequence of 1’s and 0’s) is the only one that computer hardware understands through logic gates.
- Logic gates detect the presence or absence of electricity (1 means presence and 0 means absence).
- All source codes are either ‘compilable’ or ‘interpretable’.
- The source code when ‘compilable’, is driven into a ‘compiler’ that converts the entire code “all together” into machine language. It converts the whole code into machine language at a time.
- The source code when ‘Interpretable’, is driven into an ‘interpreter’ that converts the source code “line by line” and not altogether like a compiler.
- Some high level scripts (languages) like Perl, Python etc need an Interpreter and not a Compiler to convert those scripts.
- On the other hand, C, C++, JAVA are compilable.
- Every programming language has its own inbuilt compiler or interpreter.
The processors (compiler or interpreter) ‘processes’ HLL codes or source codes and turns them into machine language (object code).
Processors break down the source code (written in HLL) into machine language (easy for a computer to understand), a sequence of 1’s and 0’s.
Source code is turned into object code at this step.
As per the example, at this step 03, the compiler will convert your C++ script adding many more lines to generate the machine code or object code (sequence of 1’s and 0’s).
The object code in machine language (a sequence of 1’s and 0’s) goes into the computer hardware (electronic circuitry containing logic gates). Hardware understands the ‘object code’ in machine language.
As per the example, at this step 04, the hardware and logic gates understand the object code (sequence of 1’s and 0’s), which was converted from your C++ source code. By ‘understand’, we mean it decodes the program into the presence and absence of electricity. 1 means presence and 0 means absence.
Hardware gives us an output such as an executable file or another program or simply text etc.
As per the example, at this step, the computer actually prints “Hello World” (simply text) on your computer screen (execution of the print command in this case).
All of this occurs in far less than half a second!
Things to remember at this step
- If the source code has some error in it or is not thoroughly compilable or interpretable internally, we obviously do not get output or are showing error messages and lists of errors, etc.
- The errors must be removed from the source code before it can successfully be recompiled or reinterpreted again.
B Sc Computer Science Syllabus– Core Subjects
Here we have organized a list of 17 selected subjects that form the core syllabus of B Sc Computer Science courses in most colleges. These are most common papers that you will find. Detailed descriptions of some of these subjects follow in the next sections.
Along with these papers, B Sc Computer Science syllabus, across all colleges in India, typically include few papers for Physics and Discrete Mathematics too.
List of 17 selected subjects that form the core B Sc Computer Science Syllabus
- Fundamentals of Computer Organization & Embedded Systems
- Computer System Architecture
- Discrete Structures
- Operating Systems & Data Structures
- Theory of Computation
- Design & Analysis of Algorithms
- Introductory & Advanced Programming in Python, C++ and Java
- Dynamic Circuit Networks in Java
- Software Engineering
- Database Management Systems
- Data Communication, Networking, Security and Testing
- Computer Graphics
- Socket Programming and Remote Method Invocation (RMI)
- Multithreading, Swing and Java Database Connectivity (JDBC)
- Principles of Web Design, Web Technologies and Dot Net Technologies
- Oracle& Linux
- AJAX, PHP and ASP.NET
B Sc Computer Science Syllabus: Detailed Contents of 11 Core Subjects
We have curated the contents of 11 specific topics in the core B Sc Computer Science syllabus. This is a model representation of the detailed contents of the usual B Sc Computer Science subjects of the core syllabus followed in most B Sc Computer Science colleges.
Core B Sc Computer Science Subjects: Computer System Architecture
Logic gates, boolean algebra, combinational circuits, circuit simplification, flip-flops and sequential circuits, decoders, multiplexers, registers, counters and memory units.
Data Representation and Basic Computer Arithmetic
Number systems, complements, fixed and floating-point representation, character representation, addition, subtraction, magnitude comparison, multiplication and division algorithms for integers
Basic Computer Organization and Design
Computer registers, instruction set, bus system, timing and control, memory reference, instruction cycle,
Interconnection Structures, input-output and interrupt, Bus Interconnection design of basic computer.
Central Processing Unit
Arithmetic and logical micro-operations, microprogrammed control, RISC, CISC architectures, machine language, assembly language, pipelining and parallel architecture, etc.
Cache memory, Associative memory, mapping
I/O Modules, External Devices, Interrupt-Driven I/O, Direct Memory Access, Programmed I/O, I/O Channels.
Core B Sc Computer Science Subjects: Discrete Structures
Sets – finite and Infinite sets, uncountable Infinite Sets; functions, relations, Properties of Binary Relations etc.
Growth of Functions:
Asymptotic Notations, Summation formulas and properties, Bounding Summations, approximation by Integrals
Recurrence Relations, generating functions, Linear Recurrence Relations with constant coefficient and their solution, Substitution Method, Recurrence Trees, Master Theorem
Basic Terminology, Basic Terminology and properties of Trees, Trees, Introduction to Spanning Trees, Graph Representation, Euler and Hamiltonian Paths and Circuits, multigraphs and weighted graphs, Graph Isomorphism, Graph Coloring, Planar Graphs,
Logical Connectives, Well-formed Formulas, Tautologies, Equivalences, Inference Theory
Core B Sc Computer Science Subjects: Data Structures
Single and Multi-dimensional Arrays, Sparse Matrices (Array and Linked Representation)
Prefix, Infix and Postfix expressions, Applications of stack; Implementing single / multiple stack/s in an Array; Utility and conversion of these expressions from one to another; Limitations of Array representation of stack
Normal and Circular representation of Stack in Lists; Singly, Doubly and Circular Lists (Array and Linked representation); Self Organizing Lists
Array and Linked representation of Queue, De-queue, Priority Queues
Simple Problems, their implementation; Advantages and Limitations of Recursion etc
Introduction to Tree as a data structure; Binary Trees (Insertion, Deletion , Recursive and Iterative Traversals on Binary Search Trees); Threaded Binary Trees (Insertion, Deletion, Traversals); Height-Balanced Trees (Various operations on AVL Trees).
Searching and Sorting
Binary Search, Linear Search, Comparison of Linear and Binary Search, Insertion Sort, Selection Sort, Shell Sort, Insertion Sort, Comparison of Sorting Techniques
Introduction to Hashing, Efficiency of Rehash Methods, Choosing a Hash Function, Perfect Hashing Function Deleting from Hash Table, Hash Table Reordering, Separate Chaining, Coalesced Hashing, Dynamic and Extendible Hashing etc.
Core B Sc Computer Science Subjects: Theory of Computation
Alphabets, language, string, Basic Operations, KleeneStar, Concatenation
Finite Automata and Regular Languages
Regular Expressions, Transition Graphs, Deterministics and non-deterministic finite automata, NFA to DFA Conversion, Regular languages and their relationship with finite automata, Pumping lemma and closure properties of regular languages.
Context free languages
Context free grammars, ambiguities in grammars and languages, parse trees, Pushdown automata, Properties of context free languages, Pumping Lemma.
Turing Machines and Models of Computations
Turing Machine, Universal Turing Machine, Language acceptability/decidability, RAM, halting problem, Recursively enumerable languages, recursive languages, insolvability
Core B Sc Computer Science Subjects: Programming Fundamentals using C++
History of C and C++, Procedural Programming and Object-Orientation Programming, main() function
Data Types, Variables, Constants, Operators and Basic I/O
Variables, Scope of Variables, Named Constants, Keywords, Data Types, Casting of Data Types, Operators (Arithmetic, Logical and Bitwise), Character I/O (getc, getchar, putc, putcharetc), Formatted and Console I/O (printf(), scanf())etc.
Expressions, Conditional Statements and Iterative Statements
Simple Expressions in C++ (including Unary Operator Expressions, Binary Operator Expressions), Understanding Operators Precedence in Expressions, Conditional Statements (if construct, switchcase construct), Understanding syntax and utility of Iterative Statements etc
Functions and Arrays
Call by Value/ Reference, Command Line Arguments/Parameters in Functions, Functions with variable number of Arguments. Initializing an Array, Use Various types of arrays (integer, float and character arrays / Strings) Creating and Using One Dimensional Arrays ( Declaring and Defining an Array, Manipulating array elements using loops),Accessing individual elements in an Array, Two-dimensional Arrays, Introduction to Multi-dimensional arrays, etc.
Pointers and References in C++
Understanding a Pointer Variable, Simple use of Pointers (Declaring and Dereferencing Pointers to simple variables), Pointers to Pointers, Pointers to structures, Problems with Pointers, Passing pointers as function arguments, Returning a pointer from a function, using arrays as pointers, Passing arrays to functions. Pointers vs. References
Memory Allocation in C++
Differentiating between static and dynamic memory allocation, use of malloc, calloc and free functions, use of new and delete operators, storage of variables in static and dynamic memory allocation
File I/O, Preprocessor Directives
Opening and closing a file (use of fstream header file, ifstream, ofstream and fstream classes), Reading and writing Text Files, Using put(), get(), read() and write() functions, Random access in files, Understanding the Preprocessor Directives (#include, #define, #error, #if, #else, #elif, #endif, #ifdef, #ifndef and #undef), Macros
Using Classes in C++
Principles of Object-Oriented Programming, Class Variables &Functions, Copy Constructors, Overview of Template classes etc
Overview of Function Overloading and Operator Overloading
Need of Overloading functions and operators, Overloading functions by number and type of arguments, Looking at an operator as a function call, Overloading Operators (including assignment operators, unary operators)
Inheritance, Polymorphism and Exception Handling Introduction to Inheritance (Multi-Level Inheritance, Multiple Inheritance), Polymorphism (VirtualFunctions, Pure Virtual Functions), Basics Exceptional Handling (using catch and throw, multiple catch statements), Catching all exceptions, Restricting exceptions, Rethrowing exceptions.
Core B Sc Computer Science Subjects: Programming in Java
Introduction to Java
Java Architecture and Features, Compiling and Executing a Java Program, Understanding the semantic and syntax differences between C++ and Java, Operators (Arithmetic, Logical and Bitwise) and Expressions, Java Methods etc
Arrays, Strings and I/O
To & From Methods, String Buffer Classes. Simple I/O using System.out and the Scanner class, Byte and Character streams, Reading/Writing from console and files etc.
Object-Oriented Programming Overview
Defining & Using Classes, Principles of Object-Oriented Programming, Method Overloading, Class Constructors, Controlling Access to Class Members, Objects as parameters, Object class, final classes, Class Variables & Methods, Garbage Collection, etc.
Inheritance, Interfaces, Packages, Enumerations, Autoboxing and Metadata
Inheritance: (Single Level and Multilevel), Wrapper Classes, Autoboxing/Unboxing, Enumerations and Metadata.
Exception Handling, Threading, Networking and Database Connectivity
Exception types, uncaught exceptions, throw, built-in exceptions, Creating your own exceptions; Multi-threading
The Thread class and Runnable interface, creating single and multiple threads, Thread prioritization, synchronization and communication, suspending/resuming threads. Using java.net package, Overview of TCP/IP and Datagram programming. Accessing and manipulating databases using JDBC etc.
Applets and Event Handling
Java Applets: Introduction to Applets, Writing Java Applets, Working with Graphics, Incorporating Images & Sounds. Event Handling Mechanisms, Listener Interfaces, Adapter and Inner Classes, Overview of servlets etc.
Core B Sc Computer Science Subjects: Software Engineering
Software Characteristics, Software Engineering as a Layered Technology, Software Process Framework, Process Models, Framework and Umbrella Activities, Capability Maturity Model Integration (CMMI)
Initiating Requirement Engineering Process, Software Requirement Analysis, Flow Oriented Modeling, Requirement Analysis and Modeling Techniques, Characteristics and Components of SRS, Need for SRS etc.
Software Project Management
Estimation in Project Planning Process.
Risk Identification, RMMM Plan, Risk Projection and Risk Refinement etc
Quality Concepts, Software Reviews, Software Quality Assurance, Metrics for Process and Projects.
Design Concepts, Data Design at the Architectural Level and Component Level, Software Architecture, Architectural Design Elements, Modeling Component Level Design, Mapping of Data Flow into Software Architecture
Testing Strategies & Tactics
Strategic Approach to Software Testing, Software Testing Fundamentals, Black-Box Testing, Test Strategies for Conventional Software, Validation Testing, System Testing, White-Box Testing etc.
Core B Sc Computer Science Subjects: Database Management Systems
Database approach, database system architecture, data models, and data independence
Entity Relationship(ER) Modeling
Entity types, relationships, constraints.
Relation data model
Relational model concepts, relational constraints, relational algebra, SQL queries
Functional dependencies, ER/EER model to relational database, Normal forms (upto BCNF), Lossless decomposition
ACID properties, concurrency control
File Structure and Indexing
Operations on files, File of Unordered and ordered records, overview of File organizations, Primary index, secondary index, clustering index, B and B+ trees
Core B Sc Computer Science Subjects: Internet Technologies
Use of Objects, Array and ArrayList class
Data types, functions, control structures, operators, and events/ event handling.
Fundamentals, Connectivity and connection interface, statements, SQL Statements, Result Set Objects.
Introduction, HTTP and Servlet, JSP Page, Sharing Data Between JSP Pages, JSP Processing, JSP Application Design, MVC, JSP Environment, JSP Objects, Conditional Processing, Set an Attribute, Variables and Methods, Error Handling / Debugging
Fundamentals, Developing a simple Bean, JAR files, Introspection etc
Core B Sc Computer Science Subjects: Artificial Intelligence
Background / Applications of AI, Rational Agent approaches, Turing Test, Intelligent Agents, their structure/ behavior / environment
Problem Solving and Searching Techniques
Problem Characteristics, Control Strategies, Production Systems, Depth First Search, Breadth First Search, Hill climbing, Heuristics Search, A* algorithm, Constraint Satisfaction, Means-End, Game Playing, Alpha-Beta and Min-Max pruning algorithms.
First Order Predicate Logic, Unification, Resolution Principle, Conceptual Dependencies, Semantic Nets, Scripts, and Frames, Conceptual Graphs, Production Rules, PROLOG
Dealing with Uncertainty and Inconsistencies
Default Reasoning, Truth Maintenance System, Bayesian Probabilistic Inference, Probabilistic Reasoning, Possible World Representations.
Understanding Natural Languages
Context-Free / Transformational Grammars, Parsing Techniques, Recursive / Augmented Transition Nets
Core B Sc Computer Science Subjects: Computer Graphics
Basic elements and Applications
Raster and Random scan display , I/O devices.
Fundamental Techniques in Graphics
Raster scan line, circle and ellipse drawing, thick primitives, Polygon filling, line and polygon clipping algorithms, 2D and 3D Geometric Transformations, 2D and 3D Viewing Transformations(Projections- Parallel and Perspective), Vanishing points.
Representing curves & Surfaces
Visible Surface determination
Hidden surface elimination
Illumination and shading, Basic color, Computer Animation
List of 12 Optional B Sc Computer Science Subjects
In addition to the core syllabus mentioned above, you will have to take compulsory discipline-specific/ general electives, skill/ ability enhancement papers, project work or dissertation papers as well, in case you take admission to a college that follows the CBCS (Choice Based Credit System) based framework.
Some regular B Sc Computer Science colleges may also require students to take supplementary papers, the marking scheme certainly differs.
These compulsory papers can be chosen from a set of options that will be given to you each semester.
Here we have selected 12 examples of such additional/ optional papers:
Detailed descriptions of these topics follow in the next sections.
- Systems Programming
- Numerical Methods (Programming with Computer Algebra Systems: MATLAB/ Mathematica/ Maple)
- Operational Research for Computer Science
- Modeling and Simulation
- Advanced Data Structures and Algorithms
- Machine Learning
- Introduction to Data Sciences
- Combinatorial Optimization
- Digital Image Processing
- Data Mining
- Android Programming
B Sc Computer Science Syllabus: Detailed Contents of 12 Optional Subjects
Optional/Additional papers are choices given to you by your college. We have curated their model syllabi, in details, as observed by reputed B Sc Computer Science colleges in India.
As a student, you are to choose as many electives / enhancement / dissertation papers as required from a list of topics given to you by your respective college. We have listed 12 separate topics in this section.
Optional B Sc Computer Science Subjects: Systems Programming
Assemblers & Loaders, Linkers:
Design of an assembler, 1 pass and 2 pass assembler, relocation and linking concepts, Absolute loader, Dynamic Linkingand relocating loader
Overview of compilation, Phases of a compiler
Role of a Lexical analyzer, tokens, lex,Symbol table,
Bottom up parsing- LR parser, yacc.
3- address code generation, translation of types, syntax directed translation, control statements
Activation records, stack allocation
Object code generation
Optional B Sc Computer Science Subjects: Numerical Methods
Floating point representation and computer arithmetic, Significant digits, Errors: Round-off error, Local truncation error, Global truncation error, Order of a method, Convergence and terminal conditions, Efficient computations
Bisection method, Secant method, Regula−Falsi method, Newton−Raphson method, Newton’s method for solving nonlinear systems
Gauss elimination and Gauss−Jordan method, Gauss-Thomas, Jacobi and Gauss-Seidel iterative methods
Lagrange’s form and Newton’s form operators, Gregory Newton forward and backward differences, Interpolation Piecewise polynomial interpolation, Cubic spline interpolation
Richardson extrapolation, 1st derivatives and 2nd order derivatives
Trapezoid rule, Newton−Cotes open formulas, Simpson’s rule, Gaussian quadrature, Romberg integration, Ordinary differential equation (Euler’s), Heunand Mid-point method, Runge-Kutta, Ralston’s method, 4th order Runge-Kutta, linear ODE
Optional B Sc Computer Science Subjects: Operational Research for Computer Science
Introductory Linear Algebra
linear equations, Matrices, Rank, Determinant, dependent and independent vectors
Optimization, Extreme points, LP Formulation, Convex sets, Basic feasible solutions (BFS), Geometry of Linear Programs, Local and global optima, Pivoting, Profitable Column, Simplex Algorithm, Graphical method, Bland’s Anticycling rule, Degeneracy, Simplex Algorithm, two phase method, M-Charnes method, special cases
Definition, economic interpretation of duality, primal-dual relationships, complementary slackness
Transportation Algorithm, Hungarian Method, Assignment model,
Elements, Exponential distribution, Poisson Queuing /Poisson Distributions, Single Server/ Multiple Server model
Introduction, classification of states, transition probabilities, Steady state, Absorbing states
Optional B Sc Computer Science Subjects: Microprocessor
Microprocessor architecture: Internal architecture, memory and I/O interfaces, system bus architecture,
Microprocessor programming: Register Organization, AssemblyLanguageprogramming, instruction formats
Interfacing: Memory address decoding, I/Ointerface,cache memory and cache controllers, keyboard, timer, display, DMA controller, video controllers, interrupt controller, communication interfaces
System models and System studies
Concept of a System, Types of Models, Principles used in Modeling, Continuous and Discrete Systems,System Modeling, Deterministic and Stochastic Activities, CorporateModel, System Design.
What is Simulation?
The Monte-Carlo Method, Technique of Simulation, Simulation and AnalyticalMethods, Types of System Simulation, Experimental nature of Simulation, NumericalComputation Techniques for Continuous Models / Discrete Models, Cobweb Models, Distributed Lag Models
Continuous System Simulation
Differential Equations & Applications, Interactive systems, Continuous System Models, Simulation of an Autopilot, Feedback Systems, Real Time Systems
Concepts in Discrete Event Simulation
The Event Scheduling / Time Advance Algorithm, Manual Simulation using Event Scheduling, World Views, List Processingand operations, Use of arrays, Dynamic Allocation, Linked Lists.
Characteristics of Queuing Systems, Queue Discipline, Arrival and Service Patterns, Long Run Measures, Time-Average Number, Server Utilization, Costs in Queuing, Infinite Population Markovian Models, Steady State behavior, Multi-server Queue
Simulation Packages, General Purpose vs Application Oriented Simulation Packages, Desirable Software Features, H/w, and S/w Requirements, Statistical Capabilities, Animation, and Dynamic Graphics, Object-Oriented Simulation, Simulation in GPSS
Random Number, Non-Uniform random variate Generation and Monte-Carlo Method
Linear Congruential Generators, Testing Random Number Generators, Non-Uniform Random Variate Generator, Generating Continuous Random Variate, Generating Discrete Random Variates, Monte-Carlo Method: Integral-Hit orMiss Method.
Analysis of Simulation Data
Identifying the Distribution with Data, Stochastic nature of Output Data, Types of Simulations with respect to Output Analysis, Point Estimation, Confidence-Interval Estimation, Output Analysis for Terminating Simulations, Output Analysis, Variance-Reduction Technique-Antithetic variates
Verification and Validation of Simulation Models
Model Building, Verification of Simulation Models, Calibration and validation of Models:, Validating Input-output Transformations, Input-Output Validation
Optional B Sc Computer Science Subjects: Advanced Data Structures and Algorithms
Advanced Data Structures
Fibonacci heaps, Dynamic Data Structures, Priority Queues.
Divide and Conquer
Integer Multiplication, Closest pair of points, Fast Fourier Transforms and Convolutions
Interval Scheduling, Stays Ahead and Exchange Arguments
Principles, Segmented Least Squares,Weighted Interval Scheduling, Subset Sums & Knapsacks
Ford Fulkerson Algorithm, Max-flow problem, Bipartite Matching, Maximum flows and Minimum Cuts,
Polynomial-time reductions, Efficient Certification and Definition of NP, satisfiability problem, NP Complete problems, Partitioning problems, Sequencing problems, co-NP and asymmetry of NP
Optional B Sc Computer Science Subjects: Machine Learning
Concept / Applications of ML, Key elements of ML, Supervised vs. Unsupervised Learning, The Naïve Bayes Classifier, Bayesian Method
Softwares for Machine Learning and Linear Algebra Overview
Vectorization, Plotting of Data, Matrices and Vectorsusing MATLAB
Gradient Descent, Prediction, Linear Regression with one / multiple variables, Feature Scaling/Selection, Polynomial Regression
Logistic Regression, Linear Regression, Logistic Regression with one / multiple variables
The problem of Overfitting, Application in Linear and Logistic Regression, Bias/Variance.
Introduction, Perceptron Training vs. Gradient Descent, Stochastic Gradient Descent, Multiclass Representation, Multilayer Perceptrons, Backpropagation Algorithm
Optional B Sc Computer Science Subjects: Data Sciences
Data Scientist’s Tool Box: version control, git, markdown, R, GitHub, and RStudio
R Programming Basics: R data types and objects, Control structures, reading and writing data,functions, dates and times, scoping rules, debugging tools, Simulation, Loop functions, code profiling
Getting and Cleaning Data: Obtaining data from APIs, and from databases, basics of data cleaning.
Exploratory Data Analysis: summarizing data, eliminating or sharpening potential hypotheses, multivariate statistical techniques, visualize high-dimensional data.
Reproducible Research: using R markdown, integrate live R code, compile R markdown, knitr and related tools
Optional B Sc Computer Science Subjects: Combinatorial Optimization
Algorithmic Perspective to Simplex Method
Geometry of Linear Programs, LP Formulation, Theory of Simplex Algorithm, Avoiding cycles, Geometricinterpretation of Degeneracy, Basic Feasible Solutions
Integrality gap, Cutting-plane algorithm, Branch and Bound algorithm, Applications of Travelling Salesman Problem
Interpretation of Dual, Optimality conditions, primal-dual algorithms based onslackness, shortest path problem, vertex and set cover.
Network and Flow Algorithms
Bellman-Ford algorithm, Floyd Warshall algorithm,LP formulations of shortest path problem, bipartite matchingand network flows, Cycle-cancelling, integral polyhedra
Optional B Sc Computer Science Subjects: Digital Image Processing
Light, Pixels, Brightness adaption and discrimination, Imaging Geometry, coordinate conventions, Spatial Domain Filtering, Perspective Projection, sampling and quantization.
Spatial Domain Filtering
Intensity transformations, histogram equalization, Correlation and convolution,contrast stretching, sharpening filters, Smoothing filters, Laplacian
Filtering in the Frequency domain
Fourier Transforms, Hotelling Transform, Correlation, Decimation in Frequency / Time Techniques, Convolution, Discrete Cosine Transform, 2-D sampling, Frequency domain filtering
Basic Framework, Image deformation and geometric transformations,Interactive Restoration, image morphing, Noise characterization, Restoration techniques, Adaptive filters, Noise restoration filters, Estimation of Degradation functions, Position invariant degradations, Restorationfrom projections.
Encoder-Decoder model, Entropy of an information source, Lossy and Lossless compression, Shannon’s 1st Theorem, Run length coding, Arithmetic Coding, Huffman Coding, LZW coding, Golomb Coding, Sub-image size selection, Transform Coding, DCT implementation using FFT, blocking artifacts, FAX compression, JBIG-2, Bit-plane encoding, Symbol-based coding, Bit-allocation, predictive coding, Threshold Coding, Zonal Coding, Lossless predictive coding, JPEG, Lossy Motion Compensation
Wavelet based Image Compression
Expansion of functions, Scaling functions, Multi-resolution analysis, Wavelet series expansion, MRA refinement equation, Discrete Wavelet Transform, Fast Wavelet Transform, Continuous Wavelet Transform, JPEG-2000 encoding, 2-D wavelet Transform, Digital Image Watermarking.
Morphological Image Processing
Basics, Erosion, SE, Opening, Dilation, Closing, Boundary Detection, Hit-or-Miss Transform, Hole filling, convex hull, Connected components, Geodesic Dilation, Reconstruction by dilation and erosion.
Point, line detection, Boundary detection based techniques, Hough transform, Edge detection/linking, local / regional processing, Otsu’s method, Thresholding, Iterative / Multivariable thresholding, Region-based segmentation, Watershed algorithm, Moving averages, Use of motion in segmentation
Optional B Sc Computer Science Subjects: Data Mining
Introduction: Basic DM Tasks, DM Issues, DM Metrics, DM from a Database Perspective.
Data Mining Techniques: A Statistical Perspective on DM, DecisionTrees, Neural Networks, Similarity Measures, Genetic Algorithms.
Classification: Distance-Based Algorithms, Statistical-Based Algorithms, Rule-Based Algorithms, Neural Network-Based Algorithms, Decision Tree-Based Algorithms, Combining Techniques.
Clustering: Hierarchical Algorithms, Similarity and Distance Measures, Clustering Large Databases, Partitional Algorithms, Clustering with Categorical Attributes
Association Rules: Basic, Parallel and Distributed Algorithms, Advanced Association Rule Techniques, Incremental Rules, Measuring the Quality of Rules.
Advanced Techniques: Web Mining, Temporal Mining, Spatial Mining
Optional B Sc Computer Science Subjects: Android Programming
Introduction: History & Introduction to Android Operating Systems, Android Development Tools &Architecture.
Overview of object-oriented programming using Java: Inheritance, Interfaces, Polymorphism, Threads, Overloading and Overriding, Abstract class, Java Virtual Machine.
Development Tools: Eclipse with ADT plug-in, Android sandwich/Jelly bean (Emulator), creating an android project, emulation, Deployment on USB-connected Android device.
User Interface Architecture: Application context, Activity life cycle, intents, multiple screen sizes.User Interface
Design: Form widgets, Layouts, Text Fields, toggle buttons, Button control, Spinners(Combo boxes), Menu, Images, Dialog.
Database: Understanding of and connecting with SQLite database
Online Reading / Supporting Material for Android Programming:
What You Must Know: Bachelor of Computer Science (B Sc Computer Science) Vs Information Technology
A laptop, a Kindle, a mobile phone, a camcorder, Microsoft Office Suite, search engines like Google Or DuckDuckGo, Windows Operating Systems, a Wireless Fidelity (Wi-Fi) Network, a Tata Sky TV box, a GPS unit, scientific calculators, a social networking site, a payment transaction service, are all examples of IT products and services.
All these IT products and services are designed, developed, and programmed by Computer Scientists and installed, tested, run, and maintained by IT professionals as well as Engineers from other disciplines.
Understand that in the game of IT vs Computer Science, job scope wise, there aren’t many differences. In most companies today, both Computer Science and Information Technology degree holders can work in the IT industry.
However, an IT career doesn’t necessarily require a Computer Science (CS) degree, although a CS degree opens certain doors that otherwise would not be available.
|Computer Science is the scientific & practical approach to computation, programming and other applications. That means they understand the “why” behind computer programs. It also includes abstract concepts like computational complexity theory.||Information Technology refers to the hardware, software, products & systems that result from the work of Computer Scientists and researchers from other associated disciplines linking aspects of engineering, science and mathematics.|
|Computer Science is the study of the principles of computing and how computers solve problems. Whereas, IT is the study of current tools/ computing techniques that can be used to best meet technological needs of a particular organization to bring out a desired effect or develop a product of the company.||Information Technology (IT) as an academic discipline which mostly deals with industry-oriented learning whereas Computer Science (CS) is more research-oriented. You may say that, Computer Scientists design tools and Information Technology professionals apply these tools.|
Most of the top-notch institutes (including all the IITs, IIITs, BITS and most NITs) have either Computer Science & Engineering or Information Technology but not both.
The difference between the two branches is not significant enough to warrant their simultaneous presence on campus at least in the eyes of the top engineering colleges of the country.
Further, for the few colleges that do offer both CSE and IT(Computer Science & Engineering and Information Technology), the difference in the course structure is minimal. Moreover, students from both branches are employable in the same set of industry sectors. Recruiting corporations make little difference between these disciplines while selecting students.
What You Must Know: Bachelor of Computer Science (B Sc Computer Science) Vs Bachelor of Computer Applications (BCA)
B Sc Computer Science vs. BCA
In spite of both having things in common, with regards to the syllabi, there lie major differences between them. Both are, however, 3-year long programs.
B Sc Computer Science vs. BCA: Example of Course Structures
|BCA(After Class 12 in any stream)|
Digital Computer Fundamentals
Computer Graphics and Animation
|B Sc Computer Science (After Class 12 with|
Physics, Chemistry, Mathematics)
C++, Java, Python Programming
Theory of Computation
Database Management Systems
Design and Analysis of Algorithms
The Top 50 B Sc Computer Science Colleges
We have curated a list of 50 top-rated B Sc Computer Science Colleges. These are highest rated in terms of academic reputation & sentiment in the academic community (popularity among students and performance).
|St. Joseph’s College, Bangalore||Lady Brabourne College, Kolkata|
|St. Stephen’s College, New Delhi||Indian Institute of Technology, Kanpur|
|Madras Christian College, Chennai||Indian Institute of Technology, Bhubaneswar|
|Christ University, Bangalore||Kristu Jayanti College, Bangalore|
|Miranda House, New Delhi||St Joseph’s College Devagiri, Calicut|
|Chennai Mathematical Institute||St Teresa’s College, Ernakulam|
|St. Xavier’s College, Mumbai||Sacred Heart College Thevara , Ernakulam|
|Oxford College of Science, Bangalore||Mount Carmel College – Bangalore|
|St. Francis College for Women – Hyderabad||Elphinstone College – Mumbai|
|Loyola College, Chennai||DeenDayal Upadhyaya College – New Delhi|
|Presidency College, Chennai||University Of Lucknow|
|Fergusson College, Pune||Institute of Actuarial and Quantitative Studies, Mumbai|
|K J Somaiya College Of Arts & Commerce, Mumbai||St Francis De Sales College, Nagpur|
|Chandigarh University||Kishinchand Chellaram College, Mumbai|
|Lovely Professional University||St Ann’s College, Hyderabad|
|NIMS University Jaipur||MOP Vaishnav College, Chennai|
|JSS Academy of Higher Education, Mysore||VELS Institute, Chennai|
|Ethiraj College, Chennai||Periyar Maniammai Institute, Thanjavur|
|Ramakrishna Mission Vivekananda College, Chennai||Queen Mary’s, Chennai|
|Kirti M Doongursee College, Mumbai||Dr Lankapalli Bullaiyya College, Visakhapatnam|
|The New College, Chennai||Women’s Christian College, Chennai|
|Ramniranjan Jhunjhunwala College, Mumbai||Bishop Heber College, Thiruchirapalli|
|Mohamed Sathak College, Chennai||Deogiri College, Aurangabad|
|Jai Hind College, Mumbai||DAV College, Chandigarh|
|Jyoti Niwas College, Bangalore||Hindustan College, Coimbatore|
B Sc Computer Science Scope: Future Prospects
B Sc Computer Science courses have a great structure in terms of learning outcomes possibilities. You will get to study new topics that are in demand these days including core mathematical concepts of AI, Machine Learning, Database Management Systems, Neural Networking, and Natural Language Processing, mostly as electives.
Most students, however, make it a point to pursue post-graduation courses and then join the industry since prospects right after graduation is a bit blurry. After graduation, you may pursue M Sc in Computer Science, MBA, or MCA which are promising options for lucrative offers in the software and IT sectors.
Some IITs have integrated M Sc programs in Computer Science right after school. However, entry to these programs is governed by IIT Advanced exam scores. You can think of other prestigious institutes for your post-graduation (after completing B Sc Computer Science from somewhere) like Chennai Mathematical Institute (CMI), NIT Trichy, BHU etc which conduct their own entrance exams for MSc in Computer Science.
The figure here depicts the growth estimates of associated industrial sectors.
As a B Sc Computer Science degree holder, you can find employment opportunities in:
- Engineering consultancies
- IT department in top MNCs
- Software development
- System Maintenance
- Research & development agencies
- Technical Supportteams in multiple software enterprises
- Tech Consultancies
- Security & Surveillance
As a B Sc Computer Science Graduate, you may find a job in the following roles
- Software Developer
- System Integrator
- Computing Architect
- System Analyst
- Quality Assurance Specialist
- Intelligence Engineer
- DevOps Engineer
- Database Administrator
- Computing Solutions Engineer
- Openstack Engineer
- Application Developer
- Systems Engineer
- Subject Matter Architect
- Migration & Modernization Specialists
- Enterprise Architect
Various types of companies may recruit you:
Remember, these options shall mostly be available to you after at least a post graduation qualification.
- IT &IT Enabled Services companies (large scale to micro scale) such as Tata Consultancy Services Limited, Cognizant Technology Solutions, Tech Mahindra, Infosys, Wipro, MindTree etc.
- Behemoths ruling the global systems market: Microsoft Corporation, SAP SE, IBM Corporation, Oracle Corporation
- Other IT companies focused on software engineering in the field of AI, machine learning or automation such as Quantcast Corporation, IPSoft, OpenAI, Deepmind, H20, Iris AI, Active.ai, etc.
- Fin Tech – Companies which are into the BFSI industry such as insurers, consultancies, banks, financial institutions, investment banking companies or others like CitiGroup, Kasisto, YotaScale Inc, Zestfinance, Underwrite.Ai, Kensho etc.
- Cloud platform developers and software industry leaders such as Google, Facebook, Tencent, Twitter, Amazon Web Services etc.
- Big Data and computing leviathans (large groups of companies) which are dealing with power analytics and business intelligence such as Talend, Dell Boomi, Hitachi Data Systems, Oracle etc.
- Online retailing companies such as Flipkart, Amazon Services Inc., Alibaba etc.
- Automobile leviathans dealing with futuristic technologies that enable cars to drive themselves, routine flights to mars, or fusion reactors that produce limitless energy such as Lockheed Martin Corporation etc.
- Gaming, media, and entertainment industry with biggies such as Nvidia, Sony Interactive Entertainment PlayStation, Electronic Arts, Blizzard Entertainment, MGM, Twentieth Century Fox, Sony Pictures etc. as well as multiplayer game software & customer relationship management (CRM) systems such as International Game Technology PLC.
- Health Tech –
- Providers of medical image and information products and technologies for acquiring, processing, managing, and storing diagnostic images and related data such as Fujifilm etc.
- Companies such as MetaMind involved in deep learning networks, image recognition, text analysis, machines/systems/devices to cater to the healthcare sector or
- Healthcare analytic solutions & services companies such as Geneia LLC that focus on improving systems to support personalized, patient-centered care
- Innovative software solutions companies that design products to protect patient safety, mitigate operational risks, and reduce cost and time of drug development such as Covance Inc. etc.
- Space research and administration organizations such as NASA, ISRO, etc.
- Networking & Technology/research divisions of companies that are investing in innovative ways to deepen customer engagement and use of digital channels such as Deloitte, Goldman-Sachs, JP Morgan Chase.
B Sc Computer Science: Useful links
- Computer Science vs. Information Technology
- Why Study Computer Science?
- University of Oxford – Computer Science
- Stanford University – Computer Science
- Books You Can Read
- Nobody Tells You These 5 Benefits
- Predicting the success of freshmen
B Sc Computer Science: Conclusions
All done! Just one word of advice: even though you can surely watch out for yourself, feel free to reach us for some handholding while you try to figure things out about getting into B Sc Computer Science courses. Try a discussion with our expert educationists if you need more details about B Sc Computer Science colleges, tricky differences in the B Sc Computer Science syllabus of different colleges, or maybe further details about associated B Sc Computer Science subjects.
Honours in Chemistry (Magna cum Laude), Master’s in Biophysics (Summa cum Laude), Dissertation from Institute of Nuclear Physics (India)
A specialist in actionable intelligence and knowledge delivery through research and analyses-centric presentations, with demonstrated skills in cross-disciplinary data interpretation/representation with a high degree of proficiency surrounding technical and scientific disciplines. A post-graduate in Biophysics & Biostatistics and a graduate in Chemistry, she has interned with the prestigious SINP Kolkata. She comes with proven experience in scholastic compositions through meta-analytic systemic investigations.
Currently associated with iDreamCareer (India) as an Educational Intelligence Analyst & Researcher