HW0: Identity & Communication 101
DUE DATE: Sunday, February 2nd, 2025 at 11:59 PM.
SUBMISSION: Read the entire homework, complete the tasks below, then fill out the GitHub/Penn Association Form to provide us with your GitHub username. Submit the Your Experience with and Perspective on LLMs survey. Finally, introduce yourself in our Slack
#introductions
channel.TIME ESTIMATE: We estimate this will take around 1–3 hours, depending on your familiarity with GitHub and Slack. If you’re already experienced, it might be less. In addition, we expect you to spend 30-60 minutes on the introduction post in Slack.
FEEDBACK LINK: At any moment in the homework, if you have feedback to provide, don’t hesitate (if it is useful you will earn participation credit!): Homework Feedback Form. Note: This is to provide feedback for future improvements, and not to ask questions or clarifications about the homework. (For instance, if you something was confusing, and it took you a while to figure out, but you eventually figured it out, you might provide feedback that if it had been explained differently it would have been easier to understand.)
In this homework, you will set up your professional online presence by creating or updating your GitHub account, updating your profile photo and name on Canvas and Gmail, configuring Slack, and posting your introduction to the public #introductions
channel.
These steps are crucial for building a strong online presence that showcases your skills and professionalism, and for effective communication and collaboration throughout the course.
In software engineering, a polished and consistent online presence is tremendously valuable.
In the last few years, many factors have made software engineering jobs more competitive:
The rise of remote work has made it easier for companies to hire from a global talent pool: Each job posting can attract hundreds of applicants from around the world.
The availability of LLMs has made it easier for applicants to produce application materials that are more polished and professional than ever before: Companies have an increasing difficulty distinguishing between applicants.
The availability of LLMs has also reduced the need for many basic entry-level positions: Companies are increasingly looking for applicants who possess higher-order skills, such as creativity, the ability to work in a team, to communicate effectively, and to learn new technologies quickly; these are skills that are not easily demonstrated on a résumé.
For all these reasons, it is important to have a strong online presence that showcases your skills and professionalism.
In this course, you are going to practice the skill of presenting yourself, initially by practicing with your peers, but the ultimate audience will be prospective employers and your future professional network.
For this purpose, we encourage you to create and maintain accounts on the following platforms:
GitHub profile: serves as a living résumé for recruiters and colleagues alike, showcasing not only your code but also your professionalism and attention to detail.
LinkedIn: a professional networking platform where you can connect with other professionals, showcase your skills and experience, and find job opportunities.
Create or Update Your GitHub Account
- Understand GitHub’s importance for professional networking in software engineering
- Learn how to present yourself effectively on a public profile
Configure Slack for Efficient Collaboration
- Install Slack on your computer (and phone if possible)
- Set up notifications so you never miss important messages
Establish a Consistent Personal Brand
- Use the same profile photo, first name/last name, and pronouns across GitHub, Slack, Canvas, and Gmail
- Create a strong first impression for your classmates, instructors, and future recruiters
Introduce Yourself in #introductions
- Practice clear, concise, and friendly self-presentation
- Get comfortable with course communication channels
All the actions in this homework are designed to be a starting point to building your online presence.
One key question to ask at every step of the way is: How Will I Be Seen? And to do so across different audiences, for instance:
Classmates, TAs, and teammates will likely check your GitHub profile (and your Slack messages!) to gauge how you work: Are you consistent, communicative, and organized?
Humans and AIs will evaluate your online presence in different ways, including according to these two dimensions:
Consistency: Your level of polish and attention to detail is measured by the consistency of your online presence across different platforms. Examples include:
- Professional profile photos, that are consistent — or at least consistently professional — across different platforms.
- Consistent use of your real name, or a common variant of it, across different platforms.
- Consistent use of pronouns across different platforms.
- Minimal configuration of all the profile fields available in any given platform.
Relevance: Your level of professionalism is measured by the relevance of your online presence to the job you are applying for. Examples include:
- Having code samples on your GitHub profile that are relevant to the job you are applying for.
- Prospective employers expect to train students for all their relevant technologies, so what they are looking for is evidence that prospective hires will be good at learning on their own.
- Mentioning your current status as a student at Penn, or as a TA for a specific course at Penn.
- Having a large number of professional contacts, from peer students, who might be in companies you wish to join.
- Mentioning your pronouns in your profile tagline, if you wish to share them.
- Although it may be intimidating to share your identity so personally with strangers, it is important to remember that your success in your professional career will depend on your ability to find a workplace where your whole self will be valued — and that starts with being honest about who you are.
- Having code samples on your GitHub profile that are relevant to the job you are applying for.
You are going to be configuring your identity across several different platforms—GitHub, Slack, Canvas, Gmail, potentially LinkedIn and others. Here are the assets you will need to select:
Profile Photo: A clear, professional photo of yourself that you are comfortable sharing with classmates, instructors, and potential employers.
- The photo does not have to be a formal headshot, but it should be high-quality, recognizable and appropriate for a professional context.
- It is best to use the same photo across all platforms, to create a consistent online presence, but you if you have several high-quality professional headshots, it also can be a good idea to use different ones on different platforms.
First Name/Last Name: Your real first and last name, or a common variant of it, that you are comfortable sharing with classmates, instructors, and potential employers.
- If you are foreigner, you need to decide whether to take on your real name or an Americanized version of it. This is a personal decision, but what ever you decide, it is important to be consistent.
- You can also include both your original name and an Americanized version of it, but if you do so, it is important to be consistent in the order and typography that you use across all platforms. For instance, you could use “Jérémie (Jeremy) Lumbroso” or “Jeremy (Jérémie) Lumbroso” for instance, but you should not use “Jérémie Lumbroso (Jeremy)” on one platform and “Jeremy Lumbroso (Jérémie)” on another (different choices of which name is preferred); or “Jérémie (Jeremy) Lumbroso” on one platform, and “Jeremy Lumbroso” on another (different typographies on how to separate original from Americanized version, leaving confusion on which is preferred).
Pronouns: If you wish to share them, your pronouns (e.g., she/her, he/him, they/them) that you are comfortable sharing with classmates, instructors, and potential employers.
One of the objectives of this course is to help you build a strong online presence that showcases your skills and professionalism. In particular, we are going to try to provide you with projects that are varied, and that you can customize extensively so that they do not look like cookie-cutter template projects.
We strongly recommend that:
You only create a single GitHub profile. It is a mistake, and a profound misunderstanding of the software engineering culture, to create multiple GitHub profiles for multiple purposes. The software engineering culture is one of transparency and openness, and it is expected that you will share your work with the world.
You never delete a repository. It is a mistake to delete a repository, even if it is a mistake. Instead, you should archive it, or make it private, but never delete it. This is because the software engineering culture is one of learning from mistakes, and it is expected that you will be able to show your learning process to the world.
Part of what defines your online presence is the length of time it has been established, and the aggregate mass of all the content you accumulate on your account. While you have the opportunity to curate your GitHub profile in a number of different ways, such as by pinning repositories, creating a custom README, or creating a custom profile, it is very misguided to delete repositories or otherwise hide work.
Sign Up / Log In
- If you do not have a GitHub account, sign up here.
- If you already have one, log in and check that your username, email, and display name are professional.
Profile Photo, Name, and Pronouns
- Upload a profile photo that you are comfortable sharing in a professional context (again, it does not have to be a formal headshot, just something recognizable and appropriate); the main audience here are prospective employers.
- Ensure your display name includes your real first and last name (or a common variant).
- Consider adding your pronouns so collaborators know how to address you.
Add a Tagline Mentioning Penn
- You can add a short bio or tagline under your GitHub profile settings.
- Mention that you are a student or TA at Penn (e.g., “Penn CIS Student” or “TA for CIS 3500 @ Penn”).
- Provide any additional details you wish to share (academic interests, coding interests, etc.).
Here’s my profile as an example:
Once you have set up your GitHub profile, you need to register your GitHub username with the course by filling out this form.
Most students never make the effort to learn how to use git
, the underlying tool of GitHub, and this generates a lot of pain along the way.
We recommend that you take this time to:
Walk through the short GitHub Hello World guide. This will teach you how to create a repository, make changes to it, and create a pull request, through the web interface.
Take the “Introduction Sequence” (Introduction to Git Commits, Branching in Git, Merging in Git, Rebase Introduction) on Learn Git Branching. This is an online game that teaches you how to use
git
from the command line.
Finally, when you have time, you can also take a look at the GitHub Skills, in particular their Introduction to GitHub, to continue learning about how to use GitHub effectively.
All of these steps are optional, we just mention to help you continue your exploration of GitHub:
(Optional) Make Your Profile Shine
- Create a repository named
<your-username>
and add a custom README for a personal intro and pinned projects. - This is a great way to showcase your skills and interests, and to make a strong first impression on potential collaborators and employers.
- Click here to learn how to create a README file.
- Create a repository named
(Optional) Star Repositories
- Starring repositories is a way to bookmark projects you find interesting or want to revisit later.
- Click here to learn how to star repositories.
(Optional) Follow Other Users
- Following other users is a way to stay updated on their activity and discover new projects.
- Click here to learn how to follow other users.
(Optional, later) Create a Portfolio Website
- You can use GitHub Pages to create a personal website that showcases your projects, skills, and interests.
- This will be covered in Homework 1, and if there is popular demand, we will dedicate a recitation to portfolio websites.
- Click here to learn how to create a GitHub Pages site.
While we will not be covering these platforms in detail, in this homework, it is important to remember that your online presence is not limited to GitHub.
You should also make sure that your profile photo and name are consistent across all platforms, including Canvas and Gmail (if you are in a School that uses Gmail).
Communication and collaboration are defining features of effective software engineering. Modern development typically involves distributed teams working on multiple features in parallel, often each person coding in relative isolation. Without clear, reliable communication channels, the process quickly becomes chaotic—merge conflicts go unresolved, crucial requirements get lost, and team members duplicate each other’s efforts rather than building on each other’s progress. In other words, a lack of effective communication all but guarantees wasted time and frustration.
That’s why we’re starting this course with something as seemingly simple as introducing yourself and setting up Slack. While GitHub is your public-facing résumé, Slack will be your daily coworking space—the place where questions get answered, issues get unblocked, and demos get organized.
By establishing consistent norms—like using your real name and profile photo, responding to messages within 24 hours, and introducing yourself to your peers—you help maintain a sense of trust and accountability in our learning community. These will be our initial norms, but once you have formed your team, you will also be tasked with deciding team-specific norms that work best for you.
In fact, these communication norms echo those found in successful workplaces: If you can’t find the right person on your team or if no one responds when issues arise, progress stalls. In a real-world setting, teams that master proactive communication can deploy new features faster, adapt to changing requirements more gracefully, and spot bugs or design flaws before they become catastrophic. Simply put, the better you and your teammates communicate, the smoother and more joyful your software projects will be. By practicing these skills now, you are setting yourself up for success not only in this course, but also in any professional environment you join later on.
Important Note: Throughout the semester we will keep track of the following metrics, and they will be used as part of your participation grade:
- When you have joined the course staff Slack workspace
- Whether you have installed Slack on your phone and computer (we can detect the proportion of time you spend connected from the web client versus mobile/desktop client and will use that as a measure of class participation)
- If you don’t install Slack, then you will not reliably receive notifications and communication with the course will be damaged
- Whether you acknowledge messages in the
#announcements
channel with a ✅ emoji-react within 24 hours
These are all the steps to join the course Slack and configure it on your devices:
💌 Make sure you have joined the course Slack: https://penn-cis-3500.slack.com
- You should have received an email invitation to join the Slack workspace (you can search in Gmail using the filter
from:slack.com subject:"has invited you to work with them in Slack"
). - Troubleshooting:
- If you have multiple email addresses, make sure you are checking the right one: We will be using the address with which you are officially registered in this course.
- Make sure to check your spam folder, as the invitation may have been filtered there.
- If you have followed the troubleshooting steps, and have not received an invitation, please contact the Head TAs immediately.
- Please note that the Slack invitation will be sent some time after this assignment has been released. Therefore, please ensure the Slack invitation has already been sent before contacting the TAs.
- You should have received an email invitation to join the Slack workspace (you can search in Gmail using the filter
🪪 Configure your Slack profile.
- Upload a profile photo (a clear image of your face, so the course staff and your peers can recognize you during class, office hours and other interactions).
- Use your full name for display—matching your name on Canvas/GitHub—and add your pronouns.
- Include a link to your freshly updated GitHub profile in your profile.
- Adding a short blurb or job title (“CIS 2025” or similar) can help your classmates and instructors know who you are at a glance.
- Click here for instructions on how to do this.
⬇️ Install Slack on your phone and computer.
- 📱 Phone: You can download the Slack app for your phone from the App Store or Google Play.
- 💻 Computer: You can download the Slack app for your computer from the Slack website.
🔔 Set up notifications so you don’t miss important messages. You can customize your notification settings by clicking on your profile picture in the top right corner of the Slack app, then selecting “Preferences” and “Notifications.”
The course norms for Slack are as follows:
You must acknowledge messages in the
#announcements
channel with a ✅ emoji-react within 24 hours.- This is important to make sure that the class is following along on timely information.
- You are not just responsible for acknowledging the message, but also for being aware of the information contained in it.
- If you have any questions about the message, you should ask them by responding to it in a thread in the
#announcements
channel.
You must respond to all messages using threads.
- This is important to keep the conversation organized and to make sure that everyone can follow along.
- Click here to learn about using threads on Slack.
You must “tag” (also called “mentions”) all the people you are addressing in your message.
- This is important to make sure that the right people see your message, get a notification, and can respond in a timely manner.
- Click here to learn about using mentions on Slack).
Once your teams are established, and the #s25-team-XX
channels are created, you will also be responsible for defining team-specific norms that work best for you and the entire team will both be responsible for enforcing and following these norms.
The most important part of this homework is the introduction. This is your chance to make a good first impression on your classmates and instructors, and to practice clear, concise self-presentation.
⚠️ Only post your introduction once you have fully completed your Slack profile.
Post a Friendly Introduction
- Navigate to the
#introductions
channel in Slack. - Tell us about your major, year, or any fun fact about yourself.
- Mention your pronouns, your primary coding interests, or any relevant background experiences.
- Feel free to share your excitement for the course or goals for the semester.
- Make sure to include a link to your GitHub profile.
- Navigate to the
(Optional) Reinvent Yourself
- Introducing yourself is a chance to shape how others see you. Take this opportunity to highlight who you are and what you care about.
GitHub/Penn Association Form: Fill out this form to give us your GitHub username.
Your Experience with and Perspective on LLMs Survey: Fill out the Your Experience with and Perspective on LLMs survey.
Slack Intro: Complete your introduction post in
#introductions
on Slack.
That’s it! Once you have finished these two steps, you have completed Homework 0.
Professional Branding: Employers and collaborators often check GitHub profiles before scheduling any interviews. A consistent, polished presence on GitHub and Slack helps build credibility.
Streamlined Collaboration: By using a clear photo and consistent naming across GitHub, Slack, and Canvas, your classmates and instructors can find you quickly, and your agile teams will function more smoothly.
Centralized Course Communication: Slack is where you will ask questions, receive course announcements, and coordinate team projects. Installing it on both your phone and computer ensures you stay in the loop and respond in a timely manner.
Remember, this assignment is simple but extremely important for laying the groundwork for effective teamwork. Future homework, projects, and code reviews will rely on these tools and your consistent presence.
If you have any trouble completing any part of Homework 0 (especially the Slack sign-up or GitHub configuration), please contact the course staff or Head TAs as soon as possible.
We look forward to meeting you all in #introductions
and seeing your polished GitHub profiles!
Don’t forget: If you have feedback to provide, don’t hesitate (if it is useful you will earn participation credit!): Homework Feedback Form.