Profile
Education
Windsor, ON, Canada - University of Windsor, degree in Computer Science.
View University degree detailsDegree: Bachelor of Computer Science (Honours)
Program Goal: This degree prepares students for a career in application programmers, technical and software user support personnel, system analysts, database administrators, post-graduate studies leading to a career as a University professor or to a research position at a University, industry or Government institution.
Program Expectation: This program involves a rigorous coverage of core courses in Computer software and hardware systems, as well as the flexibility of taking a wide variety of courses from specialized application areas like Software Engineering, Networks, Artificial Intelligence, Multimedia and Graphics, Database Systems.
Total Courses: 40 [ Contract All | Expand All ]
Computer Science Courses - 24 Ccourses
| 0360-100 |
Key Concepts in Computer ScienceThe objectives of this course are to excite students' interest in computer science and to give students a precise understanding of a number of difficult concepts that are fundamental to modern computer science. Topics include: data types; induction and recursion; algebraic characterization; syntax; semantics; formal logic; soundness, completeness, and decidability; specification, algorithm, implementation, and determinism; complexity.
|
| 0360-140 |
Introduction to Algorithms and Programming IThis course is the first of a two-course sequence designed to introduce students to algorithm design and programming in a high-level language such as C. The main objectives of the course are to develop the ability to identify, understand and design solutions to a wide variety of problems. Topics include: computer system overview, hardware and software, problem solving steps, concepts of variables, constants, data types, algorithmic structure, sequential logic, decisions, loops, modular programming, one-dimensional arrays, text files, searching/sorting.
|
| 0360-141 |
Introduction to Algorithms and Programming IIThis course is a continuation of 0360-140 that introduces students to more advanced algorithm design and programming in a high level language such as C. The main objectives of this course are to develop the ability to identify, understand and design solutions to a wide variety of problems. Topics covered include: multidimensional arrays, pointers, strings, advanced modular programming, records, binary files, recursion, stacks, linked lists and introduction to algorithm analysis.
|
| 0360-212 |
Object-Oriented Programming using JavaConcepts of classes and objects, Java applications, frames, event handling, control structures, methods, arrays, string manipulations, object-based programming, object-oriented programming - inheritance, polymorphism, interface and abstract classes, anonymous classes, data structures on Java, exception handling, introduction to graphical user interface.
|
| 0360-214 |
Computer Languages, Grammars, and TranslatorsPragmatic and theoretical aspects of grammars, recognizers, and translators for computer languages will be discussed. The topics covered include: regular languages and context-free languages, including parsers and parser generators for such languages. Attribute grammars, syntax-directed translation, interpreters and compilers also discussed.
|
| 0360-231 |
Theoretical Foundations of Computer ScienceAn introduction to Mathematical Logic, Set Theory, and Graph Theory. Topics include: propositional logic, first order logic, proof techniques, mathematical induction, sets, operations on sets, relations, operations on relations, functions, countable and uncountable sets, graph connectivity, graph isomorphism, trees, Euler graphs, Hamilton graphs, planar graphs and graph colouring.
|
| 0360-254 |
Data Structures and AlgorithmsAn introduction to the programming and time-complexity analysis of internal (main store) data structures and external data structures. Topics include: linear lists, stacks, queues, linked structures, trees, binary trees, sorting techniques including heap sort, quicksort, merge sort, shell sort, searching techniques including binary search, binary search trees, red-black trees and hashing.
|
| 0360-256 |
Systems ProgrammingAn introduction to advanced software development techniques in system programming using the C language in the UNIX environment. Topics include: introduction to modern operating systems, system calls, managing processes, the use of fork and exec, signals, file processing, filters, pipes, scripting languages, introduction to concurrency (e.g. synchronization), network programming (e.g. using sockets), client-server problems.
|
| 0360-265 |
Computer Architecture I: Digital DesignNumber systems, switching algebra, logic gates, circuit minimization, combinational circuits, read-only memory, random-access memory, programmable logic, synchronous and asynchronous sequential curcuits. Latches, flip-flops, registers, counters, register transfer language, digital integrated curcuits, hardware description languages.
|
| 0360-266 |
Computer Architecture II: Microprocessor ProgrammingData representation, central processing unit, arithmetic logic unit, control unit, Assembly language concepts, memory segmetation, programming a typical microprocessor (e.g Intel 8086 family or Motorola 6800 family). Instruction set architecture- addressing modes and formats, register set, basic input/output devices, programming I/O operations, interrupts, disk controllers.
|
| 0360-311 |
Introduction to Software EngineeringAn introduction to the fundamental concepts, common principles, and general techniques of software engineering. It discusses the main issues involved in the development life cycle of nontrivial software systems, including process models, feasibility studies, requirements elicitation and definition, rapid prototyping, design methodologies, verification and validation, and software evolution. Students taking this course are required to work on projects, which are designed to go through the major phases of large-scale software system development.
|
| 0360-315 |
Database Management SystemsBasic concepts of Database Systems. The topics covered include: 3-level architecture, introduction to file structures: B-trees, B+ Trees and Hashed files, relational model, relational algebra and calculus, SQL, and database design with Normalization Theory.
|
| 0360-322 |
Object-Oriented Software Analysis and DesignThis course builds on the knowledge of object-oriented programming and data structures and file structures gained in courses 0360-212, 0360-254, and 0360-256. Students are introduced to object-oriented software analysis and design techniques that are currently used in industry.
|
| 0360-330 |
Operating Systems FundamentalsOperating system services, introduction to primary components of multi-programming operating systems, CPU scheduling, concurrent processes, process synchronization and interprocess communication, deadlocks, memory management, file systems, virtual memory, disk scheduling.
|
| 0360-334 |
World-Wide Web Information Systems DevelopmentThis course is designed for people who want to make their data available to others over the Internet. Topics will include WWW authoring, WWW site planning, executable programs that create dynamic documents, the client-server model, multi-tier WWW software architecture, and security aspects.
|
| 0360-354 |
Theory of ComputationFinite automata; regular expressions and languages; properties of regular languages; context-free grammars and languages; pushdown automata; properties of context-free languages; introduction to Turing machines; recursive functions; undecidability.
|
| 0360-367 |
Computer NetworksThis course is an introduction to computer networks and their protocols. Topics include: network architectures, transport, routing and data link protocols, addressing, local area networks, flow and congestion control, and network security. Examples will be drawn primarily from the Internet (e.g. TCP, UDP, IP) protocol suite.
|
| 0360-436 |
Distributed ComputingThis course provides an overview of computer networks and distributed systems, covering aspects ranging from encoding bits on a transmission medium to the design of distributed application software.
|
| 0360-440 |
Principles of Programming LanguagesBasic concepts of programming languages. Comparative study of the major programming paradigms, including imperative, object-oriented, functional, logic, and concurrent programming. Principles of programming language design and evaluation. Syntax, semantics and implementation techniques of programming languages.
|
| 0360-454 |
Design and Analysis of Computer AlgorithmsThe intent of this course is to introduce the fundamental techniques in the design and analysis of computer algorithms. Topics include: asymptotic bounds, searching, sorting, order statistics, oracle arguments, red-black trees, binomial heaps, divide-and-conquer, greedy algorithms, dynamic programming, NP completeness, and approximation algorithms.
|
| 0360-460 |
Digital Design and Computer ArchitectureModular design concepts in digital circuits. Interfacing facilities. Memory Organization. Architecture classification schemes. Parallel computing architectures. Pipelining and vector processing. Alternate architectures and performance enhancement.
|
| 0360-411 |
Software Verification and TestingThis course introduces students to the verification and testing phases of software development. It will discuss concepts, processes, models, patterns, and tools for verification and analysis. An important component is a group project involving the verification and/or testing of a large software system.
|
| 0360-499 |
Project Management: Techniques and ToolsThe course consists of two components: a) exposure to project-presentation and project management skills, and b) working on a large project in a group. The course co-ordinator will arrange lectures on a variety of relevant topics. The lectures may have quizzes and/or short assignments. Students will be expected to develop skills in technical writing, organizing seminars, techniques for use of multimedia tools, as well as developing a major project using a modern software tool.
|
Elective Courses - 8 Courses
| 0360-104 |
Computer Concepts for End-UsersIntroduction to the concepts of operation of a computer system, including hardware and software. Development of conceptual understanding of word processors, databases, spreadsheets, and practical experience with their use. Networking concepts and data communication concepts will be introduced. The Internet will be introduced with students having access to internet resources. Management information systems including the systems development lifecycle will be discussed. Fundamental concepts of algorithm development and programming will be introduced. Hands-on experience with microcomputers as well as a distributed-computing environment will be involved.
|
| 0360-106 |
Programming in C for BeginnersThe course is an introduction to programming in C. Two major goals of this course are: teaching a rational approach to program development, and teaching an introduction to ANSI C. The emphasis of this course is on the first goal. This course adapts a library-based approach that emphasizes the principle of abstraction: library and modular development. The five-phase software development method is used to solve problems. Topics of this course include: a brief introduction to Computer Science, introduction to computer hardware, statement forms, iteration, functions, top-down design, basics of modular programming, recursion, arrays, pointers, dynamic data structures, and file processing.
|
| 0360-205 |
Introduction to the InternetStudents will be introduced to the Internet as a global information infrastructure, including the development of early and current communication protocols and services, packaging of data, and data transmission. Fundamental concepts of and tools to support Internet browsing through concepts of Universal Resource locators and Hypertext Markup Languages will be included. Students will be required to publish a website on the Internet using HTML. Web page enhancement through the use of JavaScript and other tools will be introduced. The functionality of electronic mail and bulletin board services will be introduced with hands-on experience in sending and receiving information, automated title searching, and an introduction to organizing information to be accessible over the network. Technical methods of binary data transfer on analog carriers will be introduced and comparison of Ethernet and ATM fibre-optic digital delivery will be discussed.
|
| 0360-270 |
Advanced Website Design, Construction and DeploymentThis course is intended to teach the student about advanced website creation and to give and understanding of some of the technology behind websites, as well as an understanding of emerging web-related technologies. Topics covered will include JavaScript, Style Sheets, Dynamic HMTL, XML, XHTML, Web browser compatibility issues and how web servers work.
|
| 0360-275 |
Progamming in C++C++ is a general purpose programming language with roots in systems programming whose goals are to support procedural, object-oriented, and generic (i.e., templates) styles of programming while being ruthlessly efficient with strong data typing. This course aims to teach the Computer Science student that knows how to program in C/Java how to program in C++ as well as to impart a solid foundation in C++ and its programming paradigms (procedural, object-oriented, and generics). While C++ can be used as a "better C", the student will be taught how to program in C++ to maximally and most easily utilize its features. This course will cover the following concepts: basic C++ language elements (incl. declarations and type; new and delete; namespaces; exceptions), abstraction mechanisms (e.g., classes, overloading, inheritance, templates, exception handling, class hierarchies), the standard template library, as well as program design principles. Additionally, how C++ implements these its features will also be discussed in relation to the C and/or Java programming languages.
|
| 0123-300 |
Advanced Spanish IN/A
|
| 0241-110 |
Introduction to Economics IAn introduction to microeconomics intended to provide students with the tools necessary to begin to understand and evaluate how resources are allocated in a market economy. Specific topics include how markets function, theories of the business firm, of consumer behaviour and of income distribution. The economic roles of labour unions and government are also covered. The theories are applied to contemporary Canadian economic problems.
|
| 0471-140 |
Principles of ManagementAs an introduction to management in organizations, this course surveys a variety of contemporary management topics including: motivation, leadership, job and organizational design, technology, ethics, demographic diversity, and international management. The functions of management are discussed from classical, behavioural, contingency and systems perspectives.
|
Mathematics Courses - 8 Courses
| 0362-101 |
Access to CalculusA variety of pre-calculus topics including coordinate geometry, trigonometric, exponential and logarithmic functions, and algebraic procedures. Introduction to differential calculus.
|
| 0362-194 |
Mathematics for BusinessDerivatives and marginal analysis. Applications of integration to business and economics. Solutions of linear equations, matrices, linear inequalities, simplex method for linear programming.
|
| 0362-120 |
Linear Algebra ILinear systems, matrix algebra, determinants, vectors in Rn, dot product, orthogonalization, eigenvalues, and diagonalization.
|
| 0362-140 |
Differential CalculusTrigonometric functions and identities. Inverse trigonometric functions. Limits and continuity. Derivatives and applications. Mean Value Theorem., Indeterminate forms and I'Hopital's Rule. Antiderivatives. Introduction to definite integrals.
|
| 0362-141 |
Integral CalculusIndeterminate forms and l'Hopital's Rule. Further techniques of integration. Improper integrals, numerical integration. Separable differential equations. Further applications of definite integrals. Polar and parametric co-ordinates. Infinite sequences and series: tests for convergence, power series (Taylor, Maclaurin, binomial).
|
| 0362-190 |
Mathematical FoundationsLogic, sets, relations, functions. Development of skills in theoretical mathematics.
|
| 0362-380 |
Numerical MethodsTopics covered are: nonlinear equations in one variable, interpolation, numerical integration (quadrature), and linear systems (direct methods). Optional topics are: numerical differentiation, iterative methods for boundary value problems. Completion of some assignments will require the use of computer software packages.
|
| 0365-205 |
Statistics for the SciencesDescriptive statistics. Probability, discrete and continuous distributions. Point and interval estimation. Hypothesis testing. Goodness-of-fit. Contingency tables.
|
Graduation: In order to graduate with the Bachelor of Computer Science (Honours) degree, a student must obtain a grade of C- or better in each Computer Science course; a major average of 8.0 or better; and a cumulative average of 5.0 or better.
Hong Kong - Chinese International School, obtained International Baccalaureate Diploma.
Hong Kong - Canadian Overseas International College, transitional period grade 10 & 11.
Cancun, Mexico - Instituto Cancun de La Salle Secondary School, obtained Mexican Certificate of Secondary School (by SEP - Secretatia de Educacion Publica).
Skills
Development: Unix and Linux systems programming, Embedded systems design and integration, Micro-controller programming (PIC, Atmel, FPGA & Basic Stamp), Software engineering (analysis, design, development and evolution), Web development, and Databases.
Creative: Web design, Photography, 3D Modeling and Videography.
Software: Microsoft Office, Adobe (Photoshop, Premiere, Flash, After Effects, Illustrator & InDesign), Maya, Autocad, Rational Rose UML Design.
Experience
The design of this website and development of commercial and events promotion websites are the basis of my experience in web design. Some past works are:
Grupo Hong Kong, Cancun Mexico (2008)
Mexican September 2006, Hong Kong (2006)
Maya Consultants Ltd., Hong Kong (2006)
Asian Canadian Cultural Club (2005-2006)
Mexican Business Association [Offline] (2004)
Latinamerica 2004 Festival (Oct. 2004)
Consulate General of Colombia in Hong Kong (2004)
Manuelx10.com (2002-Present)
Work on graphical design and printed media:
Le Fil D'or Garment Company Profile Booklet, Hong Kong (2005)
Wide range of professional photography in the form of scenery, portraits, action/sports, macro, events, fashion, commercial, product and experimental photography.
ChinaWorld Magazine, Cancun, Mexico (2008)
Manuelx10.com Photography Blog (Since 2006)
![]()
Model Mayhem Profile
Participated in video productions as the video editor, also created: a promotional video "CIS Raffle" and "CIS Graduation 2003". My interests in video and photography are reflected in some other works in the past. More details
SEARCH
DOCUMENTS
NEWS & UPDATES
Asociacion de Mujeres de Habla Hispana en Hong Kong - Bollywood Night - (Oct. 10, 2009)
Consulate General of Mexico in Hong Kong SAR and Macau SAR - Celebration for the 199th aniversary of the independence of Mexico in Macau SAR - (Sept. 22, 2009)
Consulate General of Mexico in Hong Kong SAR and Macau SAR - Celebration for the 199th aniversary of the independence of Mexico in Hong Kong SAR - (Sept. 21, 2009)
Consulate General of Mexico in Hong Kong SAR and Macau SAR - "Insights" exhibition by Teresa Rubio Cocktail Reception - (Sept. 08, 2009)
Australian Association of Hong Kong - "Lets Dance" Summer Ball - (June 06, 2009)








