Computing Biography

Programming Experience

I first started programming after enrolling in an introduction to computing and algorithms class at Sacramento City College. It was so much fun. Since then, I have attend CSU, Chico where I've completed all the lower division programming and algorithms courses as shown below as well as several upper division Computer Science courses.

Programming Courses at Chico State:

  1. CSCI 111 - Programming and Algorithms I
      A first-semester programming course, providing an overview of computer systems and an introduction to problem solving and software design using procedural object-oriented programming languages. Coverage includes the software life cycle, as well as algorithms and their role in software design. Students are expected to design, implement, and test a number of programs.
  2. CSCI 211 - Programming and Algorithms II
      A second-semester object-oriented programming course in computer science that emphasizes problem solving. This course continues the study of software specification, design, implementation, and debugging techniques while introducing abstract data types, fundamental data structures and associated algorithms. Coverage includes dynamic memory, file I/O, linked lists, stacks, queues, trees, recursion, and an introduction to the complexity of algorithms. Students are expected to design, implement, test, and analyze a number of programs.
  3. EECE 237 - Embedded Systems Development
      This course presents the concepts and techniques associated with developing low level Embedded Systems Applications, using both Assembly Language and C. Topics include microprocessor architecture concepts, instruction set architectures, Assembly Language programming, data representations, interrupt handling and execution modes, low level C programming, and the use of on-chip and external peripherals.
  4. CINS 110 - Introductory Web Programming
      This course introduces students to programming in the context of dynamic web page development. The operation of the web browser and its interaction with web servers is explored. Structure and style of web page content using HTML and CSS is introduced. The main focus of the course is programming in JavaScript to add dynamic content to a web page. Topics include all language constructs, interaction with the DOM, event-driven programming, debugging using an integrated debugger in the browser, and the use of existing APIs.
  5. CINS 370 - Introduction to Databases
      This course provides an introduction to the theory and methodology for database design and implementation. Topics may include a survey/lecture component as well as a project component. The survey component covers entity- relationship modeling, relational algebra and calculus theories, data definition and data manipulation languages such as SQL, file structures, transactions, concurrency control, recovery, tuning and optimization, and object-oriented databases. The project entails requirements definition, design, and implementation of a database application.
  6. CINS 465 - Web Programming Fundamentals
      A hands-on project course that examines languages, tools, protocols, and techniques for developing interactive and dynamic web applications. Topics include the model-view-controller pattern, server side and client side scripting, using a server side database, web applications security, and dynamic page styling, design, and layout. The course includes several web projects using a web programming framework.
  7. CSCI 311 - Algorithms and Data Structures
      This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. Students will be required to design, implement, test, and analyze their programs in at least one object-oriented language.
  8. CSCI 446 - Introduction to Computer Networks
      This course is an introduction to basic networking technologies and network management concepts, including major network operating systems, communication architecture focusing on ISO and Internet models with discussion of current standards and protocols. Significant laboratory work using current networking equipment reinforces lectures and provides fundamental experience with router and switch management.
  9. CSCI 511 - Advanced Object-Oriented Programming
      This course is dedicated to the analysis, design, and implementation of programming problems using an object-oriented approach. Modern object-oriented languages are utilized. Topics include inheritance, the underlying implementation of polymorphism, exception handling, extending existing system libraries, and approaching algorithm development from an object-oriented perspective.
  10. CSCI 515 - Compiler Design
      The elements of lexical, syntactical, and semantic analysis including finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions and code generation.