I am pursuing a career in software development or other information technology field and am currently enrolled at the University of Michigan – Dearborn majoring in Computer and Information Science. My two concentrations are Computer Networks & Security and Information Systems. You can view my LinkedIn profile at http://www.linkedin.com/in/jnperry. I can be reached at contact2012 [at] jnperry [dot] net.

Below are classes I have taken to pursue this degree with their course descriptions. Many are prerequisites I was required to take in order to get into the master’s program.

CIS 150 Computer Science I

- This course provides a foundation for further studies in computer and information science. It emphasizes a structured approach to problem solving and algorithm development. Topics include principles of program design, coding, debugging, testing and documentation. Students are introduced to the Unified Modeling Language for requirements analysis using use-cases and activity diagrams, object-oriented programming language (C++), and the fundamentals of computer hardware, system software and components.

CIS 200 Computer Science II

- This course presents techniques for the design, writing, testing and debugging of medium-sized programs, and an introduction to data structures (stacks, queues, linked lists) using the C++ programming language. C++ topics covered include pointers, templates and inheritance. The principles of UML modeling are also introduced.

CIS 2656 Computer Programming (Visual Basic.net 2008) – Oakland Community College

- Students will be introduced to concepts of solving problems via the BASIC programming language and VISUAL object-oriented tools available for developing Graphical User Interface (GUI) windows-based applications. Discussion of advanced language extensions will be included. Students will be required to complete computer-based assignments outside of class.

CIS 275 Discrete Structures I

- This course introduces students to various topics in discrete mathematics, such as set theory, mathematical logic, trees, and graph theory. Applications to relational databases, modeling reactive systems and program verification are also discussed.

CIS 310 Computer Organization and Assembly Language

- The architecture of computer systems and associated software. Topics include digital logic circuits, computer interfacing, interrupt systems, input/output systems, memory systems, assemblers and assembly language programming, and computer networks.

CIS 350 Data Structures and Algorithm Analysis

- This course focuses on data design and algorithm design. Data design topics include object-oriented discussions of hashing, advanced tree structures, graphs, and sets. Algorithm design topics include the greedy, divide-and-conquer, dynamic programming, backtracking and branch-and-bound techniques. A significant discussion of algorithm complexity theory, including time and space trade-offs and elementary computability theory, is included.

CIS 450 Operating Systems

- Introduction to computer operating systems. Process control, threads, concurrency, memory management, virtual memory, uniprocessor, multiprocessor, and real-time scheduling, I/O management, disk scheduling, file management, distributed processing, client/server, clusters, distributed process management, security.

CIS 505 Algorithm Analysis and Design

- This course investigates how to design efficient algorithms. Topics covered include: asymptotic analysis, average-case and worst-case analysis, recurrence analysis, amortized analysis, classical algorithms, computational complexity analysis, NP-completeness, and approximation algorithms. In addition, the course investigates approaches to algorithm design including: greedy algorithms, divide and conquer, dynamic programming, randomization, and branch and bound.

CIS 527 Computer Networks

- To study the technical and management aspects of computer networks and distributed systems. Topics include: communication hardware, communication protocols, network architectures, local area networks, distributed database systems.

CIS 544 Computer and Network Security

- The course will provide a broad spectrum introduction of the fundamental principles of computer and network security. Topics will include security policies, models and mechanism for confidentiality, integrity and availability, access control, authorization, cryptography and applications, threats and vulnerabilities in computer networks, key management, firewalls and security services in computer networks.

CIS 546 Security & Privacy in Wireless Networks

- This course focuses on security issues in wireless networks, such as cellular networks, wireless LANs, mobile ad-hoc networks, vehicular networks, sensor networks, and RFID. The course will first present an overview of wireless networks, then focus on attacks and discuss proposed solutions and their limitations.

CIS 550 Object-Oriented Programming and Its Applications

- This course covers advanced programming techniques using objects and classes, including programming windows, menus, toolbars, and drawing in windows. Further applications include distributed computing in which client and server communicate with each other by sending messages.

CIS 554 Information Systems Analysis and Design

- To analyze the information needs of organizations and design suitable information systems to meet their needs. Topics include: systems analysis and design techniques related to analyzing and determining information needs, feasibility studies, designing input/processing/output systems, and hardware/software development and evaluation.

CIS 574 Compiler Design

- Lexical analysis and symbol table; syntactical analysis of expressions and statements; error detection; translation into intermediate code and its correctness.

CIS/ECE 578 Advanced Operating Systems

- Advanced techniques used in operating system design. Distributed operating systems. Message-based operating systems. Operating systems for parallel architectures. Layered techniques in operating systems. Formal models of operating systems. Current trends in operating system design.

CIS 695 Master’s Project

- Application of the methodologies, tools and theory of software engineering to produce a specific validated software product. Projects can be faculty-generated, self-generated, and/or work related. All projects must be undertaken with one or more students under the supervision of the instructor. Prior to enrollment, a project proposal must be prepared and approved by the instructor and department chair. Standard software engineering documents must be prepared and approved at each phase of the project, and an oral presentation of the project is required. Course includes lectures and case studies.

COMP 270 Technical Writing for Engineers

- Instruction and practice in designing technical reports. Students study the rhetorical problems facing professional engineers and learn practical strategies for analyzing and communicating technical information to technical and non-technical audiences.

EMGT 541 Accounting Fundamentals for Decision Making

- This course introduces fundamental accounting concepts and applications that are useful in the evaluation of financial information and decision tools relevant to project planning. Students will achieve an understanding of basic accounting and cost management tools that are essential to decision making. Emphasis will be placed on assessing financial statement information through an understanding of accounting practice, the relationship between business activities and an organization’s cash flows.

MAT 1730 Calculus I – Oakland Community College

- Limits; continuity; concept of the derivative; differentiation of algebraic and transcendental functions; applications of the derivative; antidifferentiation; the indefinite integral; the definite integral; the Fundamental Theorem of Calculus; numerical integration; integration involving logarithmic functions; some applications of the integral. Some of the course concepts will be explored and/or enhanced with current technology.

MAT 1740 Calculus II – Oakland Community College

- Integrals involving inverse trigonometric functions; hyperbolic functions; an introduction to differential equations; applications of the definite integral; techniques of integration; limits of indeterminate forms; improper integrals; two-dimensional analytic geometry using polar coordinates and parametric equations; infinite series. Some of the course concepts will be explored and/or enhanced with current technology.

MATH 217 Introduction to Matrix Algebra

- Systems of equations, matrices, determinants, the n-dimensional real vector spaces, orthonormal basis, linear transformations, and eigenvalues and eigenvectors.

IMSE 317 Engeering Probability and Statistics

- Set theory, combinatorial analysis, probability and axioms, random variables, continuous and discrete distribution functions, expectations, Chebychev’s inequity, weak law of large numbers, central limit theorem, sampling statistics and distributions, point and interval estimation and linear regression.