Charles Russell

Charles Russell

Software Developer.

Charles Russell

Charles Russell

Software Developer.

Education

This page contains information about my education and the courses I have taken. If you have any questions please feel free to contact me.

University of Winnipeg campus

Bachelor of Science

Applied Computer Science

I graduated from the University of Winnipeg with a Bachelor of Science in Applied Computer Science. The program provided me with a strong foundation in computer science and software development.

The Applied Computer Science major is designed to prepare students in the following core areas: Programming Fundamentals (object-oriented, event driven, algorithms), Information Management (database systems, data modeling, data warehousing, relational databases, query languages), Software Engineering (software requirements and design, software process, software project management), Operating Systems, Net-Centric Computing (Internet programming, networks, security), Human Computer Interaction (GUI Design and Programming), Intelligent Systems (Machine Learning). Our team-oriented courses are meant to strengthen communication skills, experience group dynamics, and foster self-confidence. The 4-year major includes the development of a team-based software project for a local IT organization. Our program will help develop analytical thinking and applied skills by blending theoretical and practical aspects of computer science. The Applied Computer Science major is designed to provide an excellent basis for graduate studies in either computer science or applied computing.1

University of WinnipegWinnipeg, Manitoba

Courses

These are some of the relevant courses I have taken during my studies at the University of Winnipeg.

Scientific Computing with Python

ACS-2112

Grade: A

This Python language course shows students how to create basic programming structures in Python including decisions, loops and more advanced topics such as object-oriented programming with classes and exceptions. Unique Python data structures such as tuples and dictionaries are introduced. Students learn how to create Python programs with graphic elements as well as data visualization and publication quality figures. Applications from a variety of scientific fields are discussed when appropriate.

Unix

ACS-2941

Grade: A+

This course provides students with advanced concepts and knowledge of Unix, one of the most widely used operating systems. The course introduces students to such topics as shells, filters and pipelines, the Unix file system, processes and job control, and Internet communications. Emphasis is placed on Unix shell programming, which provides valuable tools for developing powerful applications with a minimal amount of written code.

Advanced Internet Programming

ACS-3909

Grade: A-

This course provides students with a thorough knowledge of server-side web programming. Topics include n-tiered systems, session tracking, interfaces and stereotypes, dynamic web page design, database connections, and XML processing. Students gain considerable knowledge and experience by learning important features needed for e-commerce, applying advanced web application techniques, and utilizing web databases.

Software Design and Architecture

ACS-3913

Grade: A

This is an advanced course in software design that examines recent advances in the design of larger application systems. Topics include software architecture, object-oriented analysis and design, software patterns, and the Unified Modeling Language (UML)

Introduction to Game Development

ACS-3922

Grade: A+

This course is an introduction to game design and development, with a focus on the development of 2D and 3D interactive video games. Topics include the iterative process of game design: analysis, design, prototyping, development, and playtesting; game architecture and mechanics, working with art assets (sprites, textures and models), animation, collision detection, basic artificial intelligence, game management, game user interface, development and deployment for different platforms. Through the exploration of classic video game designs and the use of industry-standard game development tools, students gain hands-on practical experience and a thorough understanding of the basics of game design and development.

Data Structures and Algorithms

ACS-2947

Grade: A+

This course introduces fundamental data structures using an object-oriented programming language. Topics to be covered include vectors, multidimensional arrays, linked lists, stacks, queues, trees, graphs, recursion and algorithms

Database Systems

ACS-3902

Grade: A

This course introduces the theory of relational, network, and hierarchical models. It covers in detail the techniques utilized in various stages of a relational database software development life cycle. These techniques include ERDs, relational models, functional dependencies, normalization, and physical data storage mechanisms. Query language fundamentals including relational algebra and SQL are also covered. A project involving the design and implementation of a database is required.

Programming Fundamentals II

ACS-1904

Grade: A+

This course examines more advanced programming concepts using an object-oriented programming language. Topics to be covered include inheritance, polymorphism, sorting techniques, string processing, interfaces, files and packages.

Applications of Database Systems

ACS-2814

Grade: B+

This course introduces students with limited computing experience to the principles of data management. The emphasis is on practical database experience reinforced through assignments and weekly laboratory work. Students learn first to work with a workstation-based database system and subsequently they are introduced to the design of databases and their implementation in relational systems. Topics include tables, queries, forms, reports, importing and exporting data, structured query language, entity relationship models, the relational data model, and normalization of databases. Examples, assignments, and laboratory work are drawn from a variety of different disciplines.

Internet Programming

ACS-2909

Grade: A-

This course provides students with an overview of Internet and World Wide Web programming, development tools, resources, utilities, multimedia, and security issues. Students will gain hands-on experience in a scripting language such as JavaScript, Rich Internet Applications (RIAs), Web Services, and Mobile Application Development.

Software Requirements Analysis and Design

ACS-2913

Grade: A

This course introduces students to the requirements definition phase of software development. It provides coverage of both traditional and object-oriented approaches to requirements analysis and design of software used in business, real-time and embedded applications. Models, notations and processes for requirements elicitation, representation, and design are discussed.

Business Application Systems

ACS-2916

Grade: A-

This course firstly presents structured models for business processes and data needed in common transaction processing systems such as order entry, invoicing, accounts receivable and payable, purchasing, inventory and general ledger. Also, system support for manufacturing (e.g., supply chain management, robotics), for marketing (e.g., sales force automation, customer relationship management), and for human resource management (e.g., candidate selection, collective bargaining support) is highlighted, and inter-system interfaces are considered. Large, organization-wide, integrated enterprise resource planning (ERP) systems are discussed in the context of a business case. System controls and security issues are outlined for the systems studied.

Introduction to Information Systems

ACS-1803

Grade: B+

This course examines applications of information technology to businesses and other organizations. After an introduction to computers and data management, the course outlines various categories of information systems, (e.g., systems for transaction processing, managerial reporting, customer relationship management, decision support, enterprise resource planning, and e-commerce), with examples from current practice. System development, system security, systems consulting, and IT administration are also discussed. Focus is mostly on functional aspects of systems providing a valuable background for students in applied computer science, business and administration, and other disciplines.

Introduction to Programming

ACS-1805

Grade: A

This course covers elementary procedural programming concepts. Topics include: primitive data types and their manipulation, basic input and output and elementary control structures. In addition, topics related to a specific programming paradigm that is chosen for the course is covered. Students will gain hands-on programming experience in the laboratory component of the course.

Website Design and Development

ACS-1809

Grade: A-

This course introduces students to the concepts, programming skills, and tools related to website design and development. The topics include: website layout; creating tables, frames, menus and forms; presenting multimedia on web pages; and Internet Protocols such as HTTP and FTP. Students gain hands-on programming experience in designing websites using HTML and Cascading Style Sheets.

Programming Fundamentals I

ACS-1903

Grade: A+

This course introduces fundamental programming concepts using an object-oriented programming language. Topics to be covered include primitive data types and their manipulation, control structures, classes, objects and arrays.