Computer Science programming, Computer Graphics, and Programming Languages courses:
Computer Science Programming:
Fundamentals of programming
... [Show More] concepts such as variables, data types, control structures (loops, conditionals), functions, and algorithms.
Object-oriented programming principles including classes, objects, inheritance, polymorphism, and encapsulation.
Data structures such as arrays, linked lists, stacks, queues, trees, and graphs, along with algorithms for their manipulation and management.
Introduction to software development methodologies, debugging techniques, and version control systems.
Problem-solving strategies and computational thinking skills.
Computer Graphics:
Basic principles of computer graphics including raster and vector graphics, 2D and 3D transformations, and rendering techniques.
Graphics pipeline and rendering algorithms for generating images from 3D models, including techniques like ray tracing and rasterization.
Introduction to shaders and their role in modern graphics programming.
Techniques for handling lighting, shading, and texturing to create realistic images.
Overview of graphical user interface (GUI) development and interactive graphics applications.
Applications of computer graphics in fields such as gaming, virtual reality, augmented reality, and simulation.
Programming Languages:
Overview of different types of programming languages: procedural, object-oriented, functional, and declarative.
Syntax and semantics of programming languages, including variables, expressions, statements, functions, and control structures.
Language paradigms and their characteristics, such as imperative, declarative, and logic programming.
Language features and constructs like data types, operators, conditionals, loops, arrays, pointers, recursion, and modules.
Concepts of abstraction, encapsulation, inheritance, and polymorphism in the context of various programming paradigms.
Comparison of programming languages based on their design philosophies, performance characteristics, and application domains.
Hands-on experience with multiple programming languages through projects and assignments to understand their strengths, weaknesses, and best practices. [Show Less]