Bachelor of Science in Computer Science with Specialization in Software Technology
Degree Codes: Program- BSCS Plan- BSCS

The Bachelor of Science in Computer Science major in Software Technology (BSCS) program prepares students to become holistic and competent computer scientists and IT professionalswho are capable of designing effective and efficient technological solutions for nation building. With a good understanding of the foundation theories of Computer Science, the program provides opportunities for students to discover and strategically manage innovative technology to help shape the future of computing. With various research programs and activities to keep pace with the rapid advancement in technology, ST students are engaged in advanced research and product development in various fields. Armed with a good grasp of core computer science concepts and abreast with current advances in technology, ST graduates not only produce software solutions that are relevant to the needs of the community, but also exemplify leadership qualities in order to set and pursue future directions for the computing industry and research.

The program also provides the necessary background for students to pursue graduate studies to further their knowledge and skills in conducting advanced research in computing and technology. Through the ladderized Master of Science in Computer Science program, qualified ST students can earn two degrees (BSCS and MSCS) in a span of five years, thereby reinforcing the university’s and college’s mission of producing more graduates who are highly competent and qualified to work in this globally-competitive environment.

Software Technology graduates can pursue careers in large-scale software development, intelligent software applications development, computer graphics and animation, web and mobile applications development, researcher, among others.

Total number of units required (academic and non-academic)*:
Total number of Academic units: 184
Total number of non-academic units: 12.5
Total number of terms: 12 terms

* Applicable to curriculum of Academic Year 2011-2012 only. Subject to revisions in the future without prior notice

ST CheckList 2011-2015 (pdf/60kb)

Choices for Specialized tracks:

  • Intelligent Systems Track: Natural Language Processing, Distributed Artificial Intelligence, User Modeling, Empathic Computing, Machine Learning, Neural Networks & Fuzzy Logic

  • Games Development Track: Computer Graphics, Game Design, Game Development, 3D Modelling

  • Security and Pattern Recognition Track: Cryptography, Ethical Hacking, Digital Image Processing, Modelling and Simulation

  • Software Engineering Track: Project Management, Knowledge Management, Professional Software Development (tie-up with industry), Technology and Business Planning

Research Laboratories:

Core Courses

Introduction to Computer Programming 1 (COMPRO1)
3 units
This course covers the fundamentals of logic formulation and computer programming using the C programming language. It serves as a foundation for future courses that the students will encounter throughout the Computer Science program. This course is coupled with a lab component.

Basic Computer Concepts (BASICON)
3 units
This course provides an overview of computers, number systems, data types and representations, digital logic systems, assembly and machine language, compilers and translators, operating systems, internet working, human computer interactions, and intelligent systems.

