Computer Science Threads

From Buzzpedia
Jump to: navigation, search

In 2006, the College of Computing at Georgia Tech changed their curriculum for teaching computer science to emphasize Threads[1]. The concept of studying Threads is essentially that of specialization; it is about contextualized education. Previously, computer science at Tech made students practice theory and forced them to learn without ever giving them a chance to apply their knowledge in the real world. Using Threads, students learn about computer science traditionally in tandem with other classes that relate to a student’s specific interests. There are eight different branches that a student may focus on. Each branch has its own set of courses that allow the student to master that department of computer science. The threads are Devices, Information Internetworks, Intelligence, Media, Modeling & Situation, People, Platforms, and Theory. To graduate from Tech, each student must select a minimum of two threads to study.

Contents

The Purpose

A report, "Creating Symphonic-Thinking Computer Science Graduates for an Increasingly Competitive Global Environment," delves into the idea behind and the purpose of creating the Threads curriculum. The crux of the paper is centered on a quote from Daniel H. Pink's book A Whole New Mind which reads, "Symphonic thinking is the signature ability of composers and conductors,whose jobs involve corralling a diverse group of notes, instruments, and performers producing a unified and pleasing sound." At first this quote seems wholly unrelated, but the point becomes clear when applied to the need for Computer Scientists to have breath of knowledge along with depth. In the past focusing in a particular area of Computer Science was normal, but with the advancement of technology and the danger of outsourcing graduates will need to draw from many different skill sets to drive their work. Tying two quotes from Thomas L. Friedman's The World is Flat sums up the purpose behind the creation of Threads, "There is only one message: You have to constantly upgrade your skills," to become, "people whose jobs cannot be outsourced." [2]

Threads

Devices

The devices thread focuses on the interaction between technology, people, and the physical world. Students in this thread learn how to construct devices while evaluating how they operate in the real world. To do this, students must determine how physical constraints such as size, power, and bandwidth affect the devices they make. Examples include cell phones, robots, jet engines, and intelligent appliances. In the devices thread, students will learn about power management, concurrent and distributed programming, planning and reactive control, synthesizing sensors, and navigation. After graduating, students will be able to design programs for an array of devices, create motion planning algorithms, and create simple control architecture[3].

Courses

  • Mandatory courses:
    • CS1050 Understanding and Constructing Proofs
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS1332 Data structures and algorithms
    • CS2110 Computing organization and programming
    • CS2200 Computer systems and networks
    • CS3251 Computer Networking 1
    • ECE2031 Digital Design Laboratory
  • Thread Hours - Algorithm Fundamentals (Pick one):
    • CS3510 Design and analysis of algorithms
    • CS3240 Languages and Computation
  • Thread Hours - Building Devices (Pick one):
    • CS3651 The Art of Building Intelligent Appliances
    • ECE4175 Embedded Micro-controller Design
  • Thread Hours - Devices in the Real World (Pick one):
    • CS3630 Robotics and Perception
    • CS4605 Mobile and Ubiquitous Computing
    • CS4261 Mobile Applications and Services for Converged Networks
  • Electives
    • Click here for more information

Information Internetworks

Information Internetworking studies the intersection of computer science and enterprise data management. This thread focuses primarily on how computer science can be used to organize personal or organizational information. This is accomplished by teaching students how to take data and transform it into information that can be used by others. Students of the information internetworking thread will learn about communication and networking, data security, data privacy, modeling, and data organization. After graduating, students will be capable of developing network protocols, designing multimedia applications, creating data models, and be familiar with programming languages such as Java, C, and C++[4].

Courses

  • Mandatory Courses:
    • CS1050 Understanding and Constructing Proofs
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS1332 Data structures and algorithms
    • CS2110 Computing organization and programming
    • CS2200 Computer systems and networks
    • CS2340 Objects and Design
    • CS3510 Design and analysis of algorithms
  • Thread Hours - Information Management (Pick two):
    • CS3251 Computer Networking 1
    • CS4235 Introduction to Information Security
    • CS4400 Introduction to Database Systems
  • Thread Hours - Advanced Information Management (Pick one subcategory):
    • Database Systems (Pick one):
      • CS4420 Database system implementation
      • CS4440 Emerging database technologies and applications
      • CS4460 Information Visualization
    • Enterprise Computing:
      • CS4365 Introduction to Enterprise Computing
    • Information Security:
      • CS4237 Computer and Network Security
    • Network Systems (Pick one):
      • CS4251 Computer Networking 2
      • CS4261 Mobile Applications and Services for Converged Networks
      • CS4255 Introduction to Network Management
      • CS4270 Data Communications Laboratory,
  • Elective Courses
    • See here for more details.

Intelligence

