Tuesday, April 21, 2009

Data Structures

COURSE: BSCS TITLE: Data Structures

DEPARTMENT / PROGRAM: BS Computer Science
SCHOOL: Agoo Computer College

SEMESTER AND SCHOOL YEAR: 2nd Semester, SY 2008 – 2009
INSTRUCTOR: Engr. Arthur N. Villanueva Jr.


COURSE DESCRIPTION

This course covers fundamental and advanced theories on data structures and algorithms in C language. It includes studies on the nature of data structures, the primitive data types as well as analysis and methods to represent data in computer programming.
The course also tackles efficiency in sorting algorithm. Furthermore it involves data structures such as trees and linked list.


COURSE OBJECTIVES (DESIRABLE OBJECTIVES)

By the end of this course the students should be able to:
1. Understand the fundamental data structures.
2. Understand and apply the sorting algorithm to promote efficiency in programming
3. Choose, implement and evaluate the appropriate data structures for specific programming problems




COURSE OUTLINE AND TIMEFRAME


Data Structures

Chapter 1: Basic Data Structures

A. Arrays

B. Linked Lists

C. Stacks

D. Queues

E. Trees

Chapter 2: Binary trees

A. Binary Trees

B. Binary Search Trees


C. AVL

D. RB Trees



Chapter 3: Graphs
A. Representations

B. Search Algorithms (BFS, DFS)

C. Shortest Path Problems

D. Spanning Trees

E. Hashing




http://www.nus.edu.ws/virtualclassroom/file.php/4/week4/hcs181Lect4.ppt

http://www.comp.nus.edu.sg/~huangzy/MFE5008/llsq01.ppt

http://www.cis.upenn.edu/~matuszek/cit594-2005/Lectures/23-stacks-queues-deques.ppt

http://web.mae.cornell.edu/mae409/elementary.doc



http://www.cs.auckland.ac.nz/software/AlgAnim/trees.html

http://en.wikipedia.org/wiki/Tree_data_structure

http://www.cs.hofstra.edu/courses/2006/fall/Algorithms/handouts/L15DynamicSetAVL_RB_trees.ppt


http://www.cs.hofstra.edu/courses/2006/fall/Algorithms/handouts/L15DynamicSetAVL_RB_trees.ppt

http://www.cs.virginia.edu/~luebke/cs332/lecture17.ppt


http://www.codeproject.com/cs/algorithms/DotNet2Datastructures.asp

http://www.comp.nus.edu.sg/~stevenha/myteaching/notes/9_graph5.html

http://www.cs.princeton.edu/introcs/40algorithms/

http://www.cs.auckland.ac.nz/software/AlgAnim/mst.html

http://web.mae.cornell.edu/mae409/elementary.doc

http://cs.nyu.edu/~cconway/teaching/cs1007/notes/data-structures.9up.pdf

SUGGESTED READINGS


 Lipsschutz,Seymour , Theory and Problems of Data Structures
 M. Tenembaum and Moshe J. Augenstein., Data Structures Using Pascal. 2nd ed., Rizal: Jemma, Inc., 1986
 Clifford A. Shaffer. A Practical Introduction to Data Structures. New Jersey: Prentice Hall, 1998.
 Deitel & Deitel, Java How to Program, New Jersey: Prentice Hall, 1998.

COURSE REQUIREMENT

 Class Attendance
 Recitation
 Quizzes
 Project
 Major Examination
 Blogs

Logic Design

COURSE : BSCS
TITLE: Logic Design

DEPARTMENT / PROGRAM: BS Computer Science
SCHOOL: Agoo Computer College

SEMESTER AND SCHOOL YEAR: 2nd Semester, SY 2008 – 2009
INSTRUCTOR: Engr. Arthur N. Villanueva Jr.


COURSE DESCRIPTION

The course provides an overview of the basic principles of logic design. It deals with number systems, Boolean algebra, simplification of Boolean functions, designing digital circuits, and gives understanding with logic gates, flip-flops which is necessary to design sequential circuits.



COURSE OBJECTIVES (DESIRABLE OBJECTIVES)

By the end of this course the students should be able to:
1. Identify the different logic gates.
2. Identify and manipulate Boolean functions/expressions.
3. Design simple synchronous or asynchronous sequential circuits.






COURSE OUTLINE AND TIMEFRAME


Chapter 1: Binary Systems and Codes

A. Binary Numbers
1. Number Base Conversion

B. Complements
1. Diminished Radix Complement
2. Radix Complement

C. Binary Codes
1. Decimal Codes
2. ASCII Character Code

D. Digital Logic Gates

Chapter 2: Boolean Algebra

A. Basic Theorems of Boolean Algebra
1. Operations w/ Boolean algebra
2. Truth Tables

B. Boolean Functions
1. Algebraic manipulation
2. Complement of a function

C. Canonical Forms
1. Sum of Minterms
2. Product of Maxterms

Chapter 3: Simplification of Boolean Algebra

