Subjects for BSCS Second Year Second Semester

This course focuses on the design and analysis of algorithms. The course will introduce the concept of P vs. NP, sorting and searching algorithms, and computer science problems; such as, but not limited to, primality testing, 3SAT, travelling salesman, Hamiltonian circuit, knapsack, and map coloring, both solved and unsolved.

The purpose of this course is to provide the students with solid foundations in data structures, one of the basic concepts in computer programming. The main objective of this course is to teach computer science students on how to select and design data structures that are appropriate for a specific type of problem. This course is also about analyzing different types of algorithms implemented on specific functions of a data structure and study the computational complexities. This course offers the students a mixture of theoretical knowledge and practical experience.

This course focuses on the fundamental principles on the design analysis, simplification and implementation of digital logic circuits generally classified as combinational and sequential circuits.

In today’s information age, majority of the software applications will have some kind of user interface to have better user experience leading to a successful adaptation among broad spectrum of users. Writing these programs with graphical user interfaces requires a very different way of thinking about programming, using an event-driven paradigm. This course teaches students how to think about programming in this new way as well as reinforcing general programming skills.