Specializing in Intelligence relates to the construction of top-to-bottom computational models of intelligence. This is practiced through the recreation or simulation of various levels of intelligence as well as the modeling of certain cognitive agents such as humans, ants, and bees. The knowledge goals for this thread include learning about reasoning with uncertainty, reasoning on action and charge, heuristic methods for solving problems, techniques for handling high-dimension spaces, and modeling static and dynamic worlds. Mastery of Intelligence requires studying probability, object-oriented programming, combinatorics, and discrete structures[5].

Courses

  • Mandatory Courses
    • CS1050 Understanding and Constructing Proofs
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS1332 Data structures and algorithms
    • CS2110 Computing organization and programming
    • CS2340 Objects and Design
    • CS3510 Design and analysis of algorithms
    • CS3600 Introduction to Artificial Intelligence
    • PSYCH1101 Introduction to Psychology
  • Thread Hours - Computational Complexity (Pick one):
    • CS3240 Languages and Computation
    • CS4510 Automata and Complexity Theory
  • Thread Hours - Embodied Intelligence (Pick one):
    • CS3630 Robotics and Perception
    • CS3790 Introduction to Cognitive Science
    • PSY3040 Sensation and Perception
  • Thread Hours - Approaches to Intelligence (Pick 2):
    • CS4635 Knowledge-based AI
    • CS4641 Machine Learning
    • CS4495 Computer Vision
  • Elective Courses
    • See here for more details.

Media

The media thread allows students to undergo course work that teaches them to apply their technical and computational skills towards enhancing their creative productivity. Studying media will teach the students about discrete structures, algorithms, object-oriented programming, and operating system fundamentals. These concepts are studied in more depth later as the students learn about the software used to create virtual environments, techniques to render media, and the ways in which media utilizes computational algorithms. After graduating, students will be able to create 3D models that can be interacted with, design data structures for media devices, develop architectures that control the connections between the hardware and software of media devices, and build discrete element situations[6].

Courses

  • Mandatory Courses
    • CS1050 Understanding and Constructing Proofs, 3
    • CS1315 Introduction to Media Computation, 3
    • CS1331 Introduction to Object-oriented Programming, 3
    • CS1332 Data structures and algorithms, 3
    • CS2261 Media Device Architectures, 4 (When combined with another thread that requires CS 2110, students should take CS 2110 instead of CS 2261.)
    • CS2340 Objects and Design, 3
    • CS3451 Computer Graphics, 3 (Must come after MATH2605 and 2110 or 2261)
  • Thread Hours - Media Technologies (Pick 2):
    • CS4455 Video Game Design and Programming, 3
    • CS4480 Digital Video Special Effects, 3
    • CS4496 Computer Animation, 3
    • CS4590 Computer Audio, 3
  • Electives
    • See here for more information.

Modeling & Situation

Modeling & Simulation is the thread for those who are interested in quantifying natural processes in terms of mathematical models and computer software. Because of the how strongly this thread ties with mathematical expressions, a good understanding of mathematics and science is necessary. However, when both of these are combined with computer science, it is possible to create powerful programs that efficiently describe how the abstract natural processes function. At Tech, students will learn to refine complex data into comprehensible facts, understand the computational procedures required to deal with simulation, and facilitate massive-number computations. After graduating, students will be able to create data-based models, simulate natural and artificial processes, and use a computer to solve mathematics and science problems[7].

Courses

  • Mandatory Courses
    • CS1050 Understanding and Constructing Proofs
    • CS1171 Introductory Computing in MATLAB
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS1332 Data structures and algorithms
    • CS2110 Computing organization and programming
    • CS2200 Computer systems and networks
    • CS2340 Objects and Design
    • CS3510 Design and analysis of algorithms
    • MATH2403 Differential Equations
  • Thread Hours - Computational Science and Engineering (Pick two):
    • CS4140 Computational Modeling Algorithms
    • CS4225 Introduction to High Performance Computing
    • CS4245 Introduction to Data Mining and Analysis
    • CS4335 Computer Simulation
    • CS4642 Numerical Analysis I (Requires MATH2403 or 2413 or 1602)
  • Electives
    • See here for more details.

People

The people thread defines the relationship that computers share with their users. Studying this thread focuses on learning about the theoretical and computational fundamentals in context to human-computer interactions. Students will learn about human behavior around technology, developing software based on human interaction, and understanding several aspects of people. After graduating, students will be capable of identifying real-world problems, gathering information on these problems, and creating specific solutions for these problems. Majors of this thread can find jobs relating to human-robot interaction, research in data visualization, and more[8].

Courses

  • Mandatory Courses
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS2340 Objects and Design
    • PSYC1101 Introduction to Psychology
    • PSYC2015 Research Methods and Practices
  • Thread Hours - Social/Behavioral Science for Computing (Pick one):
    • PSYC2210 Social Psychology
    • PSYC2760 Psychology of Human Language
    • PSYC3040 Sensation and Perception
  • Thread Hours - Human-Centered Technology (Pick 2):
    • CS3790 Introduction to Cognitive Science
    • CS3750 Human-Computer Interface Design and Evaluation
    • CS4660 Introduction to Educational Technology
  • Electives
    • See here for more details.

