diff --git a/components/About.tsx b/components/About.tsx index 2417e47..7817bb4 100644 --- a/components/About.tsx +++ b/components/About.tsx @@ -14,28 +14,30 @@ export function About() {

Computer Science

- Offered from the Faculty of Mathematics as most commonly a co-op - program, students usually attend 8 school and 6 co-op terms in their - degree. However, CS is very flexible, as many students historically - have dropped co-ops, taken terms off, and messed with their schedule - to fit their desires. + Computer Science (CS) is commonly offered by the Faculty of + Mathematics as a co-op program, with students usually attending 8 + school and 6 co-op terms in their degree. However, CS is more + flexible than the other two programs because of the ability to + choose from a wider range and number of electives, to take terms + off, and to change their academic schedules to fit their needs.

Computing and Financial Management

Computing and Financial Management (CFM) combines the core CS courses with electives from areas such as accounting, economics, and - financial management. This is a joint offer from the Faculty of - Mathematics and the School of Accounting and Finance, and has the - same schedule (and flexibility) as CS. + financial management. This is a joint offering by the Faculty of + Mathematics and the School of Accounting and Finance. The program is + offered only as a co-op program with 6 co-op terms. The program is + offered only as a co-op program with 6 co-op terms.

CS/BBA

Joint with Wilfrid Laurier University, the Business Administration and Computer Science Double Degree (CS/BBA) is an exclusive offering - that allows students to get experience in CS as well as many + that allows students to gain experience in CS as well as many subfields of business. There are 10 school terms and either 4 or 5 - co-op terms in the usual schedule, so it’s a bit more work than CS - or CFM. + co-op terms in the usual schedule, so it’s a longer degree with more + academic terms than CS or CFM.

diff --git a/components/BlankLink.tsx b/components/BlankLink.tsx new file mode 100644 index 0000000..f5cef9e --- /dev/null +++ b/components/BlankLink.tsx @@ -0,0 +1,15 @@ +import React from "react"; + +export const BodyLink = ({ + targetBlank = true, + children, + href, +}: { + href: string; + targetBlank?: boolean; + children: React.ReactNode; +}) => ( + + {children} + +); diff --git a/components/ComponentWrapper.tsx b/components/ComponentWrapper.tsx index dcb5a4b..6d72a34 100644 --- a/components/ComponentWrapper.tsx +++ b/components/ComponentWrapper.tsx @@ -7,7 +7,7 @@ type AlignOption = "left" | "center" | "right"; type ComponentWrapperProps = { children: React.ReactNode; heading: string; - bodyText?: string; + bodyText?: string | React.ReactNode; align?: AlignOption; noBackground?: boolean; }; @@ -35,7 +35,13 @@ export function ComponentWrapper({ >

{heading}

- {bodyText ?

{bodyText}

: null} + {bodyText ? ( + typeof bodyText === "string" ? ( +

{bodyText}

+ ) : ( + bodyText + ) + ) : null}
) => { const yTotals = data.reduce((allTotals, currCategory) => { const yTotal = keys.reduce((categoryTotal, k) => { @@ -230,8 +242,15 @@ export const StackedBarGraphVertical = withTooltip< left={tooltipLeft} header={tooltipData.key} > -

{tooltipData.bar.data[tooltipData.key]}

-

{getCategory(tooltipData.bar.data)}

+ {hideDataValueInTooltip ? null : ( +

+ {tooltipTopLabel} {tooltipData.bar.data[tooltipData.key]} + {displayPercentage ? "%" : ""} +

+ )} +

+ {tooltipBottomLabel} {getCategory(tooltipData.bar.data)} +

) : null}
@@ -261,6 +280,10 @@ export const StackedBarGraphHorizontal = withTooltip< tooltipData, hideTooltip, showTooltip, + hideDataValueInTooltip, + tooltipBottomLabel = "", + tooltipTopLabel = "", + displayPercentage, }: StackedBarProps & WithTooltipProvidedProps) => { const yTotals = data.reduce((allTotals, currCategory) => { const yTotal = keys.reduce((categoryTotal, k) => { @@ -409,8 +432,15 @@ export const StackedBarGraphHorizontal = withTooltip< left={tooltipLeft} header={tooltipData.key} > -

{tooltipData.bar.data[tooltipData.key]}

-

{getCategory(tooltipData.bar.data)}

+ {hideDataValueInTooltip ? null : ( +

+ {tooltipTopLabel} {tooltipData.bar.data[tooltipData.key]} + {displayPercentage ? "%" : ""} +

+ )} +

+ {tooltipBottomLabel} {getCategory(tooltipData.bar.data)} +

) : null} diff --git a/data/academics.ts b/data/academics.ts index 514493a..4b221a7 100644 --- a/data/academics.ts +++ b/data/academics.ts @@ -883,6 +883,12 @@ export const A12 = [ ]; export const A12i = [ + { + category: "CS145", + "1-4": 1, + "5-7": 10, + "8-10": 23, + }, { category: "CS146", "1-4": 1, @@ -1068,7 +1074,7 @@ export const A14 = [ }, { text: "Carmen Bruni", - value: 10, + value: 9, }, { text: "Michael Wallace", @@ -1242,101 +1248,101 @@ export const A15 = [ export const A16 = [ { category: "1A", - "0-30": 0.04, + "0-30": 4, "30-60": 0, - "60-70": 0.04, - "70-80": 0.152, - "80-90": 0.495, - "90-95": 0.192, - "95-100": 0.081, + "60-70": 4, + "70-80": 15.2, + "80-90": 49.5, + "90-95": 19.2, + "95-100": 8.1, }, { category: "1B", - "0-30": 0.04, - "30-60": 0.01, - "60-70": 0.091, - "70-80": 0.232, - "80-90": 0.434, - "90-95": 0.121, - "95-100": 0.071, + "0-30": 4, + "30-60": 1, + "60-70": 9.1, + "70-80": 23.2, + "80-90": 43.4, + "90-95": 12.1, + "95-100": 7.1, }, { category: "2A", - "0-30": 0.0208, - "30-60": 0.0312, - "60-70": 0.052, - "70-80": 0.2604, - "80-90": 0.4479, - "90-95": 0.1354, - "95-100": 0.0417, + "0-30": 2.08, + "30-60": 3.12, + "60-70": 5.2, + "70-80": 26.04, + "80-90": 44.79, + "90-95": 13.54, + "95-100": 4.17, }, { category: "2B", - "0-30": 0.051, + "0-30": 5.1, "30-60": 0, - "60-70": 0.112, - "70-80": 0.296, - "80-90": 0.378, - "90-95": 0.133, - "95-100": 0.031, + "60-70": 11.2, + "70-80": 29.6, + "80-90": 37.8, + "90-95": 13.3, + "95-100": 3.1, }, { category: "3A", - "0-30": 0.032, - "30-60": 0.033, - "60-70": 0.032, - "70-80": 0.149, - "80-90": 0.447, - "90-95": 0.245, - "95-100": 0.064, + "0-30": 3.2, + "30-60": 3.3, + "60-70": 3.2, + "70-80": 14.9, + "80-90": 44.7, + "90-95": 24.5, + "95-100": 6.4, }, { category: "3B", - "0-30": 0.033, - "30-60": 0.033, - "60-70": 0.043, - "70-80": 0.108, - "80-90": 0.355, - "90-95": 0.312, - "95-100": 0.118, + "0-30": 3.3, + "30-60": 3.3, + "60-70": 4.3, + "70-80": 10.8, + "80-90": 35.5, + "90-95": 31.2, + "95-100": 11.8, }, { category: "4A", - "0-30": 0.011, - "30-60": 0.032, - "60-70": 0.053, - "70-80": 0.129, - "80-90": 0.355, - "90-95": 0.312, - "95-100": 0.108, + "0-30": 1.1, + "30-60": 3.2, + "60-70": 5.3, + "70-80": 12.9, + "80-90": 35.5, + "90-95": 31.2, + "95-100": 10.8, }, { category: "4B", - "0-30": 0.011, - "30-60": 0.033, - "60-70": 0.023, - "70-80": 0.149, - "80-90": 0.241, - "90-95": 0.138, - "95-100": 0.092, + "0-30": 1.1, + "30-60": 3.3, + "60-70": 2.3, + "70-80": 14.9, + "80-90": 24.1, + "90-95": 13.8, + "95-100": 9.2, }, { category: "5A", - "0-30": 0.02, - "30-60": 0.04, - "60-70": 0.02, - "70-80": 0.039, - "80-90": 0.137, + "0-30": 2, + "30-60": 4, + "60-70": 2, + "70-80": 3.9, + "80-90": 13.7, "90-95": 0, - "95-100": 0.059, + "95-100": 5.9, }, { category: "CAV", "0-30": 0, "30-60": 0, - "60-70": 0.03774, - "70-80": 0.28302, - "80-90": 0.67924, + "60-70": 3.774, + "70-80": 28.302, + "80-90": 67.924, "90-95": 0, "95-100": 0, }, @@ -1453,7 +1459,6 @@ export const A18ii = [ "To make getting a visa easier", "Interesting Courses", "Took a bunch of courses on the option's list originally, then realized I could just fill in the rest of the courses", - "asgfsd", "Interest in the field after CO250", "Interest", "Just to add a specialization", @@ -1478,7 +1483,7 @@ export const A19 = [ export const A19i = [ { category: "0", - value: 15, + value: 56, }, { category: "1", diff --git a/data/coop.ts b/data/coop.ts index 11f1741..6e6ddad 100644 --- a/data/coop.ts +++ b/data/coop.ts @@ -10,17 +10,29 @@ export const C1 = [ ]; export const C2 = [ + { + text: "Pacific NW USA", + value: 3, + }, + { + text: "West Coast CAN", + value: 12, + }, + { + text: "Remote", + value: 2, + }, + { + text: "East Coast Canada", + value: 1, + }, { text: "Toronto", - value: 32, + value: 34, }, { text: "California", - value: 26, - }, - { - text: "West CA", - value: 12, + value: 25, }, { text: "East USA", @@ -28,7 +40,15 @@ export const C2 = [ }, { text: "Waterloo", - value: 9, + value: 10, + }, + { + text: "Chicago", + value: 1, + }, + { + text: "Tokyo", + value: 1, }, ]; @@ -478,7 +498,7 @@ export const C7v = [ }, ]; -export const C7viKey = ["5", "4", "3", "2", "1"]; +export const C7viKey = ["1", "2", "3", "4", "5"]; export const C7vi = [ { diff --git a/data/demographics.ts b/data/demographics.ts index f0f1160..fe8d524 100644 --- a/data/demographics.ts +++ b/data/demographics.ts @@ -199,7 +199,7 @@ export const D7 = [ }, { text: "GTA / Toronto", - value: 1, + value: 58, }, { text: "United Arab Emirates", @@ -311,16 +311,12 @@ export const D10 = [ export const D11 = [ { category: "No religious affiliation", - value: 79, + value: 80, }, { category: "Christianity", value: 16, }, - { - category: "Atheist", - value: 1, - }, { category: "Judaism", value: 3, diff --git a/data/intimacy-and-drugs.ts b/data/intimacy-and-drugs.ts index 8c2693e..b720ff6 100644 --- a/data/intimacy-and-drugs.ts +++ b/data/intimacy-and-drugs.ts @@ -328,7 +328,6 @@ export const I9 = [ "I took a course on dating but am failing the course", "they're a part-time job", "Relationships take a lot of work, but they're worth it with the right people.", - "Umm", "It takes a lot of work and patience", "My understanding of dating and relationships got a lot more detailed. The reality takes a lot more work and emotional maturity.", "I stopped simping", @@ -352,7 +351,6 @@ export const I9 = [ "Completely", "I asked a girl out for the first time! I feel like I know more about what I don't know when it comes to relationships and dating, and feel more confident than before about social situations in general.", "As someone who's been rejected and rejected, it's fine to just be single", - "dfgdfgdfg", "People change", "More casual now polyamorous.", "How others treat me, how I treat others.", @@ -407,12 +405,10 @@ export const I10 = [ "It's tough", "Confidence comes not from knowing whether you'll succeed, but from knowing you'll be okay no matter the outcome. Stay true to yourself, and find someone such that you can make each other better.", "5 years later and still don't have any to give sorry xD", - "rewgdhdhd", "without sexual more love no cheat", "I hope you'll come earlier", "It’ll happen when it does :)", "Reciprocity", - "just talk to girls irl sometime holy fucking shit", "Good luck :p", "Improve yourself, get self esteem, and put yourself out there! It's really not this big, super hard thing to attain for the average person. Don't get into a bad one though", "am unqualified, idk", diff --git a/data/mental-health.ts b/data/mental-health.ts index 1628d3f..3ea618d 100644 --- a/data/mental-health.ts +++ b/data/mental-health.ts @@ -196,7 +196,6 @@ export const H5i = [ "It is not as accessible as you would hope, and it is hard to continue to see your doctor", "Good", "not half bad.", - "Dogshit. long wait times. I was low priority since I was 'well functioning'", "No experience ", "It was just alright.", "Meh", diff --git a/data/post-grad.ts b/data/post-grad.ts index e320a51..78ca0d3 100644 --- a/data/post-grad.ts +++ b/data/post-grad.ts @@ -190,35 +190,39 @@ export const P8 = [ }, { text: "Finance", - value: 1, + value: 8, }, { text: "Cloud Computing", - value: 5, - }, - { - text: "Artificial Intelligence", - value: 3, - }, - { - text: "Robotics", - value: 1, - }, - { - text: "Data Science", value: 6, }, { - text: "Research", + text: "Artificial Intelligence", + value: 5, + }, + { + text: "Operating System", + value: 2, + }, + { + text: "Robotics", value: 3, }, { - text: "Security", - value: 1, + text: "Data Science", + value: 10, + }, + { + text: "Research", + value: 6, + }, + { + text: "Cybersecurity", + value: 2, }, { text: "Hardware", - value: 2, + value: 4, }, { text: "Mobile Development", @@ -228,4 +232,12 @@ export const P8 = [ text: "Computer Networking", value: 2, }, + { + text: "Programming Languages", + value: 5, + }, + { + text: "Compilers", + value: 1, + }, ]; diff --git a/pages/_app.css b/pages/_app.css index 05f4e6a..5c0a9ab 100644 --- a/pages/_app.css +++ b/pages/_app.css @@ -10,6 +10,7 @@ body { --lighter-pink: #FFE7E7; --orange: #F5917B; --light-orange: #FFC4A9; + --lighter-orange: #ffddcd; --navy: #252D41; --light-navy: #354265; --dark-navy: #141D34; @@ -36,8 +37,11 @@ body { --dark--primary-accent: var(--pink); --dark--primary-accent-light: var(--light-pink); --dark--primary-accent-lighter: var(--lighter-pink); + --dark--primary-accent-dark: #dc538e; + --dark--primary-accent-darker: #c8417c; --dark--secondary-accent: var(--orange); --dark--secondary-accent-light: var(--light-orange); + --dark--secondary-accent-lighter: var(--lighter-orange); --dark--translucent-accent: rgba(239, 131, 157, 0.75); --dark--primary-heading: #FFC48D; --dark--secondary-heading: var(--pink); @@ -54,8 +58,11 @@ body { --primary-accent: var(--dark--primary-accent); --primary-accent-light: var(--dark--primary-accent-light); --primary-accent-lighter: var(--dark--primary-accent-lighter); + --primary-accent-dark: var(--dark--primary-accent-dark); + --primary-accent-darker: var(--dark--primary-accent-darker); --secondary-accent: var(--dark--secondary-accent); --secondary-accent-light: var(--dark--secondary-accent-light); + --secondary-accent-lighter: var(--dark--secondary-accent-lighter); --translucent-accent: var(--dark--translucent-accent); --primary-heading: var(--dark--primary-heading); --secondary-heading: var(--dark--secondary-heading); diff --git a/pages/academics.tsx b/pages/academics.tsx index d81dc40..40d6c57 100644 --- a/pages/academics.tsx +++ b/pages/academics.tsx @@ -275,12 +275,17 @@ export default function Academics() { height={400} keys={A16Keys} colorRange={[ - Color.primaryAccent, - Color.secondaryAccentLight, Color.primaryAccentLighter, + Color.secondaryAccentLighter, + Color.secondaryAccentLight, + Color.primaryAccentLight, + Color.primaryAccent, + Color.primaryAccentDark, + Color.primaryAccentDarker, ]} data={A16} margin={barGraphMargin} + displayPercentage={true} /> diff --git a/pages/contributors.tsx b/pages/contributors.tsx index 71c5076..b529c7d 100644 --- a/pages/contributors.tsx +++ b/pages/contributors.tsx @@ -27,9 +27,15 @@ export function ContributorGroup({ group }: ContributorGroupProps) { .map((d, idx) => { return (
  • - - {d.name} - + {d.link ? ( + + {d.name} + + ) : ( + e.preventDefault()}> + {d.name} + + )}
  • ); })} diff --git a/pages/coop.tsx b/pages/coop.tsx index 84de69b..d6a6a07 100644 --- a/pages/coop.tsx +++ b/pages/coop.tsx @@ -216,7 +216,7 @@ export default function CoopPage() { {/* C7v */}
    @@ -252,10 +254,12 @@ export default function CoopPage() { Color.secondaryAccentLight, Color.primaryAccentLighter, Color.secondaryAccent, - Color.primaryText, + Color.primaryHeading, ]} data={C7vi} margin={barGraphMargin} + tooltipBottomLabel="Coop Term: " + displayPercentage /> @@ -296,6 +300,8 @@ export default function CoopPage() { colorRange={[Color.primaryAccent, Color.secondaryAccentLight]} data={C7viii} margin={barGraphMargin} + displayPercentage={true} + tooltipBottomLabel="Coop term: " /> diff --git a/pages/demographics.tsx b/pages/demographics.tsx index 339ad9e..3781bb2 100644 --- a/pages/demographics.tsx +++ b/pages/demographics.tsx @@ -25,6 +25,7 @@ import { useWindowDimensions } from "utils/getWindowDimensions"; import { useIsMobile } from "utils/isMobile"; import { BarGraphVertical, BarGraphHorizontal } from "@/components/BarGraph"; +import { BodyLink } from "@/components/BlankLink"; import { BottomNav } from "@/components/BottomNav"; import { ComponentWrapper } from "@/components/ComponentWrapper"; import { Header } from "@/components/Header"; @@ -50,7 +51,7 @@ export default function Demographics() {
    @@ -59,7 +60,26 @@ export default function Demographics() { + About 33% of students identified as women or gender non-conforming + (women+). This statistic has been steadily increasing throughout the + years, as seen at{" "} + + this link + + . According to the same source, in 2017/2018 (when many 2022 + graduates were admitted), around 24% of CS admits, 34% of CFM + admits, and 41% of CS/BBA admits were women+. Underrepresented + gender identities is a popular topic in the tech community, and so + it is promising that a more diverse range of people are becoming + interested in CS! Take a look at clubs such as + WiCS and + Tech+ + that address these issues and work to provide an inclusive + environment in UW's tech scene. +

    + } align="right" noBackground > @@ -80,7 +100,17 @@ export default function Demographics() { + The largest racial group was East Asian at about 64%, followed by + White at 17%, and South Asian at 12%. Note that certain respondents + have chosen two or more of the listed categories. We have counted + each of them as a separate entry rather than a category itself. + Check out clubs such as + Tech+ , + which supports ethnic minorities in tech! +

    + } align="left" noBackground > @@ -89,7 +119,7 @@ export default function Demographics() { + Over 27% of respondents identified as LGBTQ+. UW has plenty of + groups that support the LGBTQ+ community that can be found + + {" "} + here + + . Clubs such as{" "} + Tech+ + and oSTEM + support queer and trans students in tech and STEM environments! +

    + } align="right" noBackground > @@ -113,7 +156,7 @@ export default function Demographics() { @@ -136,7 +179,19 @@ export default function Demographics() { + Most families made more than the average family income in Canada in + 2020 ( + + $104,350 + + ) The range of 51k to 200k was the most common among families. To + sustain a first-year tuition fee that can hover between $8,000 to + $55,000, it would make sense for many families to rely on other + sources of financial support. +

    + } align="right" > @@ -161,7 +216,7 @@ export default function Demographics() {

    Preface

    - The CS Class Profile consists of data relevant to CS, CFM, and - CS/BBA students. These were combined with the knowledge that - students in these programs tend to have similar experiences, as many - of the same CS required courses are shared. In the standard co-op - offering, CS and CFM take 4 years and 2 semesters to complete, while - CS/BBA can take up to a full 5 years. + The 2022 CS Class Profile consists of data relevant to CS, CFM, and + CS/BBA students completing their undergrad in 2022. These were + combined with the knowledge that students in these programs tend to + have similar experiences, as they share many core courses. In the + standard co-op offering, CS and CFM take 4 years and 2 terms to + complete, while CS/BBA can take up to a full 5 years.

    - Computer Science (and the others) is known to be a very prestigious - program, and is very well known in Canada as well as across the - world. For prospective students or anyone who is interested in - learning more about what the students are like, this CS Class - Profile will attempt to answer some of your questions, and you may - even learn a thing or two you didn’t expect! + The University of Waterloo’s computer science programs are known to + be prestigious and well-known in Canada as well as across the world. + As of 2022, it ties for first place in Maclean’s university + rankings, and 25th internationally as a subject by the QS World + University rankings. For prospective students or anyone who is + interested in learning more about what the students are like, this + CS Class Profile will attempt to answer some of your questions, and + you may even learn a thing or two you didn’t expect!

    - The survey questions were approved by the Institutional Analysis & - Planning, where all University of Waterloo stakeholders that are - interested in conducting a non-academic research survey involving a - large portion of the UWaterloo population are reviewed and approved. - The entirety of the survey creation, data processing, and the - creation of this website was done by the{" "} + According to the{" "} - + + Institutional Analysis & Planning (IAP) + + + , there were a 613 graduates from CS, CFM, and CS/BBA, leading to a + overall survey turnout of 17%. By program, this is a 17% turnout + from CS graduates, 22% turnout from CS/BBA graduates, and 14% + turnout from CFM graduates. +

    +

    + The survey questions were approved by the IAP, where all University + of Waterloo stakeholders that are interested in conducting a + non-academic research survey involving a large portion of the UW + population are reviewed and approved. The entirety of the survey + creation and data processing was done by the{" "} + + UW Computer Science Club - - {" "} - so please check us out if you enjoy what you see! All of the graphs, - and designs on this website were built by us! + + + , so please check us out if you enjoy what you see!

    diff --git a/utils/Color.ts b/utils/Color.ts index d3adb28..8b6b647 100644 --- a/utils/Color.ts +++ b/utils/Color.ts @@ -5,8 +5,11 @@ const colorNames = [ "primaryAccent", "primaryAccentLight", "primaryAccentLighter", + "primaryAccentDark", + "primaryAccentDarker", "secondaryAccent", "secondaryAccentLight", + "secondaryAccentLighter", "primaryHeading", "secondaryHeading", "link", @@ -26,8 +29,11 @@ export const Color: { [key in ColorName]: string } = { primaryAccent: "var(--primary-accent)", primaryAccentLight: "var(--primary-accent-light)", primaryAccentLighter: "var(--primary-accent-lighter)", + primaryAccentDark: "var(--primary-accent-dark)", + primaryAccentDarker: "var(--primary-accent-darker)", secondaryAccent: "var(--secondary-accent)", secondaryAccentLight: "var(--secondary-accent-light)", + secondaryAccentLighter: "var(--secondary-accent-lighter)", primaryHeading: "var(--primary-heading)", secondaryHeading: "var(--secondary-heading)", link: "var(--link)",