A. Mapping
1. Two-Variable Map
2. Three- Variable Map
3. Four- Variable Map
4. Five - Variable Map
5. Six - Variable Map

B. Karnaugh Simplification
1. Overlapping groups
2. Rolling the map
3. Reduntdant groups
4. Don’t care conditions

Chapter 4: Combinational Logic Circuit

A. Adders
1. Half Adders
2. Full Adders

B. Subtracters
1. Half Subtracters
2. Full Subtracters
C. Code Conversion

Chapter 5: Combinational Logic
with MSI and LSI

A. Binary Parallel Adder
B. Decimal Adder
C. BCD Adder
D. Magnitude Comparator
E. Encoders
F. Decoders
G. Seven Segment
H. Multiplexers
I. Demultiplexers
J. Programmable Logic Array

Chapter 6: Synchronous Sequential Logic

A. Flip-flops
1. RS Latches
2. Clocked RS Flip-Flops
3. D Flip Flops
4. JK Flip flop
5. T Flip flop

B. State Table
C. State Diagram
D. State Equations

Website Reference:

http://en.wikipedia.org/wiki/Binary_number



http://courseweb.xu.edu.ph/courses/cs30/syllabus.html



http://en.wikipedia.org/wiki/Binary_numeral_system




http://en.wikipedia.org/wiki/Logic_gate




http://courseweb.xu.edu.ph/courses/cs30/syllabus.html




http://courseweb.xu.edu.ph/courses/cs30/syllabus.html



http://courseweb.xu.edu.ph/courses/cs30/syllabus.html






http://courseweb.xu.edu.ph/courses/cs30/syllabus.html






http://courseweb.xu.edu.ph/courses/cs30/syllabus.html







http://courseweb.xu.edu.ph/courses/cs30/syllabus.html











http://courseweb.xu.edu.ph/courses/cs30/syllabus.html











http://courseweb.xu.edu.ph/courses/cs30/syllabus.html

SUGGESTED READINGS


 Leach and Malvino , Digital Principles and Applications, Glencoe/McGraw-Hill Inc. 1995
 Tanenbaum, Andrew, Operating Systems, Design and Implementation, Prentice Hall International Edition, New Jersey, Copyright 1987.
 Peatman, John B., Digital Hardware Design




COURSE REQUIREMENT


 Class Attendance
 Recitation
 Quizzes
 Project
 Major Examination
 Blogs

Data Communications and Networking

COURSE BSCS TITLE: Data Communications and Networking

DEPARTMENT / PROGRAM: BS Computer Science
SCHOOL: Agoo Computer College

SEMESTER AND SCHOOL YEAR: 2nd Semester, SY 2008 – 2009
INSTRUCTOR: Engr. Arthur N. Villanueva Jr.


COURSE DESCRIPTION

This course provides an in-depth discussion of computer networks. It includes a detailed discussion of the different Network Models. Concepts that have a direct effect on the efficiency of a network (e.g. collision and broadcast domains, topology) are also discussed. Concepts on different network technologies, distributed computation, networking, and communication software, and security issues are also discussed.


COURSE OBJECTIVES (DESIRABLE OBJECTIVES)

By the end of this course the students should be able to:
1. Understand how do computers communicate and how network works.
2. Identify the different topologies used in networking.
3. Identify different networking strategies to strengthen the security in a network.






COURSE OUTLINE AND TIMEFRAME


Networks
Chapter 1: Introduction to Computer Networks

Chapter 2: Overview of Networking Models

A. OSI


B.TCP/IP

C.Physical Layer



D. Data Link Layer


E. Network Layer



F.Transport Layer


G. Application Layer



Chapter 3: Network Topologies




Chapter 4: Network Security




Data Communications

Chapter 1: Data Communications

Chapter 2: Data Transmission

Chapter 3: Digital Data Communication
Technique



Website Reference:

http://oak.cats.ohiou.edu/~piccard/mis300/netintro.htm

http://www.comptechdoc.org/independent/networking/protocol/protmodels.html
http://www.tcpipguide.com/free/t_NetworkingLayersModelsandArchitectures-2.htm
http://www.webopedia.com/quick_ref/OSI_Layers.asp
http://en.wikipedia.org/wiki/OSI_model

http://www.tcpipguide.com/free/t_TheBenefitsofNetworkingModels.htm

http://en.wikipedia.org/wiki/Physical_layer
http://www.tcpipguide.com/free/t_PhysicalLayerLayer1.htm
http://www.tech-faq.com/physical-layer.shtml

http://en.wikipedia.org/wiki/Data_link_layer
http://www.tech-faq.com/data-link-layer.shtml

http://en.wikipedia.org/wiki/Network_layer
http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci212637,00.html


http://en.wikipedia.org/wiki/Transport_layer
http://www.scit.wlv.ac.uk/~jphb/comms/std.osirm4.html

http://en.wikipedia.org/wiki/Application_layer
http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci211579,00.html
http://www.networkworld.com/news/2004/0202specialfocus.html


