Program Overview
Educational Objectives
Expected Outcomes
Degree Offered
Career Opportunities
Student Organizations
Curriculum Component
Curriculum Sequence
Graduation Requirements
Student Affairs and Financial Aids
Course Descriptions
Faculty Positions
Brochure Adobe Acrobat PDF
B.S. in Computer Science

Course Descriptions

Core and Elective Course Descriptions

ENGI 2300 Computer Fundamentals Laboratory (1 credit)
Prerequisites: None

The course is based on fundamental computer concepts related to computer science, in a hands-on laboratory where students can use and see the components of a computer and the basic productivity software. The course is mainly an introduction to hardware and software. Some trivial computer science and technology issues are discussed in order to prepare students for a career as computer professionals.

ECS 2004 Discrete Structures (3 credits)
Prerequisites: MATH 2320

Fundamental mathematical concepts related to computer science, including finite sets, relations, functions, and prepositional logic. Introduction to other proofing techniques. Modeling and solving problems in computer science. Introduction to permutations, combination graphs, and trees with applications.

ECS 2110 Ethical & Legal Aspects of Computers and Technology (3 credits)
Prerequisites: ENGI 2301, SOHU 2020

This course introduces students to the social, legal and moral aspects of computing, and the dilemmas that result from the evolution of computer technology. Course contents include ethical theory, decision making, professional code of ethics, “hacking” & computer crime, law enforcement, privacy and intellectual property issues, as well as environmental / health issues, and whistle blowing.

ECS 2202 Algorithms and Computer Programming I (4 credits)
Prerequisites:: MATH 2310, ENGI 2301
Co-Requisites: ECS 2203

Course introduces students to computers: Algorithm development, UNIX, and C++ language are discussed in detail. The introduction covers top-down analysis, problem analysis, flow charts and pseudocode. Structured programming and debugging are also emphasized. C++ coverage includes variables, data types, operators, and functions. Programming problems are assigned weekly.

ECS 2203 Algorithms and Computer Programming I - Laboratory (0 credits)
Co-requisites: ECS 2202

An intensive programming laboratory. Students will apply UNIX editor and C++ compilers in continuous programming exercises. Programs assigned in the Co-requisite class will be developed and tested, in addition to the laboratory programs.

ECS 2222 Algorithms and Computer Programming II (4 credits)
Prerequisites: ECS 2202
Co-Requisites: ECS 2223

The course continues with the development of algorithms and programming skills using C++. It emphasizes modular program design, arrays, and pointer usage. Structured data types (arrays, structures, and linked list) and dynamic storage is introduced. The course presents object-oriented concepts.

ECS 2223 Algorithms and Computer Programming II - Laboratory (0 credits)
Co-requisites: ECS 2222

Intensive programming laboratory is continued from lab ECS 2203. Students will write programs assigned in the Co-requisite course, in addition to the laboratory programs. A major program design and development project is required.

ECS 2302 Digital Logic for CS Majors (3 credits)
Prerequisites: MATH 2310

The course covers the following topics: digital and analog systems, binary systems, digital systems, structure and behavior, design levels, combinational and sequential systems.

ECS 3010 Numerical Analysis for CS Majors (3 credits)
Prerequisites: ENGI 2210, ECS 2222, SCIE 2440
Co-requisites: MATH 3320

This course gives students the ability to apply solutions for approximations and errors, numerical solutions of linear and non-linear algebraic equations, ODE, PDE, numerical solutions of scientific problems, curve-fitting.

ECS 3200 Assembly Programming Language (3 credits)
Prerequisites: ECS 2202

This course introduces students to the fundamental principles of machine language. Basic concepts such as number or data representation (binary, hexadecimal and others), branching and looping, memory organization, operands, instruction cycle, addressing modes, exception handling, etc. are introduced.

ECS 3202 Visual Programming Language (3 credits)
Prerequisites: ECS 2202

Introduction to Visual Programming. Course covers the fundamentals of visual programming in Visual Basic. Topics discussed cover: variables and operators, using decision structures, loops and timers, strings, modules, procedures, and arrays.

ECS 3210 Advanced Programming (3 credits)
Prerequisites: ECS 2222

The students will use the object-oriented model to analyze, design, and implement software applications. Some existent object-oriented languages like C++ or Java will be used to develop the applications.

ECS 3212 Data Structures (3 credits)
Prerequisites: ECS 2222

The course covers the understanding of data structures and programming logic and their implementation using C++ or another similar language. The course emphasizes on recursion, and the use of pointers, lists, stacks, queues, and trees. Searching and sorting techniques are also discussed. Several programs are assigned.

ECS 3214 Internet Programming Languages (3 credits)
Prerequisites: ECS 222

In this course the student will be introduced to JAVA programming. The course will include how to create applets in JAVA and JAVA applets vs. automated programs. Other topics include simple mathematical operations with JAVA applets, how to force JAVA applets to make decisions, how to make JAVA applets repeat one or more instructions, the use of functions to simplify the applets, and interaction with HTML, CGI and JavaScript.

ECS 3224 Visual C++ (3 credits)
Prerequisites: ECS 2222

The course covers Classes Programming, Document View Architecture, Dialog Boxes and Controls, Message and Commands and Persistence and File I/O among other topics.

ECS 3234 UNIX Operating System (3 credits)
Prerequisites: ECS 2222

The concepts of the UNIX operating system are presented. The course will also provide a deep and thorough knowledge of UNIX and its utilities. Topics include system commands, system editors, awk, sed, text formatting, and shell programming. The use of modem and terminal software and system maintenance utilities are covered as well as system call in C, lex, yacc, ar, and make.