Discrete Structures (DISCTRU
3 units
This is a one-term introductory course in Discrete Mathematics. Topics include, but not limited to: prepositional and predicate logic, set theory, relations and functions, integers and algorithms, proof rules and program correctness, mathematical reasoning, recurrences.

Advanced C Programming (COMPRO2)
3 units
This advanced course for computer programming in C covers the representation and manipulation of C data structures. This course, like COMPRO1, serves as a foundation for future courses that the students will encounter throughout the Computer Science program. This course is coupled with a lab component.

Introduction to Software Engineering (INTROSE)
3 units
This course provides an overview of software engineering as a discipline concerned with the application of theory, knowledge, and practice for effectively and efficiently building software systems. It introduces the students to the fundamental principles and methodologies of software engineering.  It focuses on the concepts and principles of software requirements engineering, its tools, techniques, and methods for modeling software systems. Various approaches to requirements analysis and review activities are examined.

ST Web Applications Development (WEBAPPS)
3 units
This course introduces students to the theories, processes and skills needed in the development of web applications. It provides an overview of the various technologies used in designing and implementing web-based systems. Advanced topics are also included to prepare students in realizing useful web applications that utilize up-to-date industry tools.

ST Specialization Courses

Introduction to Data Structure and Algorithm (DASALGO)
3 units
This is a introductory course in Data Structures and Algorithms. Topics include, but not limited to: representation and operations on linear and non-linear data structures (arrays, lists, stacks, queues, graphs, trees, heaps), applications of data structures, types of file organizations, hashing, and analysis of algorithms.

Object-oriented Programming using Java (OBJECTP)
3 units
This course provides the students with the fundamental understanding of object-oriented technology.  It also introduces the different concepts that are commonly associated with object-oriented programming such as threading, event-driven programming, etc. using Java as the programming language.

Advanced Discrete Structures (ADVDISC)
3 units
This course provides students with advanced theories on discrete structures and linear algebra. It covers topics on methods of proof, inductions, equivalence relations, solutions of equations, as well as matrices, vector spaces, and linear transformations.

Introduction to Databases (INTRODB)
3 units
The course covers the basic theories behind databases, data models and database analysis and design. The course will tackle different data models but will concentrate mainly on relational databases, being the most commonly used today.  The course introduces learners to concepts on conceptual design of databases using the concepts of the Entity-Relationship (ER) model and normalization, relational model, relational database design and database query languages.

Intelligent Systems (INTESYS)
3 units
This course introduces the students to the basic concepts and techniques in the area of artificial intelligence. Concepts and techniques include knowledge representations, searching and problem solving. Furthermore, the course is designed to expose undergraduate students to functional and symbolic programming and use of an expert system shell.

Digital Design (DIGIDES)
3 units
This course provides an overview of the principles underlying number systems and representation, logic gates, Boolean algebra, simplification of Boolean functions, and basic operation of combinational and sequential logic circuits.

Network (NETWORK)
3 units
This course introduces the student to the basic concepts of computer networking. The seven layered ISO-OSI reference model for computer networks, using TCP/IP and other current networking standards as an example.

Automata Theory, Formal Languages and Computational Complexity (THEOCOM)
3 units
This course concentrates on the theoretical aspect of Computer Science, which has evolved from three disciplines: mathematics, engineering and linguistics. 

Computer Architecture and Organization (ARCHORG)
3 units
This course provides an overview of Instruction Set Architecture through assembly language programming and the interaction between basic computer system components, namely the CPU, Memory, and I/O.

Technology and Innovation Management (INOVATE)
3 units
This course is on managing technology and innovation for survival and growth in challenging times. Students will learn how to develop corporate strategies and understand current practices in innovation management. They will also devise innovation approaches that integrate design, marketing and production perspectives, and combine technology and business models.

Introduction to Operating Systems (OPERSYS)
3 units
This is an introductory course to operating system design and implementation. This course will cover basic algorithms and procedures to CPU scheduling and memory management. This course will also introduce students to basic concepts of writing concurrent processes and basic techniques to synchronize processes.

Design Patterns (DESIPAT)
3 units
This is an advanced programming course emphasizing object-oriented design. Design patterns are recurring solutions in designing systems and are considered simple yet elegant solutions which have been proven effective over time. The applications of these design patterns allow the creation of systems that are more scalable, reliable and effective.

Advanced Statistics and Probability for ST (ADVSTAT)
3 unit
This course covers topics in advanced statistics and probability, including joint probability distribution, F-distribution, sampling distribution, chi-square distribution, and analysis of variance. Topics on numerical methods are also introduced, including continuous and discrete functions, non-linear equations, quadratic and cubic functions, interpolation, and regression techniques.

Advanced Database (ADVANDB)
3 units
This course is about major advanced concepts in the field of databases. Being an advanced course, it will involve a considerable amount of research work as embodied by the projects required to complete the course.

Compiler Theory (COMPILE)
3 units
This course introduces the theories, formal techniques, design, and implementation considerations in the construction of interpreters, compilers, and language translators in general.

Professional Software Development (PROFSWD)
3 units
The aim of this course is to prepare ST students for practicum and a career in software development by delivering actual knowledge and skills currently required by the industry. This is achieved through lectures from IT industry practitioners on the current trends and organizational practices that lead to producing software that is robust, reliable and attractive to use, often co-operating with others as part of a development team.

Algorithm Complexity (ALGOCOM)
3 units
This course covers the design and analysis of different algorithms under various design principles and techniques making use of different data structures.

Secure Web Development (SECUDEV)
3 units
This course introduces the students to the concepts and principles surrounding secure coding practices and software security assessment. Students will be taught how to properly assess threats that may present a risk to software, web applications in particular, and how to mitigate these threats by incorporating appropriate controls through the software development life cycle. The course will also cover the methodologies and tools used to test existing web applications.

Practicum Course in ST (PRCSOFT)
1 unit
This course is the venue for Software Technology upperclassmen to apply and practice the Computer Science concepts and theories they have learned, by working in an actual company environment.

Advanced Technologies (STADTEC)
3 units each
This course aims to introduce students to advanced topics in computing in order to build software systems that are fast and efficient in utilizing available resources.

Advanced Software Engineering (ADVANSE)
3 units each
This course will introduce students to the practices of a full spectrum of software development approaches and methods, from the more plan-driven, documentation-intensive approaches of PSP, TSP, and CMMI, to the more agile methods of XP and Scrum.

ST Elective Courses

Software Technology Elective 1 to 4 (STELEC1 to 4)
3 units
Various courses allowing the students to specialize in a particular field of interest connected with software technology; choices of electives vary such as intelligent systems track, games development track, security and pattern recognition track, software engineering track, mobile computing, network administration and management, multimedia and information retrieval, and design patterns.

Software Technology Special Elective 1 to 3 (SPELEC1 to 3)
3 units
This course covers Special course under CCS; choice of electives vary such as technopreneurship, interactive storytelling, business management, professional software development, foreign languages, and introduction to accounting.

Thesis Courses

Software Technology Research Methods (STRESME)
2 units
A course on methods of research where students learn the steps on how to do a research project; a thesis proposal should be produced at the end of the course.

Thesis in Software Technology 1 (THSST-1)
2 units
The undergraduate thesis is a non-classroom learning environment in which students may apply the skills, methods, and theories learned throughout their stay in the College of Computer Studies. THSST-1 involves the following activities: (a) search and review of related literature. (b) investigation of existing solutions to the identified problem(s) in STRESME. (c) evaluation of existing solutions. (d) application of methods and theories in the design of a solution to the problem(s).

Thesis in Software Technology 2 (THSST-2)
2 units
Entry into the THSST-2 stage requires a successful completion of all THSST-1 requirements and prerequisite courses as specified in the appropriate ST flowchart. This stage involves the implementation of major system functions in the target programming language and/or environment. The components are expected to perform the following activities: (a) development and implementation of the solution identified in THSST-1. (b) documentation of development and implementation issues. (c) regular consultation with the thesis adviser. (d) submission of a 6-page technical paper to be reviewed by the panelists and if accepted, participation in a public presentation in a duly organized symposium or congress by the College &/or University, or local/national conferences.

Thesis in Software Technology 3 (THSST-3)
2 units
During this stage, the proponents perform the following activities: (a) development of minor system functions (i.e online help, system enhancements). (b) system testing and analysis of test results. (c) documentation of testing activities and test results. (d) finalizing of the thesis deliverables (i.e. main document, technical manual, user’s manual, software). (e) preparation for the thesis defense.

Introduction to Computer Graphics (GRAPHIX)
3 units
This course will discuss introductory topics on computer graphics including modeling, viewing, projection, and viewport transformations; simple illumination models, and parametric curves/surfaces.

Course Descriptions (ST Electives)

Introduction to 3D Computer Graphics and Animation (3DMODEL)
3 units
This course will discuss introductory topics on 3D computer graphics including modeling, material properties, lights, cameras, animation and rendering.

Introduction to Cryptography (CRYPTOG)

3 units
A course that outlines the different schemes involved in making communication systems as well as special purpose systems secure. The course is divided into five parts ranging from the mathematical background of the available algorithms up to real world applications.  Also covered are the legal and political issues governing the research, development and implementation of the cryptographic schemes.

Introduction to Distributed Artificial Intelligence (DISTRAI)
3 units
This course provides advanced discussions on the area of artificial intelligence (AI), specifically, on the basic concepts and approaches in distributed artificial intelligence (DAI).

Distributed Computing (DISTCOM)
3 units
This is an introductory course to Distributed Computing. It introduces students to concurrent/parallel programming and synchronization problems to effectively design and implement applications for multi-core systems. This course will also give an introductory to network and socket programming and later introduce students to different design and implementation of Distributed System and be able to design one on their own.

Empathic Computing (EMPATHY)
3 units
EMPATHY presents an emerging, forefront research area of empathic computing. It covers a wide-breadth of computer science disciplines, including digital signal processing, affective user modeling, ambient intelligence, sensor-rich and ubiquitous computing, and adaptive user interfaces, utilizing, but not limited to machine and statistical learning as tools for problem solving.

Game Development (GAMEDEV)
3 units
This course focuses on guiding students learn the different techniques and technologies used for programming interactive games and virtual reality simulations. Students will use the knowledge in developing their own 2D or 3D game using the C/C++ programming language. The course focuses primarily on programming aspects including event loops and execution threads, rendering and animation in 3D, terrain/background representation, polygonal models, texturing, collision detection and physically-based modeling, game Artificial Intelligence, and multi-user games and networking.

Introduction to Computer Graphics (GRAPHIX)
3 units
This course will discuss introductory topics on computer graphics including modeling, viewing, projection, and viewport transformations; simple illumination models, and parametric curves/surfaces.

Mobile Computing (MOBICOM)
3 units
In this course, we will look into the technical capabilities and challenges of developing for mobile platforms for practical usage in the IT industry. The course would also look into ways of integrating such devices into the industry supply chain and the issues it raises.

Project Management (STPRJMA)
3 units
This course is designed for Software Technology students to have a better understanding of project management. The students will be trained to be better project managers. They will do an actual project and define its scope, cost, and the time required to accomplish it using MS Project. They will also be given cases to analyze and evaluate. Discussions and readings would cover the basic definitions and concepts in project management and its knowledge areas such as project integration management, scope management, time management, cost management, quality management, human resource management, communication management, risk management, and procurement management.