Related Courses
Throughout UGA and Georgia Tech, I took the following relevant courses so far:
- CSCI 1300 - Introduction to Programming (Python)
Introduction to algorithmic problem solving using the Python programming language. Basic techniques of program development and supportive software tools. Programming projects. - CSCI 1301 - Introduction to Computing and Programming (Java)
Algorithms, programs, and computing systems. Fundamental techniques of program development and supportive software tools. Programming projects and applications in a structured computer language. Hands-on experience using microcomputers. - CSCI 1302 - Software Development (Java)
Software development techniques in an object-oriented computer language. An intermediate programming course emphasizing systems methods, top-down design, testing, modularity, and structured techniques. Applications from areas of numeric and non-numeric processing and data structures. - CSCI 1730 - Systems Programming (C/C++)
Programs and programming techniques used in systems programming in UNIX environments. Focus on UNIX system call interfaces and the interface between the UNIX kernel and application software running in UNIX environments. Introduces a second programming language such as C/C++. - CSCI 2610 - Discrete Mathematics for Computer Science
A survey of the fundamental mathematical tools used in Computer Science: sets, relations, and functions; propositional and predicate logic; proof writing strategies such as direct, contradiction, and induction; summations and recurrences; elementary asymptotics and timing analysis; counting and discrete probability with applications in computer science. - CSCI 2670 - Introduction to Theory of Computing
The theory of computing, including finite automata, regular expressions and languages, context-free grammars and languages, push-down automata, pumping lemmas, the Chomsky hierarchy of language classes, Turing machines and computability, undecidability of the halting problem, reducibilities among decision problems and languages, time and space complexity, and NP-completeness and tractability. - CSCI 2720 - Data Structures (C/C++)
The design, analysis, implementation, and evaluation of the fundamental structures for representing and manipulating data: lists, arrays, trees, tables, heaps, graphs, and their memory management. - CSCI 3030 - Computing, Ethics, and Society
Introduction to social and ethical issues relating to computer science and information technology. Topics include intellectual property, open source software, the digital divide, globalization, and professional ethics. Students should have a working knowledge of personal computing. - CSCI 4060 - Mobile Software Development (Java, XML, SQLite)
Introduction to software development for mobile devices, such as smartphones and tablets. Topics include life cycle of mobile applications, mobile UI design, views, widgets, location and maps, local data handling, and interaction with Web services and databases. Students design, implement, and analyze mobile applications. - CSCI 4300 - Web Programming (HTML5, CSS3, JavaScript, PHP, MySQL)
Client-side and server-side techniques for use on the World Wide Web. Interactive, dynamically-generated, and database-enabled web pages are discussed. Course content changes frequently to incorporate new Internet technologies. - CSCI 4370 - Database Management (SQL, JDBC, MySQL)
The theory and practice of database management. Topics to be covered include efficient file access techniques, the relational data model as well as other data models, query languages, database design using entity-relationship diagrams and normalization theory, query optimization, and transaction processing. - CSCI 4720 - Computer Architecture and Organization (Assembly)
Design and analysis of the structure and function of modern computing systems. Topics studied include combinational and sequential logic, number systems and computer arithmetic, hardware design and organization of CPU, I/O systems and memory systems, instruction set and assembly language design, performance characterization and measurement, and current trends and developments in computer architecture and organization. - CSCI 4760 - Computer Networks
In-depth coverage of computer networks, including digital data transmission and encoding, layered protocol models, Internet protocol, Internet client-server models, and network design methodology. - CSCI 4810 - Computer Graphics
Principles of two-dimensional and three-dimensional interactive raster graphics. Principles of scan conversion algorithms for two-dimensional and three-dimensional graphics primitives; data structures and modeling techniques for raster graphics; interaction, visual realism, animation and user interface design; ray tracing, illumination, shading, data storage/retrieval, software engineering and parallel computing for graphics. - CS 6300 - Software Development Process (Java, XML)
This course provides an in-depth study of the process of developing software systems, including: the use of software processes in actual product development; techniques used to ensure quality of the software products; and maintenance tasks performed as software evolves. By the end of the course, students will understand the role of software processes in the development of software and will have experienced several types of processes, from rigid to agile. Students will also become familiar with a variety of modern technologies and development techniques and understand their connection to software processes. - CS 6310 - Software Architecture and Design (Java)
This course teaches the principles and concepts involved in the analysis and design of large software systems. After completing this course, a student should have obtained the skills and knowledge necessary to accomplish the following:- Express the analysis and design of an application using UML
- Specify functional semantics of an application using OCL
- Specify and evaluate software architectures
- Select and use appropriate architectural styles
- Understand and apply object-oriented design techniques
- Select and use appropriate software design patterns
- Understand and perform a design review
- CS 6603 - AI, Ethics & Society (AI/ML techniques)
This course covers various Artificial Intelligence and bias mitigation techniques that can be used to counterbalance the potential misuse and abuse of learning from data. Abuse of big data means your worst fears can come true. In this course, not only will be examined various AI/ML techniques that can be used to counterbalance the potential abuse and misuse of learning from big data, but will focused on the effects of these technologies on individuals, organizations, and society, paying close attention to what our responsibilities are as computing professionals. - CS 7632 - Game AI (C#, Unity)
The Game AI course covers topics including agent movement, path planning, decision making, goal-oriented behavior, learning, and procedural content generation. As applied to video game development, Artificial Intelligence serves a different purpose than general AI research. This is due to the fact that general AI is often concerned with finding a correct and/or optimal answer. However, the goal of Game AI is to simply provide a fun gameplay experience. Because of this, Game AI solutions may involve cutting corners, tricking the game player, or otherwise cheating in regard to implementation. Game AI also faces the challenge of limited computational resources as video games involve a lot of subsystems that must work in coordination such as graphics, sound, physics simulation, etc. Game AI is often a lower priority in this list of game features and further motivates the corner cutting strategies. - CS 7637 - Knowledge-Based Artificial Intelligence (Java, Python)
The twin goals of knowledge-based artificial intelligence (AI) are to build AI agents capable of human-level intelligence and gain insights into human cognition.
The learning goals of the Knowledge-Based AI course are to develop an understanding of (1) the basic architectures, representations and techniques for building knowledge-based AI agents, and (2) issues and methods of knowledge-based AI. The main learning strategies are learning-by-example and learning-by-doing. Thus, the course puts a strong emphasis on homework assignments and programming projects. The course covers three kinds of topics: core topics such as knowledge representation, planning, constraint satisfaction, case-based reasoning, knowledge revision, incremental concept learning, and explanation-based learning; common tasks such as classification, diagnosis, and design; and advanced topics such as analogical reasoning, visual reasoning, and meta-reasoning. - CS 7650 - Natural Language Processing (Python, Machine Learning)
This course provides an overview of contemporary data-driven techniques in natural language processing. It progresses from basic bag-of-words models to more complex structural representations of word interactions that convey meaning, including advanced language models. Additionally, the course explores machine learning techniques that are particularly relevant to Natural Language Processing (NLP).
Natural Language Processing aims to enable computers to intelligently understand and process human language. NLP components are utilized in a variety of applications, including conversational agents and dialogue systems, automatic translation between languages, answering questions using extensive text collections, extracting structured information from text, assisting human authors, and many other applications. This course covers the fundamental concepts behind key NLP components and explores current state-of-the-art practices in developing NLP algorithms.
Other Valuable Courses
- MATH 2250 - Calculus I for Science and Engineering
Limits, derivatives, differentiation of algebraic and transcendental functions; linear approximation, curve sketching, optimization, indeterminate forms. The integral, Fundamental Theorem of Calculus, areas. Emphasis on science and engineering applications. - MATH 2260 - Calculus II for Science and Engineering
Volumes, arclength, work, separable differential equations. Techniques of integration. Sequences and series, convergence tests, power series and Taylor series. Vectors in three-dimensional space, dot product, cross product, lines and planes. - MATH 3300 - Applied Linear Algebra (Python)
Linear algebra from an applied and computational viewpoint. Linear equations, vector spaces, linear transformations; linear independence, basis, dimension; orthogonality, projections, and least squares solutions; eigenvalues, eigenvectors, singular value decomposition. Applications to science and engineering. - STAT 2000 - Introductory Statistics
Introductory statistics, including the collection of data, descriptive statistics, probability, and inference. Topics include sampling methods, experiments, numerical and graphical descriptive methods, correlation and regression, contingency tables, probability concepts and distributions, confidence intervals, and hypothesis testing for means and proportions. - STAT 4210 - Statistical Methods (JMP)
A survey of statistical methods that introduces experimental design and analysis of variance; multiple linear regression; analysis of categorical data, including chi-squared tests of independence and goodness-of-fit; non-parametric tests, including tests based on resampling; and statistical power. Emphasizes precise statistical communication and implementation using statistical software. - MGT 8813 - Financial Modeling (Excel)
This course is designed to equip you with the skills to build financial models and make informed business decisions by leveraging finance theory and analytical models. You'll learn how to use advanced Excel tools to analyze various business scenarios. Key topics covered will include the time value of money, valuation of stocks and bonds, firm valuation, financial statements, cost of capital, option pricing models, and portfolio optimization.
Don't hesitate to ask me any questions.