ECS 3300 Computer Architecture for CS Majors (3 credits)
Prerequisites: ECS 3200, ECS 2004

This course introduces students to the fundamental concepts and architectural structures of computers. The basic elements of computer architecture and the conversion of assembly programming code to machine language (used to feed instructions to the processor for the optimum use of it’s resources) are covered in the course. Some of the topics are: procedures, string operations, bit manipulation, decimal and floating point arithmetic, registers, input/output and memory management.

ECS 3302 Data Communications (3 credits)
Prerequisites: ECS 3300

This course is concerned with the exchange of data between two directly connected devices. The key aspects of transmission, interfacing, link control, and data transfers are examined. The physical and data link layers are discussed. Design projects will be required.

ECS 3310 Human Computer Interaction (3 credits)
Prerequisites: ECS 2222

The course explores user-centered design approaches in information system applications. Addresses the user interface and software design strategies, user experience levels, interaction styles, usability engineering and collaborative systems technology.

ECS 3320 Microprocessors for CS Majors (3 credits)
Prerequisites: ECS 3300

Students will learn the architecture and instruction set for one of the major microprocessor families, learn its assembly language, and how to use tools like assemblers, linkers and debuggers for doing structured assembly language programming. Course also includes basic computer organization, programmers model, addressing modes, instruction set, and assembly language.

ECS 4200 Programming Languages (3 credits)
Prerequisites: ECS 3212

Survey of the fundamental features of programming languages. Control statements, data types, arrays, and functions are discussed, among other topics. Several programming assignments are required.

ECS 4202 Database Systems (3 credits)
Prerequisites: ECS 3212

This course is an introduction to the database concept. The course covers data models, relational database concepts, hierarchies, relational algebra and SQL, storage structures and the role of databases and computers in application environments. Various programming assignments in SQL and a design project are required.

ECS 4204 Software Engineering I (3 credits)
Prerequisites: ECS 4200, ECS 4202

This course presents an engineering approach to the development of large software development projects. The course explains the successive steps of requirements analysis, specifications, designs, coding, debugging and testing, maintenance, and thorough documentation. A major design project is required.

ECS 4206 Design and Analysis of Algorithms (3 credits)
Prerequisites: ECS 3212

This course covers issues that arise in the analysis and design of algorithms used for solving computational problems. A number of common algorithm design paradigms and examples are presented and explained. Algorithm design issues are contemplated. Computability and computational tractability concepts are introduced. Examples of computational problems with no algorithmic solution are analyzed. The importance of time and space requirements are greatly considered as the student designs algorithms to solve computational problems.

ECS 4212 Artificial Intelligence (AI) (3 credits)
Prerequisites: ENGI 2210, ECS 3212

This course offers a broad overview in the field of artificial intelligence and Knowledge Based Expert Systems. The course surveys the major topics in Artificial Intelligence (AI). It begins with an overview of what constitutes AI and an introduction to intelligent agents. This is followed by a series of traditional AI topics such as logic, knowledge representation, reasoning, planning, inference using predicate calculus, heuristic and adversary search, genetic algorithms and machine language. Other units follow on natural language processing and speech recognition. We conclude with a discussion of state-of-the-art AI applications and architectures, as well as some philosophical foundations.

ECS 4220 Electronic Commerce and Web Information Systems (3 credits)
Prererequisites: ECS 3302

This course will study the structure, organization, and use of the Internet. Internet technologies and their potential applications are examined including electronic commerce, database connectivity, and security. An emphasis will be placed on evaluating, organizing, and developing efficient models of electronic transactions and Web Information Systems.

ECS 4226 Computer Graphics (3 credts)
Prerequisites: ECS 3010, ECS 3212

Representation and manipulation of two and three-dimensional transformations, projection, illumination and shading models. The course will focus on algorithms and techniques that have emerged in the past several years. Topics include basic modeling and rendering methods; volumes and scientific visualization techniques, visual programming languages and environments, and computer animation. Presents computer graphics as an aid in the presentation and analysis of information. Topics include basic graphic techniques (e.g. histograms, bar charts, pie charts), the theory of graphic presentation of information, desktop publishing software, presentation software, graphics monitors (EGA, CGA, VGA, RGB, composite), laser printers, computer screen projection systems, and standards

ECS 4228 Computational Theory (3 credits)
Prerequisites: ECS 3212

Introduction to formal languages. Regular languages: regular expressions, finite automata, minimization, closure properties, decision algorithms, and non-regular parsing theory, closure properties and no context-free languages. Computable languages: Turing machines, recursive functions, Church’s thesis, un-decidability and halting problem.

ECS 4266 Compilers Design (3 credits)
Prerequisites: ECS 4206

Introduction to the compilation of programming language principles and practice of lexical analysis, error analysis, syntax directed translation, and type checking.

ECS 4330 Operating Systems (3 credits)
Prerequisites: ECS 3300

The course discusses various aspects of computer operating systems: processes, concurrent programming, and deadlocks.

ECS 4800 Computer Science Senior Project (4 credits)
Prerequisites: Senior Standing, ECS 3302, ECS 4204

Projects will be selected in accordance with the student's area of interest. Students must approve project course with an average of C or above in order to receive the Bachelor’s Degree in Computer Science from the Electrical Engineering Department.

Copyrights © 2007
Polytechnic University of Puerto Rico PO Box 192017 San Juan, PR 00919-2017 377 Ponce de León Ave. Hato Rey, PR 00918 (787) 622-8000