http://en.wikipedia.org/wiki/Network_topology
http://compnetworking.about.com/od/networkdesign/a/topologies.htm
http://www.networktutorials.info/topology.html


http://en.wikipedia.org/wiki/Network_security
http://www.interhack.net/pubs/network-security/
http://www.computerworld.com/taxonomy/000/000/100/taxonomy_000000142_index.jsp


http://www.camiresearch.com/Data_Com_Basics/data_com_tutorial.html

http://en.wikipedia.org/wiki/Data_communications







SUGGESTED READINGS


 Stallings, William, Data and Computer Communications, International Edition
 Schatt, Stan , PC networking for System Programmers
 Tanenbaum, Andrew, Computer Networks, Second Edition


COURSE REQUIREMENT


 Class Attendance
 Recitation
 Quizzes
 Project
 Major Examination
 Blogs

Computer Architecture

COURSE NUMBER: TITLE: Computer Architecture and Organization

DEPARTMENT / PROGRAM: BS Computer Science
SCHOOL: Agoo Computer College

SEMESTER AND SCHOOL YEAR: 2nd Semester, SY 2008 – 2009
INSTRUCTOR: Engr. Arthur N. Villanueva Jr.


COURSE DESCRIPTION

This course provides an overview of the architecture and organization of computer systems. Topics in this course include computer history, structure of computer systems, memory, Input and Output, Instruction Sets, Computer Architectures, and an Introductory to Assembly Language.


COURSE OBJECTIVES (DESIRABLE OBJECTIVES)

By the end of this course the students should be able to:
1. Explain how instructions are executed by the CPU
2. Explain How the CPU works
3. Understand the different module of computer systems and how they interact to each other.
4. Identify and write programs in assembly language






COURSE OUTLINE AND TIMEFRAME


Chapter 1: Intoduction

A. History of Computers

Chapter 2: Computer Systems

A. Von Neumann Architecture

Chapter 3: Instruction Cycle

Chapter 4: Computer Components
and functions

Chapter 5: Bus Interconnection Structure

A. Single Bus Architecture
1. i. Overview of Assembly Programming
ii. Microprogramming
2. Control Unit
3. Arithmetic and Logic Unit
i. Addition (Half, Full, Fast Adder, CLA)
ii. Subtraction

iii. Multiplication (Algorithmic)

iv. Division (Algorithmic)


Chapter 6: I/O Organization and Peripherals

A. Magnetic Disk (Hard Disk)
B. Keyboard
C. Monitor (CRT)

Chapter 7:Memory

A. Cache Memory
(L1, L2, Caching techniques)
B. Virtual Memory
C. Memory Interleaving

Chapter 8: Assembly Programming
Language





Website References:

http://en.wikipedia.org/wiki/Binary_number



http://courseweb.xu.edu.ph/courses/cs30/syllabus.html



http://en.wikipedia.org/wiki/Binary_numeral_system




http://maven.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html

http://www.cs.earlham.edu/~stoneda/research/index.html
http://www.cs.umass.edu/~weems/CmpSci535/Discussion15.html
web.syr.edu/~yzhao07/notes_architectureI/09-ALU.ppt
http://en.wikipedia.org/wiki/Adder_(electronics)


www.eee.bham.ac.uk/collinst/ee1a 2/3-ALUs.ppt

web.syr.edu/~yzhao07/notes_architectureI/09-ALU.ppt, http://www.cse.cuhk.edu.hk/%7ecsc3420/tutorial/tuto10.ppt
http://web.syr.edu/~yzhao07/notes_architectureI/09-ALU.ppt, http://www.cse.cuhk.edu.hk/%7ecsc3420/tutorial/tuto10.ppt

http://calab.kaist.ac.kr/~hyoon/courses/cs311/cs311_2006/Ch11.ppt
mdlwiki.cse.psu.edu/twiki/pub/MDL/MJI431/cse431-23raids.ppt
http://calab.kaist.ac.kr/~hyoon/courses/cs311/cs311_2006/Ch11.ppt
http://calab.kaist.ac.kr/~hyoon/courses/cs311/cs311_2006/Ch11.ppt


http://computer.howstuffworks.com/computer-memory.htm

http://www.cs.unc.edu/~hoff/projects/comp4/lectures/lecture10/lecture10.ppt

mdlwiki.cse.psu.edu/twiki/pub/MDL/MJI431/cse431-23raids.ppt
mdlwiki.cse.psu.edu/twiki/pub/MDL/MJI431/cse431-23raids.ppt

http://maven.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html






SUGGESTED READINGS


 Abel, Peter, IBM PC Assembly Language and Programming
 Stallings, William, Computer Organization and Architecture, 5th Edition 2000
 Heuring, Computer Systems, Design & Architecture, 1997
 Tanenbaum, Andrew, Operating Systems, Design and Implementation, Prentice Hall International Edition, New Jersey, Copyright 1987.
 Peatman, John B., Digital Hardware Design


COURSE REQUIREMENT


 Class Attendance
 Recitation
 Quizzes
 Project
 Major Examination
 Blogs