Closing the gender gap in technology, one girl at a time.
WHO WE ARE: A close community of girls at Stuyvesant High School passionate about computer science. OUR MISSION: Provide a supportive and fun environment to learn computer science and help close the gender gap in computer science.
OUR VALUES:
đ« Skill-building: We want to expose members to a wide variety of beginner friendly topics in computer science and teach them about the endless paths one can take with computer science. Our weekly meetings, taught by student mentors, cover lessons on topics ranging from web development to data science to cybersecurity. đŁ Presenting opportunities: Weekly lessons aren't the only thing club members experience! We are committed to organizing events with members of the STEM community, from guest speakers to field trips. đ Community: Girls Who Code @ Stuy isn't just a clubâit's a community for girls to learn, bond and be inspired by each other. We're here to support everyone interested in trying out computer science. We will facilitate this by placing members into small mentoring groups with mentors to bond and receive whatever help they might need.Thank you all for attending our interest meeting! We started off by introducing the presidents, directors, mascots, and our faculty advisor. We went over GWC's mission, how our meetings function, a general overview of our curriculum, and the various fun events we have in store! We introduced board positions (student mentors and secretaries) and gave a quick look at their responsibilities. We ended with a fun game of hangman and kahoot. We're so excited to meet you all and hope to see you at our next meeting (and first lesson)!
Important links:
We had our very first lesson which was about the very basics of HTML. We learned that HTML stands for Hypertext Markup Language and that it is used for creating the basic structure of the website such as the text, images, buttons, links, etc. With that being said, the members learned how to create these different elements using HTML tags, which are keywords that the web browser uses to format the website. The members then made a website about their partner. Finally, we all had a gallery walk to see all the amazing websites that were created!!
Important links:
We had our second lesson, diving deeper into HTML. After a brief review of the lesson done last week, our presenters, Eileen and Anna, taught everyone how to make tables, buttons, and how to add HTML pages into one page! Members also had the opportunity to learn more about their partners using what they learned to create a website about one another. Finally, we all had a gallery walk to see all the amazing websites that were created!!
Important links:
We finally had a lesson after two weeks off! Today we learned about CSS, cascading style sheets, which style our websites by adding in borders, colors, and layouting the elements in the page. Our two presenters, Amaryllis and Shirley, taught everyone about how to set up an external CSS page, the CSS syntax, types of selectors, how to use flexbox, how to position elements, and how to make an animation!! In the end, everyone had a gallery walk to see each otherâs wonderful websites!! It was quite a lot of information in one lesson and if you want to learn more, make sure to click on the CSS 0 slides to learn more and try out the exercises!!
Important links:
We had our first project workday!! First the members had a brief review of HTML and CSS and learned a bit more about CSS like how to add different fonts and how to use gradient backgrounds! Afterwards, the members were grouped up and designed their own websites together. There were so many cool ideas: Greek mythology, smoothie recipes, favorite food, etc! The websites themselves looked amazing and we canât wait to see the final product!!!
Important links:
During this weekâs meeting, we began learning about JavaScript, a coding language that works with CSS and HTML to create interactive effects like buttons, popups, or animations. We began by learning how to link a javascript file to an HTML file and wrote our first program using console.log() to print. We proceeded to learn about pop-ups, variables (which are used to store data), and operations. Then, we dove into integrating JavaScript with HTML, and learned how to use onclick, getElementById, .innerHTML and onMouseOver to allow our webpage to respond to user input. Using our new knowledge, we added to our websites and had a gallery walk!
Important links:
This week, we continued our introduction to JavaScript and briefly reviewed how to integrate JavaScript files into HTML. We learned about arrays, a data type that contains multiple values. Additionally, we learned how to write loops and functions, find the value at a certain location in an array, and add and remove values from the array. Toward the end of the meeting, we worked with a partner to create a website of delicious winter recipes or a simple grade book to track each studentâs grades, averages, etc.
Important links:
We started our first lesson of the 2025 year with an introduction to P5.JS. We learned that it is a javascript library, meaning we can use its premade functions in our code. We started using functions preload(), which is only called one, setup(), that defines the background, and draw() which loops continuously. We also learned about RBG color values that allow us to use color in our backgrounds! Additionally, we had the chance to create shapes with special properties, such as stroke and the fill values. The second part of the lesson focused on interactivity with the mouse using keyPresses() and mousePressed() which are called every time a key/mouse is pressed. Their counterparts - keyIsPressed and MouseIsPressed- also made an appearance. After making our own artistic masterpieces, we had a wonderful gallery walk and saw everyoneâs creativity!
Important links:
Today, we began with a simple review of the previous lesson. We reviewed the setup functions, creating geometric shapes as well as keyboard and mouse properties that we can implement in our code to interact with the sprites. We tested our comprehension with a demo in which we used the mousePressed() functions to move the sprite to where we clicked the mouse pointer. We continued to learn about our sprite properties such as velocity with the x-velocity controlling the horizontal movement and the y-velocity controlling the vertical movement (hopefully physics will help you understand this!). After that, we learned more methods and functions that would allow us to create a game with more interactions using If else statements, collides function, random function and moving our sprites with the keyboard. However, there is a way for us to make our own functions, so what you can do in the game is limitless! We can also upload our own images and insert texts to customize our games. We ended today by creating a collection style game and we hope you all had fun with this lesson!
Important links:
Thank you for coming to Python0!
Important links:
Thank you all for coming to the meeting today!
Important links:
As always, we began todays lessons with a review of Python basics. We began learning about turtles in Python (if you have experience with NetLogo turtles, they are very similar!) Turtles can be customized with different colors and shapes and be used to create drawings. To set up, we need to import the turtle library in python which would allow us to apply different built-in functions and methods. We had a short activity to work with turtles and then continued on learning with python dictionaries. Dictionaries consist of keys and values, in which we can use keys to identify the value; An example being our OSIS number (key) used to identify students (value). Then, we learned about the random module. Random functions can be used to randomly generate outputs of any data type. Various random methods can then be used to alter turtle size, location etc. We ended the lesson with creating a guessing game and share outs.
Important links:
Introduction: The mentors, Tracy and Ayesha, introduced themselves. They gave the students about three minutes to set up and log into the lab machines. Alice the TRex started typing the notes. Peace and glory to Earth. Please listen. Review: Tracey Lin started review. Topics reviewed are as follows: Turtles properties Dictionaries Random OOP: Ayesha continued with explaining OOP. OOP allows you to create your own object with its own attributes and functions. Tracy gave an example using a âDogâ class with attributes of height, weight, and food. Its methods include âRun,â âPlay,â and âEat.â She showed a code example of a class Teacher. Ayesha used the code example of a class Teacher to explain the concept of a constructor and what it does. Tracy continues by explaining the purpose of the different parameters that the Python constructor takes. Ayesha talks about interacting classes with an example of the class âRoomâ and class âStudent.â An object from the class Student can leave room, and this causes the number of people in âRoomâ to decrease by one. Activity: Ayesha introduces the first activity, which lasts about ten minutes, during which students are to create a simple âGuess the Numberâ game in Python. Each time the user guesses the number, the program is to provide feedback on the guess. After the working time ends, Tracy calls everyone back together to review the activity code she has prepared, showing the code on the board. Finally, Tracy introduces the last, big activity of the day, where students have to create an RPG game, a rock-paper-scissors game, or a calculator. She encouraged the students to use draw.io to brainstorm ideas.
Important links:
Today, we had our cryptography lesson! We were introduced to what cryptography is, which is a process in which one can hide certain information by encrypting/encoding a message so that only the recipient can decode it. Plain text is the original message and ciphertext is the encrypted message. We were also introduced to keys which are pieces of information that are used for encryption and decryption. Then, we learned about encryption. Encryption is divided into two types which are asymmetric and symmetric encryption. Asymmetric encryption requires one key for encryption and decryption while symmetric encryption requires two keys. Next, we moved onto ciphers which have many varieties. There are transposition, substitution, caesar, atbash, keyword, and many more ciphers. Transposition ciphers change the order of the letters in the message. Substitution ciphers change the symbols without changing the order of the letters in the message. Caesar ciphers are a type of substitution cipher that uses a different cipher for each letter. Atbash ciphers is another type of substitution cipher that reverses the alphabet to make a keyword and rearranges the cipher based on that order. We can also use different ciphers on the same message to make the code even harder to crack. Finally, we worked on making our own cipher and encryption of a message. We had a lot of fun today and everyone did great! Thank you everyone for coming to our meeting!
Important links:
We began with a brief introduction of cybersecurity, including common applications and the CIA triad of confidentiality (viewing permissions), integrity (editing permissions), and availability. Then, we learned about new terminology, including IP (internet protocol) addresses given to your device based on your network and MAC addresses that are your devices unique 12-digit hexadecimal identification. We continued into basic cyberattacks. DDoS (denial of service) attacks that overwhelm a system with traffic and deny real users from connecting to the system due to being overwhelmed. The man in the middle attack is when an attacker intercepts your communication, who can view and edits the contents of messages from both parties. Email attacks have several subsets including phishing, spoofing, and attachment attacks that deceive readers through words or hidden files. Another type of attack is password attacks, when attackers try to find your password through known passwords or brute force attacks. Malware attacks include malware, virus, and worms attacks. But the key is how to defend against these attacks, cybersecurity. Some useful tips we learned was to use 2-factor authentication, antiviruses and firewalls, as well as stronger passwords and keeping personal information secret. Cybersecurity follows 3 main stages, preventing attacks from occurring, finding out if and when an attack has occurred, and investigate who the attacker was. Several cybersecurity occupations were introduced, in case we wanted to learn more about cybersecurity. We did a fun kahoot, and Elizabeth won first place!! Then, we started a review of ciphers and learned about the Caesar cipher that is a substitution cipher which shifts each letter in the alphabet to another position. We built our own Caesar cipher encoder, shifting to the left an input number of spaces and encoding any given message, with some calm and chill lofi music from the original lofi girl.
Important links:
Hi all! Today we had a lesson on Github and Terminal operations. We were first introduced to the terminal on the computer which is responsible for giving commands to the computer to perform specific tasks. To give a command, we need to input arguments. And through these commands, we can make and remove files, documents, etc. in specific directories. Options is a type of argument that edits the behavior of the command. We went over specific commands like ls, cd, mv, rm, rmdir, pwd, touch, etc. To use a python script, we use the python command to run simple python commands. After we went over terminals, we moved onto Github which is a code hosting platform for version control and collaboration. It allows for upload of different versions of your code and makes returning back to them easier. It also allows collaboration between different users. Some basic Github repositories are locations of all the file and version histories. There are local and remote repositories which differ in the location of the file. Repositories can be made, moved, and cloned. The basic Git commands are pull, add, commit -a -m, and push. Thank you all for coming this week and we hope to see you next week!
Important links:
Thank you everyone for coming to our meeting!
Important links:
Thank you everyone for coming to our meeting!
Important links:
Starting with an introduction of our collab partners, the basic concept of binary was explained: bits (âcurrentsâ) which are either 0 or 1, logic gates that perform operations on bits (fundamental gates: nor, or, and), the inverter that âflipsâ the input and output, and more. Gates can only have one output, one entrance and one exit. After getting over the basics, we delved into quantum mechanics itself, which measures small particles called qubits. A core property is superposition, where a gate is both 0 and 1, although superposition will collapse when a qubit is measured. Going into terminology, qubits can be represented mathematically through kets. Quantum gates are used to influence qubits, including the X gate that flips the qubit state, the Y gate, and the Z gate. This can be graphically represented through the Bloch Sphere (a unit sphere), with vectors as qubits and X, Y, and Z gates as coordinates like a coordinate plane. Superposition is represented by the H gate. Finally, we began coding using Qiskit to create our own circuit.
Important links:
Thank you all for coming to the meeting today!
Important links:
We began with a review of basic operations +, -, /, *, %, and **. Then we were introduced to basic types such as strings, characters, booleans, and floats. Using our familiarity with Python commands, we continued learning about simple cryptography, cypher-text vs plain-text, ciphers such as the substitution or caesar cipher, . Before we began playing around with white space, we attempted to generate all the letters of the alphabet using Python. The clever solution was to use chr(#) to convert the ASCII values 65 to 90 and generate all letters with a simple loop. Then, we were given a simple challenge from picoGym to try to reverse a ROT13 key by shifting each character 13 times and later even generalize it to ROTN for some.
Important links: