Fundamentals of Computer Science

Testimonials from my students and mentees in Google, Amazon, Apple, Salesforce, IIT Madras (PhD), etc.

A lot of students from non-CS background want to pursue a great career in the software industry or make a smooth transition to higher education in CS. The number of CS students who have similar aspirations but studied (or are still studying) in Tier-3 colleges with poor facilities is even higher.

This course is specially designed keeping in mind such enthusiasts who got disadvantaged due to their circumstances or lack of awareness or lack of prior interest in CS. It will help them get up to speed with Tier-1 CS students, provided they are willing to put in the effort it takes.

This course is not just theoretical but will make use of cutting edge tools to demonstrate the concepts using Ubuntu Linux and/or Windows 10 operating systems. The tentative areas that will be covered as part of this course are listed below.

Course Content

  1. Operating systems
    1. Processes & Threads – stack, heap, handles, synchronization primitives, deadlock avoidance, data region, code region, …
    2. Virtual memory, Paging, Code sharing across processes
    3. Inter Process Communication
    4. Kernel mode vs User mode
    5. Shell commands
  2. Networking
    1. TCP/IP stack, HTTP, DNS, Load balancers
    2. Client-server programming, Browsers, Web servers
  3. Databases
    1. Relational vs Non-relational
    2. Datatypes, JSON, XML
    3. Primary key, Foreign key, Normalization, Joins
    4. Database connectivity (JDBC, PDO)
  4. Computer architecture
    1. CPU cache, Registers, Word size, Endianness
  5. Programming languages
    1. Paradigms – Object oriented, Procedural, …
    2. Function calling conventions
    3. Call by value, address, reference
    4. Assemblers, Compilers, Interpreters, Linkers
    5. Container classes, Libraries
    6. Back end & Front end
  6. Applications & tools
    1. IDEs
    2. Debuggers
    3. Performance monitoring & troubleshooting
      1. CPU
      2. Memory
      3. Network
      4. File systems
      5. Processes

To inquire further or undergo this training, please register.