Platforms

The platforms thread deals with the practical application of computer science. The platform thread incorporates the hardware and software aspects of computers, the organization of computer systems, and the way computers are programmed. Students studying this thread will learn about programming paradigms and language design, compiler construction and language implementation, operating systems and their functionality, and the modeling of software systems. After graduating students should be able to create code generators, design pipelined machines, develop operating system kernels, and more[9].

Courses

  • Mandatory Courses
    • CS1050 Understanding and Constructing Proofs
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-oriented Programming
    • CS1332 Data structures and algorithms
    • CS2110 Computing organization and programming
    • CS2200 Computer systems and networks
    • CS2340 Objects and Design
    • CS3210 Design of Operating Systems
    • CS3240 Languages and Computation
    • CS3510 Design and analysis of algorithms
  • Thread Hours - Computer Architectures (Pick one):
    • CS3220 Computer structures: HW/SW codesign of a processor
    • CS4290 Advanced Computer Organization
  • Thread Hours - Platform Interfaces (Pick one):
    • CS3251 Computer Networking 1
    • CS3300 Introduction to Software Engineering
  • Electives
    • See here for more details.

Theory

The theory thread is all about quantifying the mechanics and quirks of the virtual world. The theory thread focuses more in depth on the efficiency with which problems are solved. It also poses questions such as “Is everything computable?” Students of this thread will study variations of universal computational models, complexity class that can define how nature functions, and methods to create effective algorithms and analyze algorithmic performance. Graduates of this thread will be able to design and analyze advanced algorithms that deal with fundamental limits and objectively quantify the performance of computer science systems[10].

Courses

  • Mandatory Courses
    • CS1171 Introductory Computing in Matlab
    • CS1301 Introduction to Computing and Programming
    • CS1331 Introduction to Object-Oriented Programming
    • CS1332 Data Structures and Algorithms
    • CS2110 Computing Organization and Programming
    • CS2340 Objects and Design
    • CS4540 Advanced Algorithms
  • Thread Hours - Introduction to Proofs for Computer Science (Pick one):
    • CS1050 Understanding and Constructing Proofs
    • CS1050X Understanding and Constructing Proofs, Honors
  • Thread Hours - Introduction to Algorithms (Pick one):
    • CS3510 Design and Analysis of Algorithms
    • CS3511 Design and Analysis of Algorithms, Honors
  • Thread Hours - Computational Complexity (Pick one):
    • CS3240 Languages and Computation
    • CS4510 Automata and Complexity Theory
  • Pick 1 of Mathematics related to Computer Science
    • MATH2406 Abstract Vector Spaces (Requires MATH1502 or MATH1512)
    • MATH4032 Combinatorial Analysis (Requires MATH3012)
  • Electives
    • See here for more information.

Roles

[11] [12] In addition to separating the content of a Computer Science degree the Threads curriculum also subdivided the Computer Science domain into different Roles. While the individual Threads focus on the content that is to be learned while obtaining a Computer Science degree from Georgia Tech, Roles focuses on what you will be doing with those Threads. Essentially, Roles are the "why" and the Threads are the "what" that compose the degree. The Roles are separated under five titles, namely, Master Practitioner, Entrepreneur, Innovator, Communicator, and Policy Maker.

Master Practitioner

The Master Practitioner is an expert's expert. He exceeds the simple label of "coder" because his skill set not only encompasses many different programming languages and styles but also includes the abstract understanding of a problem and the ability to implement an effective solution. His focus is on technical skill.

Entrepreneur

As in the denotative meaning of Entrepreneur, an Entrepreneur is the the founder of new companies. His job is to bring the technology from the lab and distribute it to the public.

Innovator

The Innovator is the "ideas man." The main purpose of an Innovator is to discover new knowledge and research the implications and uses of the discovery.

Communicator

Much like the Entrepreneur, the Communicator's task is to bring the technology from the lab to the public but in a figurative sense. As can be deduced from the title, the Communicator is effectively transfer information in an understandable way, whether from one Computer scientist to another or from the scientists to the public at large.

Policy Maker

Similar to a politician, a Policy Maker is tasked with understanding how technology effects society and managing that effect through policy.


References

  1. http://www.cc.gatech.edu/future/undergraduates/threads
  2. http://www.cc.gatech.edu/sites/default/files/Threads%20Whitepaper.pdf
  3. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/devices
  4. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/infointernetworks
  5. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/intelligence
  6. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/media
  7. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/modsim
  8. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/people
  9. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/platforms
  10. http://www.cc.gatech.edu/future/undergraduates/bscs/threads/theory
  11. http://www.cc.gatech.edu/sites/default/files/Threads%20Whitepaper.pdf
  12. http://www.cc.gatech.edu/future/undergraduates/threads
Personal tools