radgrad/radgrad2

View on GitHub
app/private/database/modular/archive/abi-student.json

Summary

Maintainability
Test Coverage
{
  "timestamp": "2017-03-10T20:04:41.798Z",
  "collections": [
    {
      "name": "CareerGoalCollection",
      "contents": [
        {
          "name": "Data Scientist",
          "slug": "data-scientist",
          "interests": [
            "algorithms",
            "data-science",
            "databases",
            "machine-learning",
            "research"
          ],
          "description": "A data scientist analyzes and interprets extremely complex and large data sets, typically in order to assist an organization in its decision making.  Unlike traditional database engineers, data scientists must manage Big Data, which is typified by the following \"Three V's\":\n\n* Volume: from hundreds of millions to hundreds of billions of data points;\n* Velocity: data may arrive at high speed and must be dealt with in a timely manner; \n* Variety: data can range from structured to unstructured, and maybe be buggy or incomplete.\n\nCompanies like LinkedIn, Intuit, GE, Google, Zynga, and Netflix all employ data scientists to support their services.  The skills and tools used by a data scientist are extensive, and include:\n\n  * Languages, including a statistical programming language like R or Python and a database querying language like SQL. \n  * Statistical knowledge, including statistical tests, distributions, maximum likelihood estimators, etc. \n  * Machine learning methods, including k-nearest neighbors, random forests, and ensemble methods.\n  * Mathematics, including basic multivariate calculus and linear algebra in case you need to customize machine learning libraries.\n  * Visualization and communication, including describing your findings to both technical and non-technical audiences and use of data visualization tools like ggplot and d3.js. \n\nTo prepare for the Data Scientist career path, you will want to be proficient with algorithms ([ICS 311](../courses/ics311)) and machine learning techniques ([ICS 435](../courses/ics435)). Obviously, you will want to take both database courses: [ICS 321](../courses/ics321) and [ICS 421](../courses/ics421). You may want to explore data visualization ([ICS 484](../courses/ics484)).  A research project that involves machine learning and/or \"big data\" techniques will provide valuable experience. You might consider a summer internship with a company like LinkedIn or Google where you can work with data scientists directly.  \n\nFinally, if you are serious about becoming a data scientist, you should add [Graduate School](graduate-school) as a career goal.  Most data scientists have a Ph.D. in Computer Science or some other STEM discipline.\n\nData Scientist was named [one of the 14 best tech jobs in America](http://www.cio.com/article/3167568/it-skills-training/14-best-tech-jobs-in-america.html#slide2). [View more information here.](https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century/)"
        },
        {
          "name": "Database Administrator",
          "slug": "database-administrator",
          "interests": [
            "application-development",
            "databases",
            "software-engineering"
          ],
          "description": "Companies, private organizations, and government agencies rely on database administrators (DBAs) to organize and monitor financial records, employee profiles, and other sensitive information. These professionals also work to improve security and efficiency through testing, regular evaluation, and routine modifications. \n\nDBAs may be employed in-house at larger firms or organizations, but an increasing number of these professionals are finding work at third-party companies that specialize in database services. \n\nYou will need to be experienced with a variety of database platforms including MySQL, Oracle, and DB2.  \n\nDBAs typically do not work with \"Big Data\", which requires a different set of skills associated with the [data scientist](data-scientist) career goal.\n\nIf you want to prepare for jobs in database administration, you will want to take both semesters of Databases ([ICS 321](../courses/ics321) and [ICS 421](../courses/ics421)).  Networking and security classes will also be important preparation.\n\nDatabase Administrator was named [one of the 14 best tech jobs in America](http://www.cio.com/article/3167568/it-skills-training/14-best-tech-jobs-in-america.html#slide6). [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/database-administrators.htm)"
        },
        {
          "name": "DevOps Engineer",
          "slug": "devops-engineer",
          "interests": [
            "application-development",
            "databases",
            "networks",
            "software-engineering"
          ],
          "description": "\"DevOps\" (short for \"development operations\") is a new and important specialization within software engineering. It refers to tools, technologies, and development processes in support of high speed application design, implementation, deployment, evolution, and scaling.  Put more simply, a DevOps engineer makes sure that business systems get deployed fast, stay up under heavy loads, are not hacked (or can be fixed quickly if hacked), and can be updated without loss of downtime. \n\nAccording to the [2015 State of DevOps report](http://puppetlabs.com/2015-devops-report), organizations using DevOps deploy code up to 30 times more frequently with 50% less deployment failures than those who do not.\n\nTo prepare for a career in DevOps, you need to start with software engineering ([ICS 314](../courses/ics314)).  Build on that base with coursework in databases ([ICS 321](../courses/ics321)) and networks ([ICS 351](../courses/ics351)).  Finally, put all of that together with experience deploying applications in real-world, high stress situations.  That requires finding a summer internship where you can shadow experienced DevOps engineers as they do their daily work.\n\nDevOps Engineer was named [one of the 10 hottest developer jobs in 2017](http://www.techrepublic.com/article/the-10-hottest-developer-jobs-of-2017/). [View more information here.](https://puppet.com/blog/what-a-devops-engineer)"
        },
        {
          "name": "Full Stack Developer",
          "slug": "full-stack-developer",
          "interests": [
            "databases",
            "software-engineering",
            "web-development"
          ],
          "description": "Full Stack Developer is a career goal focused on the design and implementation of web applications.  \"Full stack\" refers to a broad skill set that starts with front-end user interface design using a CSS framework such as Twitter Bootstrap or Semantic UI, proceeds through business logic implementation using Java, Javascript, Python, Ruby, C#, or some other programming language, and concludes with the design and implementation of a back-end database system using SQL, MongoDB, or some other variant.   \n\nIn addition, full stack developers must ensure that the application performs appropriately across multiple devices (laptops, tablets, and mobile). Full stack developers must often ensure that their design is scalable as usage increases.  \n\nTo prepare for this career goal, supplement your skills acquired inSoftware Engineering ([ICS 314](../courses/ics314)) with other coursework including Databases ([ICS 321](../courses/ics321)) and (perhaps) Design for Mobile Devices ([ICS 466](../courses/ics466)). You might also want to do a summer internship with a business doing web application development to hone your skills and obtain experience in a \"real-world\" application development setting.\n\nFull Stack Developer was named one of the [Top 5 Hot IT Jobs in 2017](https://www.randstadusa.com/jobs/career-resources/hot-jobs-2017/best-in-demand-information-technology-jobs/). [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/web-developers.htm)"
        },
        {
          "name": "Game Developer",
          "slug": "game-developer",
          "interests": [
            "computer-graphics",
            "databases",
            "game-design",
            "unity",
            "virtual-reality"
          ],
          "description": "The Game Developer career goal refers to a specialized form of Software Developer who focuses on game design and implementation. This is a challenging career path as it is both highly competitive and, depending upon the game, can require advanced skills including one or more of: graphic design, physics, algorithms, networking, UI design, hardware, device driver and OS-level programming, and the appropriate use of game mechanics to provide an entertaining and/or educational experience.   That said, being a Game Developer is totally cool and you should totally go for it.\n\nAs the above paragraph indicates, game development in general involves an intimidating level of both breadth and depth in knowledge.  But you don't need to know everything to get started.  To be well prepared for this career goal, it helps to start by developing a solid analytical background through coursework in math, physics, and algorithms ([ICS 311](../courses/ics311)), then add solid programming skills including high level (software engineering ([ICS 3114](../courses/ics314))) and low-level ([ICS 312](../courses/ics312)), plus databases ([ICS 321](../courses/ics321)).  If you are interested in designing games involving an AI, then you'll want basic AI ([ICS 361](../courses/ics361)) as well as AI for Games ([ICS 462](../courses/ics462)).  Cap it off with Video Game Design and Development ([ICS 485](../courses/ics485)). \n\nYou should also take advantage of opportunities outside of the classroom to experience game development, such as the yearly Global Game Jam.  There are often summer internships at companies doing game design that can provide invaluable \"real-world\" experience and help you decide if this career path is for you. [View more information here.](http://study.com/articles/Game_Developer_Job_Description_Duties_and_Requirements.html)"
        },
        {
          "name": "Graduate School",
          "slug": "graduate-school",
          "interests": [
            "research"
          ],
          "description": "Let's be frank: if you are considering a long-term career in computer science, then graduate school should one of your career goals.  This doesn't mean you need to go right back to school after you graduate; many if not most graduate students in computer science spent at least a few years working before returning to school. But obtaining an M.S. or Ph.D. in Computer Science at some point can open up many new opportunities in your professional career. \n\nThe basic difference between an M.S. and Ph.D. degree is \"scientific contribution\".  An M.S. degree enables you to obtain more advanced skills in any of the CS disciplines.  M.S. programs are typically two years long.  A Ph.D. degree adds the requirement that you develop a dissertation that documents a scientific contribution: some entirely new knowledge about computer science. The Ph.D. degree typically requires at least two to four additional years after the M.S. degree.  \n\nTo prepare to include graduate school at some point after you graduate, the most important thing to do is to plan one or more semesters where you participate in a research project with a professor.  You can do this via [ICS 499](../courses/ics499), or even on a volunteer basis as long as you devote sufficient time to the project. This is important for two reasons. First, successful participation demonstrates to the people who later review your graduate school application that you are able to do graduate-level work, which is usually more independent and research-related.  Second, it enables your professor to get to know you on a more personal level and in the context of an independent project, not just a few homework assignments.  This will enable your professor to write you a strong recommendation letter, which is crucial to getting accepted to graduate school. [View more information here.](hhttp://www.ics.hawaii.edu/academics/graduate-degree-programs/so-you-want-to-apply-to-graduate-school/)"
        },
        {
          "name": "Information Security Analyst",
          "slug": "information-security-analyst",
          "interests": [
            "databases",
            "networks",
            "security"
          ],
          "description": "In RadGrad, the \"information security analyst\" career goal is intended to cover the wide variety of security-related positions, including Security Analyst, Security Architect, Security Software Developer, Cryptanalyst, Security Engineer, Security Administrator, Cryptographer, and Security Consultant. \n\nSecurity professionals range from \"ethical hackers\" who probe and exploit security vulnerabilities in web-based applications and network systems to cryptographers who analyze and decrypt hidden information from cyber-terrorists. There are jobs in security in virtually every industry, as well as in government. \n\nThe ICS degree  program offers many opportunities to develop security-related expertise.  We offer the [Security Science Focus](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/) which includes [ICS 355](../courses/ics355), [ICS 455](../courses/ics455), and (for motivated undergraduates) ICS 655.  We offer two courses related to Information Assurance ([ICS 425](../courses/ics425) and [ICS 426](../courses/ics426)).  You will also want to take at least one course in networking and one course in databases.\n\nIf you are interested in a career in security, we also recommend that you participate in [ICS GreyHats](http://www.ics.hawaii.edu/community/community-profile-the-ics-grey-hats/), a student club providing a venue for networking with industry and government, performing community service, and practical application of security skills in a supportive environment.\n\nFinally, the ICS Department sponsors a variety of security-related hackathons and contests every year. These also provide important learning opportunities in security.\n\nSecurity Engineer (a synonym for Information Security Analyst) was named one of the [Top 5 Hot IT Jobs in 2017](https://www.randstadusa.com/jobs/career-resources/hot-jobs-2017/best-in-demand-information-technology-jobs/). [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/information-security-analysts.htm)"
        },
        {
          "name": "Information System Manager",
          "slug": "information-system-manager",
          "interests": [
            "it-management"
          ],
          "description": "The Information System Manager career goal combines computer science with business management.  In RadGrad, Information Systems Manager is an umbrella term for a variety of positions such as Chief Information Officer, Chief Technology Officer, and IT or MIS Director.  \n\nDepending upon the specific position, your responsibilities will include planning and coordination of computer-related business functions,  defining technology strategy, and/or evaluating new technology. The positions tend to involve supervision of other employees and determining the financial implications and business risks of your decisions.\n\nAs an undergrad, you can prepare for this career goal by enrolling in both computer science and business classes.  If your interests skew heavily toward the management side, you might consider transferring to the [Information Technology Management program](http://shidler.hawaii.edu/itm) in the School of Business. \n\nYou might also consider pursuing our [B.A. in ICS](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/ba-ics/). This choice provides more curricular freedom to support a combination of computer science and business courses. \n\nBe aware: this career goal is highly competitive.  If you are serious about it, then the best preparation is to first obtain a [B.S. in Computer Science](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/bs-ics/) or [B.S. in Computer Engineering](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/bs-ce/), and follow that with a Masters degree in Business Administration.  You do not have to go directly to graduate school: you can obtain your undergraduate degree, work for a few years, and then obtain your MBA. [View more information here.](http://www.bls.gov/ooh/management/computer-and-information-systems-managers.htm)"
        },
        {
          "name": "IoT Architect",
          "slug": "iot-architect",
          "interests": [
            "algorithms",
            "computer-architecture",
            "data-science",
            "data-visualization",
            "databases",
            "hardware",
            "hci",
            "networks",
            "security"
          ],
          "description": "The [Internet of Things](https://en.wikipedia.org/wiki/Internet_of_things) (IoT) refers to the expansion of internet connectivity beyond traditional \"computers\" to other devices including refrigerators, cars,  houses, water heaters, solar panels, light bulbs, irrigation systems, heart monitoring implants, thermostats, etc.  These devices typically include sensors (to obtain data about their environment) as well as actuators (so they can act within their environment with behaviors).  The emerging IoT provides tremendous opportunities for improved decision making and efficiency, as well as tremendous security risks. \n\nTo pursue the IoT architect career goal, it helps to become familiar with hardware design ([ICS 331](../courses/ics331)), software engineering ([ICS 314](../courses/ics314)), networks ([ICS 311](../courses/ics311)), databases ([ICS 321](../courses/ics321)), security ([ICS 355](../courses/ics355)), and visualization ([ICS 484](../courses/ics484)).  Outside opportunities like [HI Capacity](../opportunities/hicapacity) and the [AT&T IoT Focused Hackathon](../opportunities/att-iot-hackathon) can provide you with practical exposure to IoT technologies.  [How to Become an IoT Developer: Six Tips](http://www.techrepublic.com/article/how-to-become-an-iot-developer-6-tips/) is useful reading.\n\nIoT architect was named one of the [Top 5 Hot IT Jobs in 2017](https://www.randstadusa.com/jobs/career-resources/hot-jobs-2017/best-in-demand-information-technology-jobs/). [View more information here.](https://en.wikipedia.org/wiki/Internet_of_things)"
        },
        {
          "name": "Mobile App Developer",
          "slug": "mobile-app-developer",
          "interests": [
            "android",
            "mobile",
            "ios"
          ],
          "description": "The Mobile App Developer career path refers to a specialized software developer who can build \"native\" mobile applications for the Android and/or iOS operating systems.  \n\nTo prepare for this career path, begin with solid software development skills through coursework in software engineering ([ICS 314](../courses/ics314)), networking ([ICS 351](../courses/ics351)), and databases ([ICS 321](../courses/ics321)).  You'll also want to take Design for Mobile Devices ([ICS 466](../courses/ics466)).  \n\nIn addition to coursework, you'll want to develop specialized skills for your platform of choice: Android development involves a variant of Java, while modern iOS development involves the Swift programming language. You might want to take a summer course through Udacity or Coursera to augment your ICS preparation.\n\nFinally, if you want a career in mobile application development, don't wait to get started!   There's nothing preventing you from building a few applications and releasing them in the Android or iOS app stores.  If nothing else, they can be presented as part of your professional portfolio when you are interviewing for a job.  In the best case scenario, you might make a few bucks.\n\nMobile App Developer was named [one of the 10 hottest developer jobs in 2017](http://www.techrepublic.com/article/the-10-hottest-developer-jobs-of-2017/). [View more information here.](http://www.tomsitpro.com/articles/become-mobile-app-developer,1-2219.html)"
        },
        {
          "name": "Network Engineer",
          "slug": "network-engineer",
          "interests": [
            "hardware",
            "networks"
          ],
          "description": "In RadGrad, the Network Engineer career goal also refers to positions such as Network Administrator, Network Architect, Network Manager, and Wireless Network Engineer.\n\nIn all cases, this career goal involves the design, construction, and maintenance of data communication networks, including local area networks (LANs), wide area networks (WANs), and intranets, wired or wireless. Such networks could range from simple connections between a set of offices to large-scale cloud infrastructures serving millions of people. \n\nConsider this career goal if you are comfortable and interested in work that combines design and decision-making about both software and hardware.    If your interests lean heavily toward the hardware side, you might want to consider the [B.S. in Computer Engineering](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/bs-ce/) degree.\n\nTo prepare for this career goal, you will want to take courses in both networking (such as [ICS 351](../courses/ics351) and [ICS 451](../courses/ics451)) and hardware ([ICS 331](../courses/ics331)). To augment the traditional curriculum, consider an Independent Study  ([ICS 499](../courses/ics499)) in a research project involving networking. [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/computer-network-architects.htm)"
        },
        {
          "name": "Research Scientist",
          "slug": "research-scientist",
          "interests": [
            "research"
          ],
          "description": "The Research Scientist career goal is for those who want to prepare, quite simply, to invent the future. In RadGrad, the research scientist career goal represents job positions that typically require a Ph.D., such as \"Professor\" (in academia) or \"Research Scientist\" (in industry).  \n\nResearch scientists design, implement, and evaluate new approaches to computing and computing technology, and apply those approaches to solving significant problems in business, medicine, science, and other fields. Research scientists have the highest level of autonomy of any career goal; you are hired by an organization with the expectation that you will define and organize your work yourself (while within the general business or academic constraints of the organization).  Research scientists can often wear jeans and a t-shirt to work, because you will be evaluated almost totally on your ability to innovate. \n\nTo prepare to become a research scientist, you should also have [graduate school](graduate-school) as a career goal, and you should plan to (eventually) get a Ph.D. That said, you don't have to go to graduate school immediately: you might decide after graduation to first join or create a startup company based upon an idea you had as an undergraduate.  Successful research scientists have a tolerance for risk: not all research ideas are successful (if you can guarantee in advance that an idea will be successful, then by definition it no longer involves research).\n\nIf this career goal appeals to you, get involved with one (or more) research projects as an undergraduate.  This will both give you a taste for the work and enable you to develop connections with professors that will help when you eventually apply to graduate school.  If possible, try to publish a paper while you are an undergraduate. Your professor can help you to make that happen. [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm)"
        },
        {
          "name": "Robotics Engineer",
          "slug": "robotics-engineer",
          "interests": [
            "hardware",
            "robotics",
            "software-engineering"
          ],
          "description": "The robotics engineer career path involves the design of hardware and associated software to create automated systems to accomplish physical tasks that humans cannot or prefer not to do. The range of applications for Robotics Engineers is quite wide: from self-driving vacuum cleaners ([Roomba](https://store.irobot.com/default/robot-vacuum-roomba/)) to self-driving cars ([Tesla's autopilot](https://www.tesla.com/autopilot)).  Robotics engineers also work on drones, automated factory equipment, and other hardware systems involving autonomous behavior.\n\nTo prepare for the Robotics Engineer career path, most students will want to pursue the [B.S. in Computer Engineering](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/bs-ce/) degree program. This degree program will give you a solid foundation in hardware design, including circuits, signals, and digital electronics. Helpful ICS coursework includes Machine-level Programming ([ICS 312](../courses/ics312)), Software Design for Robotics ([ICS 452](../courses/ics452)), and Computer Vision ([ICS 483](../courses/ics483)). [View more information here.](https://www.sokanu.com/careers/robotics-engineer/)"
        },
        {
          "name": "Software Developer",
          "slug": "software-developer",
          "interests": [
            "application-development",
            "software-engineering"
          ],
          "description": "Software Developer is probably the most common career goal for computer science students, at least initially. This career goal also includes position titles such as Developer, Software Engineer, Programmer, Coder, Software Architect, Business Application Programmer, Programmer Analyst, and so forth.  \n\nBecause of their popularity and because they require specialized software development skills, RadGrad also defines more specialized career goals that are related to Software Developer: [Mobile App Developer](mobile-app-developer), [Game Developer](game-developer), and [Full Stack Developer](full-stack-developer). If you're not sure what kind of development you want to do, then Software Developer is a good bet.\n\nIn general, software developers are responsible for designing computing programs, applications, and support systems. They meet with clients to discuss technological needs, and then develop software to addresses those demands.  Once initially implemented, software developers must modify and maintain the systems as business requirements for the software change.\n\nTo prepare for the software developer, you need strong programming and software engineering skills which is guaranteed by any of the ICS degree programs.  Beyond the classroom, you should participate in programming-related events like coding competitions and hackathons.  You should also consider a summer internship doing software development for a business in order to gain \"real-world\" experience prior to graduation.\n\nSoftware Engineer was named [one of the 14 best tech jobs in America](http://www.cio.com/article/3167568/it-skills-training/14-best-tech-jobs-in-america.html#slide9). [View more information here.](http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm)"
        },
        {
          "name": "Startup Co-Founder",
          "slug": "startup-cofounder",
          "interests": [
            "entrepreneurship"
          ],
          "description": "According to [the wikipedia entry](https://en.wikipedia.org/wiki/Startup_company), a software company is *an entrepreneurial venture which is typically a newly emerged, fast-growing business that aims to meet a marketplace need by developing or offering an innovative product, process or service. A startup is usually a company such as a small business, a partnership or an organization designed to rapidly develop a scalable business model.*\n\nIf your career goal is to start a new high tech business, then you will want a solid foundation in computer science, but the specific courses depend upon the application domain.  You might want to combine this career goal with another, more application-specific goal, such as [game developer](game-developer) or [VR/AR Engineer](vr-ar-engineer). \n\nRegardless of the application domain, you will want to acquire an understanding of business issues in general and startup issues in particular. You will definitely want to participate in the [Shidler Business Plan Competition](../opportunities/shider-bpc), and you might also want to do one or more summer internships to get a better sense of how technology development is shaped by market and organizational forces. [View more information here.](https://en.wikipedia.org/wiki/Startup_company)"
        },
        {
          "name": "Teacher",
          "slug": "teacher",
          "interests": [
            "teaching"
          ],
          "description": "Teaching often appears in lists of [the top 10 most satisfying careers](http://www.careercast.com/jobs-rated/whistling-while-you-work-10-most-satisfying-careers), and it's easy to see why: you are helping others, you are benefitting society, and you get summers off, among [other things](https://www.buzzfeed.com/mrloganrhoades/the-24-best-parts-about-being-a-teacher?utm_term=.arAKJwPVrG#.txpklaR2Bx).\n\nIf you are interested in teaching high school computer science, we recommend that you complete either the B.A. or B.S. in computer science degree program, then plan to obtain a [Certificate in Secondary Education](https://coe.hawaii.edu/academics/institute-teacher-education/pbc-secondary).  This certificate can be obtained in 18 months after graduation, and you can take classes in the evening or online. \n\nYou don't have to wait until you obtain a teaching certificate to get started teaching. Consider programs such as [Teach for America](https://hawaii.teachforamerica.org/teaching-here). In addition, many private schools in Hawaii do not require a teaching certificate. [View more information here.](http://tobecomeateacher.org/becoming-a-cs-teacher/)"
        },
        {
          "name": "UX Designer",
          "slug": "ux-designer",
          "interests": [
            "computer-graphics",
            "data-visualization",
            "hci",
            "web-development"
          ],
          "description": "The UX (User Experience) Designer career goal refers to jobs that involve the evaluation and improvement of usability, accessibility, and pleasure in the interaction with a software application.  UX design is closely related to human-computer interaction design, but extends it by addressing all aspects of the product or service as experienced by users.\n\nTo prepare for this career goal, you will want to extend your foundation in computer science with preparation in human-computer interaction ([ICS 464](../courses/ics464)), cognitive science ([ICS 469](../courses/ics469)), and/or data visualization ([ICS 484](../courses/ics484)). \n\nIf you are passionate about UX design, you may wish to pursue the [B.A. in ICS](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/ba-ics/) degree plan to leave room in your schedule for coursework in Psychology or Graphic Arts.\n\nUX Designer was named [one of the 10 hottest developer jobs in 2017](http://www.techrepublic.com/article/the-10-hottest-developer-jobs-of-2017/). [View more information here.](https://en.wikipedia.org/wiki/User_experience_design)"
        },
        {
          "name": "VR/AR Engineer",
          "slug": "vr-ar-engineer",
          "interests": [
            "algorithms",
            "artificial-intelligence",
            "cognitive-science",
            "computer-graphics",
            "data-visualization",
            "game-design",
            "virtual-reality"
          ],
          "description": "Virtual Reality and Augmented Reality have the potential to fundamentally change how people interact with data, with their environment, and with each other. In the past few years, technological breakthroughs have included the ability to solve the \"motion sickness problem\" and the use smartphones and simple cardboard enclosures rather than expensive dedicated headsets.  The next ten years will see the application of VR and AR to many technology sectors. \n\nTo pursue the VR/AR engineer career goal, it helps to become familiar with hardware design ([ICS 331](../courses/ics331)), algorithms ([ICS 311](../courses/ics311)), and visualization ([ICS 484](../courses/ics484)).  Outside opportunities like [ACM Manoa/VR](../opportunities/acm-manoa-vr) and the [Lava Lab](../opportunities/lava-lab) can provide you with practical exposure to VR technologies. \n\nVR/AR engineer was named one of the [Top 5 Hot IT Jobs in 2017](https://www.randstadusa.com/jobs/career-resources/hot-jobs-2017/best-in-demand-information-technology-jobs/). [View more information here.](https://www.monster.com/career-advice/article/virtual-reality-tech-land-a-job)"
        }
      ]
    },
    {
      "name": "CourseCollection",
      "contents": [
        {
          "name": "Digital Tools for the Information World",
          "shortName": "Digital Tools",
          "slug": "ics_101",
          "num": "ICS 101",
          "description": "Fundamental information technology concepts and computing terminology, productivity software for problem solving, computer technology trends and impact on individuals and society. Emphasizes the utilization of operating systems and the production of professional documents, spreadsheets, etc.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Introduction to Computer Programming",
          "shortName": "Intro to CS",
          "slug": "ics_110",
          "num": "ICS 110",
          "description": "Basic concepts needed to write computer programs. Simple program design and implementation using a specific programming language; (C) C; (D) through animations; (P) Python. Each alpha repeatable unlimited times, but credit earned one time only.",
          "creditHrs": 3,
          "interests": [
            "python"
          ],
          "prerequisites": []
        },
        {
          "name": "Introduction to Computer Science I",
          "shortName": "Comp Sci I",
          "slug": "ics_111",
          "num": "ICS 111",
          "description": "Overview of computer science, including Java programming, control structures, subroutines, objects and classes, GUI programming, arrays, and recursion.",
          "creditHrs": 4,
          "interests": [
            "java"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS111.html",
          "prerequisites": []
        },
        {
          "name": "Discrete Mathematics for Computer Science I",
          "shortName": "Discrete Math I",
          "slug": "ics_141",
          "num": "ICS 141",
          "description": "Introduction to propositional and predicate logic, sets, functions, linear algebra, algorithms, mathematical reasoning, recursion, counting techniques, and probability theory. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS141/)",
          "creditHrs": 3,
          "interests": [
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS141.html",
          "prerequisites": []
        },
        {
          "name": "Introduction to Computer Science II",
          "shortName": "Comp Sci II",
          "slug": "ics_211",
          "num": "ICS 211",
          "description": "Object-oriented programming, algorithms and their complexity, introduction to software engineering, lists, stacks, queues, trees hash tables, and searching and sorting algorithms. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS211/)",
          "creditHrs": 4,
          "interests": [
            "algorithms",
            "software-engineering",
            "java"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS211.html",
          "prerequisites": [
            "ics_111"
          ]
        },
        {
          "name": "Program Structure",
          "shortName": "Program Structure",
          "slug": "ics_212",
          "num": "ICS 212",
          "description": "Program organization paradigms, programming environments, implementation of a module from specifications, the C and C++ programming languages.",
          "creditHrs": 3,
          "interests": [
            "c",
            "cplusplus",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS212.html",
          "prerequisites": [
            "ics_211"
          ]
        },
        {
          "name": "Introduction to Scripting",
          "shortName": "Scripting",
          "slug": "ics_215",
          "num": "ICS 215",
          "description": "Introduction to scripting languages for the integration of applications and systems. Scripting in operating systems, web pages, server-side application integration, regular expressions, event handling, input validation, selection, repetition, parameter passing, Perl, JavaScript, and PHP. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS215/)",
          "creditHrs": 3,
          "interests": [
            "perl",
            "javascript",
            "ruby",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS215.html",
          "prerequisites": [
            "ics_211"
          ]
        },
        {
          "name": "Basic Concepts of Computer Science",
          "shortName": "Comp Sci Concepts",
          "slug": "ics_222",
          "num": "ICS 222",
          "description": "What is computer science about? What is the difference between computers and other machines? What are the limits of computation? Are there computers that are not machines? Understand the basic issues of computability, complexity, and network effects, and learn to apply them in the practice of computation.",
          "creditHrs": 3,
          "interests": [
            "theory-of-computation"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS222.html",
          "prerequisites": [
            "ics_141"
          ]
        },
        {
          "name": "Discrete Mathematics for Computer Science II",
          "shortName": "Discrete Math II",
          "slug": "ics_241",
          "num": "ICS 241",
          "description": "Program correctness, recurrence relations and their solutions, divide and conquer relations, relations and their properties, graph theory, trees and their applications, Boolean algebra, introduction to formal languages and automata theory. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS241/)",
          "creditHrs": 3,
          "interests": [
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS241.html",
          "prerequisites": [
            "ics_141"
          ]
        },
        {
          "name": "Algorithms",
          "shortName": "Algorithms",
          "slug": "ics_311",
          "num": "ICS 311",
          "description": "Design and correctness of algorithms, including divide-and-conquer, greedy and dynamic programming methods. Complexity analyses using recurrence relations, probabilistic methods, and NP-completeness. Applications to order statistics, disjoint sets, B-trees and balanced trees, graphs, network flows, and string matching. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS311/)",
          "creditHrs": 4,
          "interests": [
            "algorithms",
            "data-science"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS311.html",
          "prerequisites": [
            "ics_241",
            "ics_211"
          ]
        },
        {
          "name": "Machine-Level and Systems Programming",
          "shortName": "Systems Programming",
          "slug": "ics_312",
          "num": "ICS 312",
          "description": "Machine organization, machine instructions, addressing modes, assembler language, subroutine linkage, linking to higher-level languages, interface to operating systems, introduction to assemblers, loaders and compilers. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS312/)",
          "creditHrs": 3,
          "interests": [
            "assembler",
            "computer-architecture",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS312.html",
          "prerequisites": [
            "ics_212",
            "ics_314"
          ]
        },
        {
          "name": "Programming Language Theory",
          "shortName": "Programming Languages",
          "slug": "ics_313",
          "num": "ICS 313",
          "description": "Syntax, semantics, control structures, variable binding and scopes, data and control abstractions. Programming in functional (LISP) and logic (Prolog) programming styles.",
          "creditHrs": 3,
          "interests": [
            "lisp",
            "prolog"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS313.html",
          "prerequisites": [
            "ics_212",
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Software Engineering I",
          "shortName": "Software Eng I",
          "slug": "ics_314",
          "num": "ICS 314",
          "description": "Problem analysis and design, team-oriented development, quality assurance, configuration management, project planning. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS314/)",
          "creditHrs": 3,
          "interests": [
            "software-engineering",
            "javascript",
            "application-development",
            "it-management"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS314.html",
          "prerequisites": [
            "ics_211",
            "ics_241"
          ]
        },
        {
          "name": "Data Storage and Retrieval",
          "shortName": "Databases I",
          "slug": "ics_321",
          "num": "ICS 321",
          "description": "Data storage devices, timing and capacity, programming for files, hashed and indexed files, introduction to relational database systems. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS321/)",
          "creditHrs": 3,
          "interests": [
            "databases",
            "application-development",
            "sql"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS321.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Logic Design and Microprocessors",
          "shortName": "Microprocessors",
          "slug": "ics_331",
          "num": "ICS 331",
          "description": "Basic machine architecture, microprocessors, bus organization, circuit elements, logic circuit analysis and design, microcomputer system design.",
          "creditHrs": 4,
          "interests": [
            "computer-architecture",
            "hardware",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS331.html",
          "prerequisites": [
            "ics_212",
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Operating Systems",
          "shortName": "Operating Systems",
          "slug": "ics_332",
          "num": "ICS 332",
          "description": "Operating system concepts and structure, processes and threads, CPU scheduling, memory management, scheduling, file systems, inter-process communication, virtualization, popular operating systems.",
          "creditHrs": 3,
          "interests": [
            "operating-systems",
            "computer-architecture",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS332.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Network Design and Management",
          "shortName": "Networks",
          "slug": "ics_351",
          "num": "ICS 351",
          "description": "Overview of the internet and its capabilities; introduction to HTTP, TCP/IP, ethernet, and wireless 802.11; routers, switches, and NAT; network and wireless security; practical experience in designing and implementing networks.",
          "creditHrs": 3,
          "interests": [
            "networks",
            "security",
            "hardware",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS351.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Security and Trust I: Resource Protections",
          "shortName": "Security & Trust I",
          "slug": "ics_355",
          "num": "ICS 355",
          "description": "Security and trust in computers, networks, and society. Security models. Access and authorization. Availability and Denial-of-Service. Trust processes and network interactions. [View more information here.](http://courses.ics.hawaii.edu/ReviewICS355/)",
          "creditHrs": 3,
          "interests": [
            "security"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS355.html",
          "prerequisites": [
            "ics_222",
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Introduction to Artificial Intelligence Programming",
          "shortName": "AI Programming",
          "slug": "ics_361",
          "num": "ICS 361",
          "description": "Introduction to the theory of Artificial Intelligence and the practical application of AI techniques in Functional (Common LISP and/or Scheme) and Logic (Prolog) programming languages. Students gain practical experience through programming assignments and projects.",
          "creditHrs": 3,
          "interests": [
            "artificial-intelligence",
            "lisp",
            "prolog"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS361.html",
          "prerequisites": [
            "ics_212",
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Computing Ethics for Lab Assistants",
          "shortName": "Ethics for LAs",
          "slug": "ics_390",
          "num": "ICS 390",
          "description": "A lecture/discussion/internship on ethical issues and instructional techniques for students assisting a laboratory section of ICS 101. The class uses multiple significant writing and oral presentation activities to help students learn course content.",
          "creditHrs": 3,
          "interests": [
            "teaching",
            "computer-ethics"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS390.html",
          "prerequisites": [
            "ics_101"
          ]
        },
        {
          "name": "Software Engineering II",
          "shortName": "Software Eng II",
          "slug": "ics_414",
          "num": "ICS 414",
          "description": "Continuation of 314. Project management, quality, and productivity control, testing and validation, team management. Team-oriented software-implementation project.",
          "creditHrs": 3,
          "interests": [
            "software-engineering",
            "application-development",
            "it-management"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS414.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Introduction to Programming for the Web",
          "shortName": "Intro to Web Programming",
          "slug": "ics_415",
          "num": "ICS 415",
          "description": "Introduction to emerging technologies for construction of World Wide Web (WWW)-based software. Covers programming and scripting languages used for the creation of WWW sites and client-server programming. Students will complete a medium-sized software project that uses languages and concepts discussed in class.",
          "creditHrs": 3,
          "interests": [
            "application-development",
            "software-engineering"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS415.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "The Science, Psychology and Philosophy of Systems Design",
          "shortName": "Science of Systems Design",
          "slug": "ics_419",
          "num": "ICS 419",
          "description": "Scientific, psychological and philosophical bases of systems design, including a survey of human-factors and ergonomic standards; the nature of innovation and creativity as it relates to systems design.",
          "creditHrs": 3,
          "interests": [
            "software-engineering",
            "hci"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS419.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Database Systems",
          "shortName": "Databases II",
          "slug": "ics_421",
          "num": "ICS 421",
          "description": "Principles of database systems, data modeling, relational models, database design, query languages, query optimization, concurrency control data security.",
          "creditHrs": 3,
          "interests": [
            "databases"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS421.html",
          "prerequisites": [
            "ics_321"
          ]
        },
        {
          "name": "Data Processing",
          "shortName": "Data Processing",
          "slug": "ics_422",
          "num": "ICS 422",
          "description": "Role of data processing in organizations, programming practices, ethics, sequential and indexed file processing, report writing, online transaction processing.",
          "creditHrs": 3,
          "interests": [
            "databases"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS422.html",
          "prerequisites": [
            "ics_321"
          ]
        },
        {
          "name": "Data Security and Cryptography I",
          "shortName": "Cryptography I",
          "slug": "ics_423",
          "num": "ICS 423",
          "description": "History of secret communication and confidential data storage. Elements of cryptography and cryptanalysis. Classical ciphers. Symmetric key cryptography. Public key cryptography. Data security in cyberspace.",
          "creditHrs": 3,
          "interests": [
            "cryptography",
            "security"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS423.html",
          "prerequisites": [
            "ics_355"
          ]
        },
        {
          "name": "Application Frameworks",
          "shortName": "Application Frameworks",
          "slug": "ics_424",
          "num": "ICS 424",
          "description": "Experience producing applications with at least two different applications frameworks.",
          "creditHrs": 3,
          "interests": [
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS424.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Computer Security and Ethics",
          "shortName": "Security & Ethics",
          "slug": "ics_425",
          "num": "ICS 425",
          "description": "Theoretical results, security policy, encryption, key management, digital signatures, certificates, passwords. Ethics: privacy, computer crime, professional ethics. Effects of the computer revolution on society.",
          "creditHrs": 3,
          "interests": [
            "security",
            "computer-ethics",
            "it-management"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS425.html",
          "prerequisites": [
            "ics_355"
          ]
        },
        {
          "name": "Computer System Security",
          "shortName": "Computer System Security",
          "slug": "ics_426",
          "num": "ICS 426",
          "description": "Information flow, confinement, information assurance, malicious programs, vulnerability analysis, network security, writing secure programs.",
          "creditHrs": 3,
          "interests": [
            "security",
            "it-management"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS426.html",
          "prerequisites": [
            "ics_355"
          ]
        },
        {
          "name": "Computer Architecture",
          "shortName": "Computer Architecture",
          "slug": "ics_431",
          "num": "ICS 431",
          "description": "Memory management, control flow, interrupt mechanisms, multiprocessor systems, special-purpose devices.",
          "creditHrs": 3,
          "interests": [
            "computer-architecture",
            "hardware"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS431.html",
          "prerequisites": [
            "ics_331"
          ]
        },
        {
          "name": "Concurrent and High-Performance Programming",
          "shortName": "Concurrent Programming",
          "slug": "ics_432",
          "num": "ICS 432",
          "description": "Principles of concurrent and high performance programming. Multi-threading in C and Java for shared-memory programming. Distributed memory programming with Java. Introduction to cluster computing.",
          "creditHrs": 3,
          "interests": [
            "parallel-programming",
            "hpc",
            "c",
            "java",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS432.html",
          "prerequisites": [
            "ics_311",
            "ics_314",
            "ics_212"
          ]
        },
        {
          "name": "Machine Learning Fundamentals",
          "shortName": "Machine Learning",
          "slug": "ics_435",
          "num": "ICS 435",
          "description": "Introduction to machine learning concepts with a focus on relevant ideas from computational neuroscience. Information processing and learning in the nervous system. Neural networks. Supervised and unsupervised learning. Basics of statistical learning theory.",
          "creditHrs": 3,
          "interests": [
            "machine-learning",
            "data-science"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS435.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Theory of Computation",
          "shortName": "Theory of Computation",
          "slug": "ics_441",
          "num": "ICS 441",
          "description": "Grammars, sequential machines, equivalence, minimalization, analysis and synthesis, regular expressions, computability, unsolvability, Godel's theorem, Turing machines.",
          "creditHrs": 3,
          "interests": [
            "theory-of-computation",
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS441.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Analytical Models and Methods",
          "shortName": "Analytics Models",
          "slug": "ics_442",
          "num": "ICS 442",
          "description": "Applications of mathematical methods in computer science with emphasis on discrete mathematics, numerical computation, algebraic models, operations research.",
          "creditHrs": 3,
          "interests": [
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS442.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Parallel Algorithms",
          "shortName": "Parallel Algorithms",
          "slug": "ics_443",
          "num": "ICS 443",
          "description": "Introduction to parallel models of computation and design and analysis of parallel algorithms.",
          "creditHrs": 3,
          "interests": [
            "parallel-programming",
            "algorithms",
            "computer-architecture",
            "data-science",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS443.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Data Networks",
          "shortName": "Data Networks",
          "slug": "ics_451",
          "num": "ICS 451",
          "description": "Network analysis, architecture, digital signal analysis and design; circuit switching, packet switching, packet broadcasting; protocols and standards; local area networks; satellite networks; ALOHA channels; examples.",
          "creditHrs": 3,
          "interests": [
            "networks",
            "c"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS451.html",
          "prerequisites": [
            "ics_311",
            "ics_314",
            "ics_212"
          ]
        },
        {
          "name": "Software Design for Robotics",
          "shortName": "Robotics",
          "slug": "ics_452",
          "num": "ICS 452",
          "description": "Sensors, actuators, signal processing, paradigms of robotic software design, introduction to machine learning, introduction to computer vision, and robot-to-human interaction.",
          "creditHrs": 3,
          "interests": [
            "robotics",
            "machine-learning",
            "hardware",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS452.html",
          "prerequisites": [
            "ics_312",
            "ics_313"
          ]
        },
        {
          "name": "Security and Trust II: Information Assurance",
          "shortName": "Security & Trust II",
          "slug": "ics_455",
          "num": "ICS 455",
          "description": "Channel security. Trojan and noninterference. Basic concepts of cryptology. Cryptographic primitives. Protocols for authentication and key establishment.",
          "creditHrs": 3,
          "interests": [
            "security",
            "cryptography"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS455.html",
          "prerequisites": [
            "ics_355"
          ]
        },
        {
          "name": "Artificial Intelligence",
          "shortName": "Artificial Intelligence",
          "slug": "ics_461",
          "num": "ICS 461",
          "description": "Survey of artificial intelligence: natural language processing, vision and robotics, expert systems. Emphasis on fundamental concepts: search, planning, and problem solving, logic, knowledge representation.",
          "creditHrs": 3,
          "interests": [
            "artificial-intelligence",
            "algorithms",
            "data-science",
            "robotics"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS461.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Artificial Intelligence for Games",
          "shortName": "AI for Games",
          "slug": "ics_462",
          "num": "ICS 462",
          "description": "Techniques to stimulate intelligence in video games: movement, pathfinding with A* search, decision/behavior trees, state machines, machine learning, tactics. Extend games with your own AI implementations; experience shootout contests for the best AI algorithm/implementation.",
          "creditHrs": 3,
          "interests": [
            "algorithms",
            "game-design",
            "artificial-intelligence",
            "machine-learning",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS462.html",
          "prerequisites": [
            "ics_311",
            "ics_314",
            "ics_212"
          ]
        },
        {
          "name": "Human Computer Interaction I",
          "shortName": "HCI I",
          "slug": "ics_464",
          "num": "ICS 464",
          "description": "Application of concepts and methodologies of human factors, psychology and software engineering to address ergonomic, cognitive, and social factors in the design and evaluation of human-computer systems.",
          "creditHrs": 3,
          "interests": [
            "software-engineering",
            "hci"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS464.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Introduction to Hypermedia",
          "shortName": "Hypermedia",
          "slug": "ics_465",
          "num": "ICS 465",
          "description": "Basic issues of interactive access to information in various formats on computers. Available hardware and software: editing, integration, programming. Implementation of a sample information system.",
          "creditHrs": 3,
          "interests": [
            "software-engineering",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS465.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Design for Mobile Devices",
          "shortName": "Design for Mobile Devices",
          "slug": "ics_466",
          "num": "ICS 466",
          "description": "Design issues, programming languages, operating systems and mark-up languages for internet-enabled mobile devices, such as cell phones and PDAs.",
          "creditHrs": 3,
          "interests": [
            "mobile",
            "application-development",
            "android"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS466.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Cognitive Science",
          "shortName": "Cognitive Science",
          "slug": "ics_469",
          "num": "ICS 469",
          "description": "Introduces basic concepts, central problems, and methods from cognitive science. Identifies contributions from disciplines such as cognitive psychology, linguistics, artificial intelligence, philosophy, and neuroscience.",
          "creditHrs": 3,
          "interests": [
            "psychology",
            "artificial-intelligence",
            "cognitive-science",
            "hci"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS469.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Probability, Statistics, and Queuing",
          "shortName": "Probability & Statistics",
          "slug": "ics_471",
          "num": "ICS 471",
          "description": "Introduction to probability, statistical inference, regression, Markov chains, queuing theory. Use of an interactive statistical graphics environment such as R.",
          "creditHrs": 3,
          "interests": [
            "r",
            "data-science",
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS471.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Introduction to Bioinformatics Sequences and Genomes Analysis",
          "shortName": "Bioinformatics I",
          "slug": "ics_475",
          "num": "ICS 475",
          "description": "Introduction to bioinformatics to computer sciences students by focusing on how computer science techniques can be used for the storage, analysis, prediction and simulation of biological sequences (DNA, RNA and proteins).",
          "creditHrs": 3,
          "interests": [
            "bioinformatics",
            "biology",
            "algorithms",
            "data-science"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS475.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Bioinformatics Algorithms and Tool Development",
          "shortName": "Bioinformatics II",
          "slug": "ics_476",
          "num": "ICS 476",
          "description": "Study of commonly used bioinformatic algorithms, with an emphasis on string, tree, and graph algorithms. Presentation of probabilistic and clustering methods. Implementation of the studied algorithms and design of applications.",
          "creditHrs": 3,
          "interests": [
            "bioinformatics",
            "biology",
            "algorithms",
            "data-science"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS476.html",
          "prerequisites": [
            "ics_475"
          ]
        },
        {
          "name": "Introduction to Computer Graphics",
          "shortName": "Computer Graphics",
          "slug": "ics_481",
          "num": "ICS 481",
          "description": "Fundamentals of computer graphics including graphics hardware, representation, manipulation, and display of two- and three-dimensional objects, use of commercial software.",
          "creditHrs": 3,
          "interests": [
            "computer-graphics"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS481.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Computer Vision",
          "shortName": "Computer Vision",
          "slug": "ics_483",
          "num": "ICS 483",
          "description": "Introductory course in computer vision. Topics include image formation, image processing and filtering, edge detection, texture analysis and synthesis, binocular stereo, segmentation, tracking, object recognition and applications.",
          "creditHrs": 3,
          "interests": [
            "computer-vision",
            "algorithms"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS483.html",
          "prerequisites": [
            "ics_311",
            "ics_314",
            "ics_212"
          ]
        },
        {
          "name": "Data Visualization",
          "shortName": "Data Visualization",
          "slug": "ics_484",
          "num": "ICS 484",
          "description": "Introduction to data visualization through practical techniques for turning data into images to produce insight. Topics include: information visualization, geospatial visualization, scientific visualization, social network visualization, and medical visualization.",
          "creditHrs": 3,
          "interests": [
            "data-visualization",
            "computer-graphics",
            "data-science"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS484.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Video Game Design and Development",
          "shortName": "Game Design",
          "slug": "ics_485",
          "num": "ICS 485",
          "description": "Students will team design, build, and demonstrate video games or related interactive entertainment environments and applications. Topics will include emerging computer science techniques relevant to the development of these types of environments.",
          "creditHrs": 3,
          "interests": [
            "computer-graphics",
            "graphic-design",
            "game-design",
            "application-development"
          ],
          "syllabus": "http://courses.ics.hawaii.edu/syllabuses/ICS485.html",
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Special Topics",
          "shortName": "Special Topics",
          "slug": "ics_491",
          "num": "ICS 491",
          "description": "Reflects special interests of faculty. Oriented toward juniors and seniors. Repeatable one time for BS/CS students.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Special Topics in Security",
          "shortName": "Special Topics: Security",
          "slug": "ics_495",
          "num": "ICS 495",
          "description": "Special topics in security oriented toward juniors and seniors. Repeatable unlimited times.",
          "creditHrs": 3,
          "interests": [
            "security"
          ],
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Computer Project",
          "shortName": "Independent Study",
          "slug": "ics_499",
          "num": "ICS 499",
          "description": "Individual or small-group projects in system design or application under faculty supervision.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": [
            "ics_311",
            "ics_314"
          ]
        },
        {
          "name": "Non Computer Science Course",
          "shortName": "Non-CS Course",
          "slug": "other",
          "num": "other",
          "description": "The course used to represent all non-CS courses.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Programming for Engineers",
          "shortName": "Programming for Engr.",
          "slug": "ee_160",
          "num": "EE 160",
          "description": "Introductory course on computer programming and modern computing environments in C with an emphasis on algorithm and program design, implementation, and debugging. Includes a hands-on laboratory to develop and practice programming skills.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Object Oriented Programming",
          "shortName": "OOP",
          "slug": "ee_205",
          "num": "EE 205",
          "description": "Second-level programming for computer engineers. Object-oriented programming paradigm, definition and use of classes, fundamentals of object-oriented design in modern object-oriented languages such as C++. Common data structures, simple searching and sorting techniques.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_160"]
        },
        {
          "name": "Basic Circuit Analysis I",
          "shortName": "Circuit Analysis I",
          "slug": "ee_211",
          "num": "EE 211",
          "description": "Linear passive circuits, time domain analysis, transient and steady-state responses, phasors, impedance and admittance; power and energy, frequency responses, resonance.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Basic Circuit Analysis II",
          "shortName": "Circuit Analysis II",
          "slug": "ee_213",
          "num": "EE 213",
          "description": "Laplace transforms and their application to circuits, Fourier transforms and their applications to circuits, frequency selective circuits, introduction to and design of active filters, convolution, and state space analysis of circuits.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": ["ee_211"]
        },
        {
          "name": "Introduction to Digital Design",
          "shortName": "Intro. to Digital Design",
          "slug": "ee_260",
          "num": "EE 260",
          "description": "Introduction to the design of digital systems with an emphasis on design methods and the implementation and use of fundamental digital components.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": ["ee_160"]
        },
        {
          "name": "Sophomore Project",
          "shortName": "Sophomore Project",
          "slug": "ee_296",
          "num": "EE 296",
          "description": "Sophomore level individual or team project under EE faculty direction and guidance. The project provides design experience and develops practical skills.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Signal and Systems Analysis",
          "shortName": "Signal Analysis",
          "slug": "ee_315",
          "num": "EE 315",
          "description": "Discrete-time and continuous time signals and systems, linear systems, convolution, Fourier series, Fourier transform, sampling.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_213"]
        },
        {
          "name": "Microelectronic Circuits I",
          "shortName": "Microelectronic I",
          "slug": "ee_323",
          "num": "EE 323",
          "description": "Semiconductor structures, operating principles and characteristics of diodes and amplifying devices. Their application as circuit elements in building basic digital, analog, and integrated circuit subsystems.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_213"]
        },
        {
          "name": "Physical Electronics",
          "shortName": "Physical Electronics",
          "slug": "ee_324",
          "num": "EE 324",
          "description": "Review of quantum mechanics fundamentals, H-atom, and chemical bonding. Introduction to band structure models and materials. Semiconductor doping, charge carrier statistics and charge transport, including ambipolar transport. Metal-semiconductor and PN junctions.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Probability and Statistics",
          "shortName": "Probability and Statistics",
          "slug": "ee_342",
          "num": "EE 342",
          "description": "Probability, statistics, random variables, distributions, densities, expectations, limit theorems, and applications to electrical engineering.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_315"]
        },
        {
          "name": "Digital Systems and Computer Design",
          "shortName": "Digital Systems",
          "slug": "ee_361",
          "num": "EE 361",
          "description": "Design methodology, processor design, control design, memory organization, system organization.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_160", "ee_260"]
        },
        {
          "name": "Discrete Math for Engineers",
          "shortName": "Discrete Math",
          "slug": "ee_362",
          "num": "EE 362",
          "description": "Logic, sets, number theory, properties of functions, properties of relations, methods of proofs, recursion, counting, probability, trees, graphs, analysis of algorithms, finite state autonoma.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_160", "ee_260"]
        },
        {
          "name": "Computer Data Structures and Algorithms",
          "shortName": "Data Structures",
          "slug": "ee_367",
          "num": "EE 367",
          "description": "Introduction to computer programming algorithms with emphasis on advanced data structures, input-output routines, files, and interpreters.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_205", "ics_141"]
        },
        {
          "name": "Engineering Electromagnetics I",
          "shortName": "Electromagnetics I",
          "slug": "ee_371",
          "num": "EE 371",
          "description": "Transient and steady-state waves on transmission lines. Plane wave solutions of Maxwell's equations. Application of Maxwell's equations under static and time-varying conditions.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_213"]
        },
        {
          "name": "Junior Project",
          "shortName": "Junior Project",
          "slug": "ee_396",
          "num": "EE 396",
          "description": "Junior level individual or team project under EE faculty direction and guidance. The project provides design experience and develops practical skills. It may be a continuation of EE 296 or a new project.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_296"]
        },
        {
          "name": "Object-oriented Software Engineering",
          "shortName": "OO Software Engineering",
          "slug": "ee_467",
          "num": "EE 467",
          "description": "Introduction to advanced techniques for designing, implementing, and testing computer software with a particular focus on using object-oriented design, analysis, and programming to produce high-quality computer programs that solve non-trivial problems.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_367"]
        },
        {
          "name": "Introduction to Operating Systems",
          "shortName": "Operating Systems",
          "slug": "ee_468",
          "num": "EE 468",
          "description": "Computer system organization; multiprocessor systems, memory hierarchies, assemblers, compilers, operating systems, virtual machine, memory management, processor management; information management.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": ["ee_361", "ee_367"]
        },
        {
          "name": "Ethics in Electrical Engineering",
          "shortName": "Ethics",
          "slug": "ee_495",
          "num": "EE 495",
          "description": "Equip electrical engineers with the necessary background for ethical reasoning, as it pertains to technology, society, workplace issues, and the environment.",
          "creditHrs": 1,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Capstone Design Project",
          "shortName": "Capstone",
          "slug": "ee_496",
          "num": "EE 496",
          "description": "Significant project integrating the design content of previous courses and incorporating engineering standards and realistic constraints. Written report must document all aspects of the design process: reliability, safety, economics, ethics.",
          "creditHrs": 1,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Applied Mechanics I",
          "shortName": "Applied Mechanics I",
          "slug": "cee_270",
          "num": "CEE 270",
          "description": "Forces, resultants, and equilibrium; analysis of trusses, frames, and machines; centroids, moments of inertia; friction.",
          "creditHrs": 3,
          "interests": [],
          "prerequisites": []
        },
        {
          "name": "Thermodynamics",
          "shortName": "Thermodynamics",
          "slug": "me_311",
          "num": "ME 311",
          "description": "Basic laws, closed and open systems. Work, heat, concept of entropy. Properties of pure simple substances. Ideal gases. Introduction to power and refrigeration cycles.",
          "creditHrs": 4,
          "interests": [],
          "prerequisites": []
        }
      ]
    },
    {
      "name": "CourseInstanceCollection",
      "contents": [
        {
          "semester": "Fall-2014",
          "course": "ics_111",
          "note": "ICS 111",
          "verified": true,
          "creditHrs": 4,
          "grade": "A",
          "student": "abi"
        },
        {
          "semester": "Fall-2014",
          "course": "ics_141",
          "note": "ICS 141",
          "verified": true,
          "creditHrs": 3,
          "grade": "B+",
          "student": "abi"
        },
        {
          "semester": "Spring-2015",
          "course": "ics_211",
          "note": "ICS 211",
          "verified": true,
          "creditHrs": 4,
          "grade": "A",
          "student": "abi"
        },
        {
          "semester": "Spring-2015",
          "course": "ics_241",
          "note": "ICS 241",
          "verified": true,
          "creditHrs": 3,
          "grade": "A-",
          "student": "abi"
        },
        {
          "semester": "Fall-2015",
          "course": "ics_311",
          "note": "ICS 311",
          "verified": true,
          "creditHrs": 4,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Fall-2015",
          "course": "ics_314",
          "note": "ICS 314",
          "verified": true,
          "creditHrs": 4,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Spring-2016",
          "course": "ics_212",
          "note": "ICS 212",
          "verified": true,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Spring-2016",
          "course": "ics_321",
          "note": "ICS 321",
          "verified": true,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Fall-2016",
          "course": "ics_313",
          "note": "ICS 313",
          "verified": true,
          "creditHrs": 3,
          "grade": "A",
          "student": "abi"
        },
        {
          "semester": "Fall-2016",
          "course": "ics_331",
          "note": "ICS 331",
          "verified": true,
          "creditHrs": 3,
          "grade": "A",
          "student": "abi"
        },
        {
          "semester": "Spring-2017",
          "course": "ics_332",
          "note": "ICS 332",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Spring-2017",
          "course": "ics_464",
          "note": "ICS 464",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Fall-2017",
          "course": "ics_414",
          "note": "ICS 414",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Fall-2017",
          "course": "ics_415",
          "note": "ICS 415",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Spring-2018",
          "course": "ics_466",
          "note": "ICS 466",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        },
        {
          "semester": "Spring-2018",
          "course": "ics_432",
          "note": "ICS 432",
          "verified": false,
          "creditHrs": 3,
          "grade": "B",
          "student": "abi"
        }
      ]
    },
    {
      "name": "DesiredDegreeCollection",
      "contents": [
        {
          "name": "B.A. in Information and Computer Sciences",
          "shortName": "B.A. ICS",
          "slug": "ba-ics",
          "description": "The Bachelor of Arts (BA) degree allows you to combine computer science with another discipline. You might find the BA degree of interest if you are also interested in biology, entrepreneurship, game design, graphic arts, financial engineering, foreign languages, or other disciplines.\n\nIn general, the BA requires you to complete the ICS core curriculum, plus three ICS 400-level courses, plus four upper division courses in a related area of concentration.\n\nFor more details, see the [ICS BA Degree Page](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/ba-ics/)."
        },
        {
          "name": "B.S. in Computer Engineering",
          "shortName": "B.S. CE",
          "slug": "bs-ce",
          "description": "The Department of Information and Computer Sciences and the Department of Electrical Engineering offer a joint Bachelor of Science degree in Computer Engineering (BSCE).  The BSCE degree program provides you with the opportunity to learn about computer hardware and software, computer organization and architecture, computer security, software engineering, computer networks and Internet technology, embedded systems, computer-aided design, multi-core and parallel computing, wireless networks, and other topics."
        },
        {
          "name": "B.S. in Computer Science",
          "shortName": "B.S. CS",
          "slug": "bs-cs",
          "description": "The Bachelor of Science in Computer Science provides you with an in-depth foundation in software technology, science, and math. You may find this degree of interest if you want to pursue software development as a career path or go to graduate school in computer science. \n\nIn general, the BS requires you to complete the ICS core curriculum, plus (312 or 331), plus (313 or 361), 321, 332, plus five ICS 400-level courses.\n\nFor more details, see the [ICS BS Degree Page](http://www.ics.hawaii.edu/academics/undergraduate-degree-programs/bs-ics/)."
        }
      ]
    },
    {
      "name": "InterestCollection",
      "contents": [
        {
          "name": "Algorithms",
          "slug": "algorithms",
          "description": "Simply put, an algorithm is a self-contained step-by-step set of operations to be performed. More specifically, an algorithm is an effective method that can be expressed within a finite amount of space and time and in a well-defined formal language for calculating a function. Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing \"output\" and terminating at a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate random input. [Learn more here.](https://en.wikipedia.org/wiki/Algorithm)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Android",
          "slug": "android",
          "description": "Android is a mobile operating system (OS) currently developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. In addition to touchscreen devices, Google has further developed Android TV for televisions, Android Auto for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants of Android are also used on notebooks, game consoles, digital cameras, and other electronics. Android has the largest installed base of all operating systems of any kind. Android has been the best selling OS on tablets since 2013, and on smartphones it is dominant by any metric. [Learn more here.](https://www.android.com/)",
          "interestType": "technologies"
        },
        {
          "name": "Application Development",
          "slug": "application-development",
          "description": "Application development is the use of tools, technologies, procedures, and domain knowledge to create and maintain useful software and/or hardware systems.",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Artificial Intelligence",
          "slug": "artificial-intelligence",
          "description": "The use of hardware and software to create a flexible rational agent that perceives its environment and takes actions that maximize its chance of success at an arbitrary goal. Colloquially, the term \"artificial intelligence\" is likely to be applied when a machine uses cutting-edge techniques to competently perform or mimic functions that we intuitively associate with human minds, such as \"learning\" and \"problem solving\". [Learn more here.](https://en.wikipedia.org/wiki/Artificial_intelligence)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Assembler",
          "slug": "assembler",
          "description": "An assembler (or assembly) language is a low-level programming language for a computer in which there is a direct correspondence between the language and the architecture's machine code instructions. Each assembly language is specific to a particular computer architecture, in contrast to most high-level programming languages, which are generally portable across multiple architectures, but require interpreting or compiling. Assembly language may also be called symbolic machine code. Assembly language is converted into executable machine code by a utility program referred to as an assembler. The conversion process is referred to as assembly, or assembling the source code. [Learn more here.](https://en.wikipedia.org/wiki/Assembly_language)",
          "interestType": "technologies"
        },
        {
          "name": "Bioinformatics",
          "slug": "bioinformatics",
          "description": "Bioinformatics is an interdisciplinary field combining computer science, statistics, mathematics, and engineering that develops methods and software tools for understanding biological data. Common uses of bioinformatics include the identification of candidate genes and nucleotides (SNPs). Often, such identification is made with the aim of better understanding the genetic basis of disease, unique adaptations, desirable properties (esp. in agricultural species), or differences between populations. [Learn more here.](https://en.wikipedia.org/wiki/Bioinformatics)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Biology",
          "slug": "biology",
          "description": "A natural science concerned with the study of life and living organisms, including their structure, function, growth, evolution, distribution, and taxonomy. [Learn more here.](https://en.wikipedia.org/wiki/Biology)",
          "interestType": "non-cs-disciplines"
        },
        {
          "name": "C and C++",
          "slug": "c",
          "description": "C is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, and includes a static type system that prevents many unintended operations. By design, C provides constructs that map efficiently to typical machine instructions, and therefore it has found lasting use in applications that had formerly been coded in assembly language. C++ is an object-oriented extension of C. [Learn more here.](https://en.wikipedia.org/wiki/C_(programming_language))",
          "interestType": "technologies"
        },
        {
          "name": "C#",
          "slug": "c-sharp",
          "description": "C# is a general purpose, object-oriented programming language developed by Microsoft for .NET.  It is now also used extensively for game development in the Unity platform. [Learn more here.](https://en.wikipedia.org/wiki/C_Sharp_(programming_language))",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Civic Engagement",
          "slug": "civic-engagement",
          "description": "Civic engagement means working to make a difference in the civic life of our communities and developing the combination of knowledge, skills, values and motivation to make that difference. It means promoting the quality of life in a community, through both political and non-political processes. [Learn more here.](https://en.wikipedia.org/wiki/Civic_engagement)",
          "interestType": "non-cs-disciplines"
        },
        {
          "name": "Cognitive Science",
          "slug": "cognitive-science",
          "description": "Cognitive science is the interdisciplinary scientific study of the mind and its processes. It examines what cognition is, what it does and how it works. It includes research on intelligence and behaviour, especially focusing on how information is represented, processed, and transformed (in faculties such as perception, language, memory, attention, reasoning, and emotion) within nervous systems (humans or other animals) and machines (e.g. computers). Cognitive science includes multiple research disciplines, including psychology, artificial intelligence, philosophy, neuroscience, linguistics, and anthropology. [Learn more here.](https://en.wikipedia.org/wiki/Cognitive_science)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Computer Architecture",
          "slug": "computer-architecture",
          "description": "Computer architecture describes the functionality, organization, and implementation of computer systems. Some architectures define the capabilities and programming model of a computer but not a particular implementation. Others include instruction set design, micro-architecture design, logic design, and implementation. Computer architecture can focus on hardware or can include both hardware and software. [Learn more here.](https://en.wikipedia.org/wiki/Computer_architecture)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Computer Ethics",
          "slug": "computer-ethics",
          "description": "Computer Ethics is a part of practical philosophy which concerns with how computing professionals should make decisions regarding professional and social conduct. Computer ethics can inform issues such as copyright infringement, privacy, piracy, and social informatics. [Learn more here.](https://en.wikipedia.org/wiki/Computer_ethics)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Computer Graphics",
          "slug": "computer-graphics",
          "description": "Computer graphics are pictures and movies created using computers - usually referring to image data created by a computer specifically with help from specialized graphical hardware and software. Important topics in computer graphics include user interface design, sprite graphics, vector graphics, 3D modeling, shaders, GPU design, and computer vision. The overall methodology depends heavily on the sciences of geometry, optics, and physics. Computer graphic development has had a significant impact on many types of media and has revolutionized animation, movies, advertising, video games, and graphic design generally. [Learn more here.](https://en.wikipedia.org/wiki/Computer_graphics)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Computer Vision",
          "slug": "computer-vision",
          "description": "Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information that can be used to take action. A common theme is to duplicate the abilities of human vision by electronically perceiving and understanding an image. Subdomains of computer vision include scene reconstruction, event detection, video tracking, object recognition, object pose estimation, learning, indexing, motion estimation, and image restoration. [Learn more here.](https://en.wikipedia.org/wiki/Computer_vision)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "C++",
          "slug": "cplusplus",
          "description": "C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. It was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance, efficiency and flexibility of use as its design highlights. Many other programming languages have been influenced by C++, including C#, Java, and newer versions of C (after 1998). [Learn more here.](https://en.wikipedia.org/wiki/C_(programming_language))",
          "interestType": "technologies"
        },
        {
          "name": "Cryptography",
          "slug": "cryptography",
          "description": "Cryptography is the study of techniques for secure communication: constructing and analyzing protocols that prevent third parties or the public from reading private messages. Data confidentiality, data integrity, authentication, and non-repudiation are central to modern cryptography. Modern cryptography exists at the intersection of mathematics, computer science, and electrical engineering. Applications of cryptography include ATM cards, computer passwords, and electronic commerce. [Learn more here.](https://en.wikipedia.org/wiki/Cryptography)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Data Science",
          "slug": "data-science",
          "description": "Data science is an interdisciplinary field about processes and systems to extract knowledge or insights from data in various forms, either structured or unstructured. Data science employs techniques and theories drawn from many fields within the broad areas of mathematics, statistics, information science, and computer science, including signal processing, probability models, machine learning, statistical learning, data mining, database, data engineering, pattern recognition and learning, visualization, predictive analytics, uncertainty modeling, data warehousing, data compression, computer programming, artificial intelligence, and high performance computing. Methods that scale to big data are of particular interest in data science. Data science affects many domains, including machine translation, speech recognition, robotics, search engines, digital economy, but also the biological sciences, medical informatics, health care, social sciences and the humanities. [Learn more here.](https://en.wikipedia.org/wiki/Data_science)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Data Visualization",
          "slug": "data-visualization",
          "description": "Data visualization is both an art and a science. A primary goal of data visualization is to communicate information clearly and efficiently via statistical graphics, plots and information graphics. Numerical data may be encoded using dots, lines, or bars, to visually communicate a quantitative message. Effective visualization helps users analyze and reason about data and evidence. It makes complex data more accessible, understandable and usable. [Learn more here.](https://en.wikipedia.org/wiki/Data_visualization)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Databases",
          "slug": "databases",
          "description": "A database is an organized collection of data. It includes schemas, tables, queries, reports, views and other objects. The data are typically organized to model aspects of reality in a way that supports processes requiring information, such as modelling the availability of rooms in hotels in a way that supports finding a hotel with vacancies. Access to these data is usually provided by a \"database management system\" (DBMS) consisting of an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database (although restrictions may exist that limit access to particular data). The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information and provides ways to manage how that information is organized. [Learn more here.](https://en.wikipedia.org/wiki/Database)",
          "interestType": "cs-disciplines"
        },
        {
          "name": ".NET",
          "slug": "dotNet",
          "description": ".NET is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library called Framework Class Library that provides user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. [Learn more here.](https://www.microsoft.com/net/)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Entrepreneurship",
          "slug": "entrepreneurship",
          "description": "Entrepreneurship is the process of designing, launching and running a new business, such as a startup company offering a product, process or service. It requires the capacity and willingness to develop, organize, and manage a business venture along with any of its risks in order to make a profit. Entrepreneurs tend to be good at perceiving new business opportunities and they often exhibit positive biases in their perception (i.e., a bias towards finding new possibilities and seeing unmet market needs) and a pro-risk-taking attitude that makes them more likely to exploit the opportunity. [Learn more here.](https://en.wikipedia.org/wiki/Entrepreneurship)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Game Design",
          "slug": "game-design",
          "description": "Game design is the art of applying design and aesthetics to create a game to facilitate interaction between players for entertainment or for medical, educational, or experimental purposes. Game design creates goals, rules, and challenges to produce desirable interactions among its participants and, possibly, spectators. [Learn more here.](https://en.wikipedia.org/wiki/Game_design)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Graphic Design",
          "slug": "graphic-design",
          "description": "Graphic design is the process of visual communication and problem-solving using one or more of typography, photography and illustration. [Learn more here.](https://en.wikipedia.org/wiki/Graphic_design)",
          "interestType": "non-cs-disciplines"
        },
        {
          "name": "Hardware",
          "slug": "hardware",
          "description": "Computer hardware is the physical parts or components of a computer, such as the monitor, mouse, keyboard, computer data storage, hard disk drive (HDD), graphic cards, sound cards, memory (RAM), motherboard, and so on, all of which are tangible physical objects. By contrast, software is instructions that can be stored and run by hardware. [Learn more here.](https://en.wikipedia.org/wiki/Computer_hardware)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Human-Computer Interaction",
          "slug": "hci",
          "description": "Researchers in the field of HCI both observe the ways in which humans interact with computers and design technologies that let humans interact with computers in novel ways. Human-computer interaction is situated at the intersection of computer science, behavioral sciences, design, and media studies. [Learn more here.](https://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "High Performance Computing",
          "slug": "hpc",
          "description": "High Performance Computing concerns the hardware and software capabilities required for effective use of \"supercomputers\". HPC techniques are needed for computationally intensive tasks in various fields, including quantum mechanics, weather forecasting, climate research, oil and gas exploration, molecular modeling (computing the structures and properties of chemical compounds, biological macromolecules, polymers, and crystals), and physical simulations (such as simulations of the early moments of the universe, airplane and spacecraft aerodynamics, the detonation of nuclear weapons, and nuclear fusion). Throughout their history, they have been essential in the field of cryptanalysis. [Learn more here.](https://en.wikipedia.org/wiki/Supercomputer)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "iOS",
          "slug": "ios",
          "description": "iOS is a mobile operating system developed by Apple Inc. exclusively for its hardware. It is the OS for the iPhone, iPad, and iPod. As of January 2017, Apple's AppStore contains more than 2.2 million iOS applications. [Learn more here.](http://www.apple.com/ios/",
          "interestType": "cs-disciplines"
        },
        {
          "name": "IT Management",
          "slug": "it-management",
          "description": "IT management is the discipline whereby all of the information technology resources of a firm are managed in accordance with its needs and priorities. These resources may include tangible investments like computer hardware, software, data, networks and data centre facilities, as well as the staff who are hired to maintain them. Managing this responsibility within a company entails many of the basic management functions, like budgeting, staffing, change management, and organizing and controlling, along with other aspects that are unique to technology, like software design, network planning, tech support etc. [Learn more here.](https://en.wikipedia.org/wiki/Information_technology_management)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Java",
          "slug": "java",
          "description": "Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers \"write once, run anywhere\", meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers. [Learn more here.](https://en.wikipedia.org/wiki/Java_(programming_language))",
          "interestType": "technologies"
        },
        {
          "name": "Javascript",
          "slug": "javascript",
          "description": "JavaScript is a high-level, dynamic, untyped, and interpreted programming language. Despite some syntactic similarities, JavaScript and Java are otherwise unrelated and have very different semantics. Alongside HTML and CSS, Javascript is one of the three core technologies of World Wide Web content production; the majority of websites employ it and it is supported by all modern Web browsers without plug-ins. JavaScript is prototype-based with first-class functions, making it a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles. It has an API for working with text, arrays, dates and regular expressions, but does not include any I/O, such as networking, storage, or graphics facilities, relying for these upon the host environment in which it is embedded. [Learn more here.](https://en.wikipedia.org/wiki/JavaScript)",
          "interestType": "technologies"
        },
        {
          "name": "Linux",
          "slug": "linux",
          "description": "A Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Linux was originally developed as a free operating system for personal computers based on the Intel x86 architecture, but has since been ported to more computer hardware platforms than any other operating system. Because of the dominance of Android on smartphones, Linux has the largest installed base of all general-purpose operating systems. [Learn more here.](https://en.wikipedia.org/wiki/Linux)",
          "interestType": "technologies"
        },
        {
          "name": "Lisp",
          "slug": "lisp",
          "description": "Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older (by one year). Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler. [Learn more here.](https://en.wikipedia.org/wiki/Lisp_(programming_language))",
          "interestType": "technologies"
        },
        {
          "name": "Machine Learning",
          "slug": "machine-learning",
          "description": "Machine learning is a subfield of computer science that evolved from the study of pattern recognition and computational learning theory in artificial intelligence. Machine learning explores the study and construction of algorithms that can learn from and make predictions on data. Such algorithms operate by building a model from example inputs in order to make data-driven predictions or decisions expressed as outputs. Machine learning is employed in a range of computing tasks where designing and programming explicit algorithms is infeasible. Example applications include spam filtering, optical character recognition (OCR), search engines, and computer vision. [Learn more here.](https://en.wikipedia.org/wiki/Machine_learning)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Mobile Computing",
          "slug": "mobile",
          "description": "Mobile computing is human–computer interaction by which a computer is expected to be transported during normal usage, which allows for transmission of data, voice and video. Mobile computing involves mobile communication, mobile hardware, and mobile software. Communication issues include ad hoc networks and infrastructure networks as well as communication properties, protocols, data formats and concrete technologies. Hardware includes mobile devices or device components. Mobile software deals with the characteristics and requirements of mobile applications. [Learn more here.](https://en.wikipedia.org/wiki/Mobile_computing)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Networks",
          "slug": "networks",
          "description": "A computer network or data network is a telecommunications network which allows computers to exchange data. In computer networks, networked computing devices exchange data with each other using a data link. The connections between nodes are established using either cable media or wireless media. The best-known computer network is the Internet. [Learn more here.](https://en.wikipedia.org/wiki/Computer_network)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Operating Systems",
          "slug": "operating-systems",
          "description": "An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. Examples of popular desktop operating systems include Apple OS X, Linux and its variants, and Microsoft Windows. So-called mobile operating systems include Android and iOS. Other classes of operating systems, such as real-time (RTOS), also exist. [Learn more here.](https://en.wikipedia.org/wiki/Operating_system)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Parallel Programming",
          "slug": "parallel-programming",
          "description": "Parallel programming refers to a type of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved at the same time. In some cases parallelism is transparent to the programmer, such as in bit-level or instruction-level parallelism, but explicitly parallel algorithms, particularly those that use concurrency, are more difficult to write than sequential ones, because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. Communication and synchronization between the different subtasks are typically some of the greatest obstacles to getting good parallel program performance. [Learn more here.](https://en.wikipedia.org/wiki/Parallel_computing)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Perl",
          "slug": "perl",
          "description": "Perl is a family of high-level, general-purpose, interpreted, dynamic programming languages. Perl 5 is used for graphics programming, system administration, network programming, finance, bioinformatics, and other applications. It has been nicknamed \"the Swiss Army chainsaw of scripting languages\" because of its flexibility and power, and possibly also because of its \"ugliness\". In 1998, it was also referred to as the \"duct tape that holds the Internet together\", in reference to both its ubiquitous use as a glue language and its perceived inelegance. [Learn more here.](https://www.perl.org/)",
          "interestType": "technologies"
        },
        {
          "name": "Prolog",
          "slug": "prolog",
          "description": "Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of relations, represented as facts and rules. The language has been used for theorem proving, expert systems, as well as its original intended field of use, natural language processing. [Learn more here.](https://en.wikipedia.org/wiki/Prolog)",
          "interestType": "technologies"
        },
        {
          "name": "Psychology",
          "slug": "psychology",
          "description": "The scientific study of the human mind and its functions, especially those affecting behavior in a given context. [Learn more here.](https://en.wikipedia.org/wiki/Psychology)",
          "interestType": "non-cs-disciplines"
        },
        {
          "name": "Python",
          "slug": "python",
          "description": "Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library. [Learn more here.](https://www.python.org/)",
          "interestType": "technologies"
        },
        {
          "name": "R",
          "slug": "r",
          "description": "R is a programming language and software environment that is widely used among statisticians and data miners for developing statistical software and data analysis. R and its libraries implement a wide variety of statistical and graphical techniques, including linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering, and others. [Learn more here.](https://en.wikipedia.org/wiki/R_(programming_language))",
          "interestType": "technologies"
        },
        {
          "name": "Research",
          "slug": "research",
          "description": "Research comprises \"creative work undertaken on a systematic basis in order to increase the stock of knowledge, including knowledge of humans, culture and society, and the use of this stock of knowledge to devise new applications.\" [Learn more here.](https://en.wikipedia.org/wiki/Research)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Robotics",
          "slug": "robotics",
          "description": "Robotics is the branch of mechanical engineering, electrical engineering and computer science that deals with the design, construction, operation, and application of robots, as well as computer systems for their control, sensory feedback, and information processing. Robots can take the place of humans in dangerous environments or manufacturing processes, or resemble humans in appearance, behaviour, and or cognition. Many robots are inspired by nature contributing to the field of bio-inspired robotics. [Learn more here.](https://en.wikipedia.org/wiki/Robotics)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Ruby",
          "slug": "ruby",
          "description": "Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. It supports multiple programming paradigms, including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management. Ruby's creator, Yukihiro Matsumoto, has stated, \"I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language.\" [Learn more here.](http://www.ruby-lang.org/en/)",
          "interestType": "technologies"
        },
        {
          "name": "Security",
          "slug": "security",
          "description": "Computer security, also known as cybersecurity or IT security, is the protection of information systems from theft or damage to the hardware, the software, and to the information on them, as well as from disruption or misdirection of the services they provide. It includes controlling physical access to the hardware, as well as protecting against harm that may come via network access, data and code injection, and due to malpractice by operators, whether intentional, accidental, or due to them being tricked into deviating from secure procedures. [Learn more here.](https://en.wikipedia.org/wiki/Computer_security)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Software Engineering",
          "slug": "software-engineering",
          "description": "The systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software. The discipline of software engineering was created to address poor quality of software, get projects exceeding time and budget under control, and ensure that software is built systematically, rigorously, measurably, on time, on budget, and within specification. In 2012, Software Engineering was ranked as the best job in the United States by CareerCast.com. [Learn more here.](https://en.wikipedia.org/wiki/Software_engineering)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "SQL",
          "slug": "sql",
          "description": "SQL (Structured Query Language) is a special-purpose programming language designed for managing data held in a relational database management system , or for stream processing in a relational data stream management system. Originally based upon relational algebra and tuple relational calculus, SQL consists of a data definition language, data manipulation language, and a data control language. The scope of SQL includes data insert, query, update and delete, schema creation and modification, and data access control. [Learn more here.](https://en.wikipedia.org/wiki/SQL)",
          "interestType": "technologies"
        },
        {
          "name": "Sustainability",
          "slug": "sustainability",
          "description": "In ecology, sustainability (from sustain and ability) is the property of biological systems to remain diverse and productive indefinitely. Long-lived and healthy wetlands and forests are examples of sustainable biological systems. In more general terms, sustainability is the endurance of systems and processes. The organizing principle for sustainability is sustainable development, which includes the four interconnected domains: ecology, economics, politics and culture. Sustainability science is the study of sustainable development and environmental science. [Learn more here.](https://en.wikipedia.org/wiki/Sustainability)",
          "interestType": "non-cs-disciplines"
        },
        {
          "name": "Teaching",
          "slug": "teaching",
          "description": "Teaching is the process of facilitating learning, or the acquisition of knowledge, skills, values, beliefs, and habits. Educational methods include storytelling, discussion, teaching, training, and directed research. [Learn more here.](https://en.wikipedia.org/wiki/Education)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Theory of computation",
          "slug": "theory-of-computation",
          "description": "Theory of computation deals with how efficiently problems can be solved on a model of computation, using an algorithm. The field is divided into three major branches: automata theory and language, computability theory, and computational complexity theory, which are linked by the question: \"What are the fundamental capabilities and limitations of computers?\". [Learn more here.](https://en.wikipedia.org/wiki/Theory_of_computation)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Unity",
          "slug": "unity",
          "description": "Unity is a cross-platform game engine developed by Unity Technologies and used to develop video games for PC, consoles, mobile devices and websites. First announced only for OS X, at Apple's Worldwide Developers Conference in 2005, it has since been extended to target 27 platforms. Nintendo provides free licenses of Unity 5 to all licensed Nintendo Developers along with their software development kits (SDKs) for the Wii U and Nintendo 3DS Family. [Learn more here.](https://unity3d.com/)",
          "interestType": "technologies"
        },
        {
          "name": "Virtual Reality",
          "slug": "virtual-reality",
          "description": "Virtual reality (VR) typically refers to computer technologies that use software to generate realistic images, sounds and other sensations that replicate a real environment (or create an imaginary setting), and simulate a user's physical presence in this environment. VR has been defined as \"...a realistic and immersive simulation of a three-dimensional environment, created using interactive software and hardware, and experienced or controlled by movement of the body\" or as an \"immersive, interactive experience generated by a computer\". [Learn more here.](https://en.wikipedia.org/wiki/Virtual_reality)",
          "interestType": "cs-disciplines"
        },
        {
          "name": "Web Development",
          "slug": "web-development",
          "description": "In computing, a web application or web app is a client–server software application in which the client (or user interface) runs in a web browser. Common web applications include webmail, online retail sales, online auctions, wikis, instant messaging services and many other functions. [Learn more here.](https://en.wikipedia.org/wiki/Web_application)",
          "interestType": "cs-disciplines"
        }
      ]
    },
    {
      "name": "InterestTypeCollection",
      "contents": [
        {
          "name": "CS Disciplines",
          "slug": "cs-disciplines",
          "description": "Computer science and engineering areas of interest, not including languages, tools, technologies."
        },
        {
          "name": "Non-CS Disciplines",
          "slug": "non-cs-disciplines",
          "description": "Areas of interest apart from computer science and engineering."
        },
        {
          "name": "technologies",
          "slug": "technologies",
          "description": "Computer science and engineering languages, tools, and technologies"
        }
      ]
    },
    {
      "name": "UserCollection",
      "contents": [
        {
          "firstName": "Abigail",
          "lastName": "Kealoha",
          "slug": "abi",
          "email": "abi@hawaii.edu",
          "password": "foo",
          "role": "STUDENT",
          "uhID": "1234-5678",
          "picture": "/images/mockup/abi.jpg",
          "website": "http://abi.github.io",
          "interests": [
            "application-development",
            "research"
          ],
          "careerGoals": [
            "data-scientist",
            "software-developer"
          ],
          "desiredDegree": "bs-cs",
          "level": 5,
          "hiddenCourses": [],
          "hiddenOpportunities": []
        }
      ]
    },
    {
      "name": "ValidUserAccountCollection",
      "contents": [
        {
          "username": "abi"
        }
      ]
    }
  ]
}