Welcome to Code Weekend! We're a series of workshops run by Computer Science Society aimed at getting Penn students with none-to-some coding experience ready for PennApps.
Learn all about the newly revamped workshops we have in store for you today!
Code Weekend is scheduled for Saturday and Sunday, January 26th and 27th (event details here) and will comprise of three workshops to help participants build their very own web app or hardware project. Participants are expected to have very minimal coding or hardware experience as we will be carefully explaining everything we do as we go. This should be extremely helpful to first-time hackers (a fun term we use for people that build things!) especially with PennApps scheduled for the weekend after. If you haven't already, check it out - it's a great way to jump in the deep end and expose yourself to the incredible world of building things (and actually they're doing great stuff for first-time hackers as well).
These workshops have been organized by the Computer Science Society (CSS), PennApps, and many talented individuals. Student mentors will be around to help participants as we go through these highly interactive, live-coding-based workshops.
You can find the workshops from the previous Code Weekend (Fall 2018) here.
Learn about the fundamentals of using JavaScript to create rich web applications! Students will be able to walk through the creation of a chat app using JavaScript with WebSockets.
Please install Node.js before coming.
In this workshop we will be building a psuedo-PennInTouch where users will be able to add students/courses. We will start with a brief intro into Ruby on Rails before diving into coding the site.
Participants should have some sort of coding text editor installed. We will be using VS Code, which you can install here.
As RoR development on Windows has been notoriously tough, participants with Windows computers will need a little more setup and should install VirtualBox along with the VM that we use in CIS196 which can be done here.
Have you ever wondered how you can write software that controls hardware in ways that you can see with your own eyes? Designed for curious students without any background in using Arduino, the workshop will introduce first principles in designing your own circuits and systems using an Arduino. After this workshop, you will have the knowledge to go out and build your own projects with Arduino!
In preparation for the workshop, please come with the Arduino IDE installed on your laptop so that we can help with any installation issues and jump right into the workshop!
When coding, you'll run into tons of small problems and errors that you don't initially know how to solve. This is completely normal. In order to write solutions to every problem that you could hypothetically run into, you'd need a manual taller than the Empire State building.
Thankfully, we all have a resource with more information that we can possibly imagine - teh interwebz. You've probably searched for things using Google before, but most coding problems can actually be solved by effectively Googling your issue. Here are some tips for finding the answers to all your problems on the Internet:
These resources are also awesome:
There's pretty much three things happening every time you open a website:
So basically, any work done on a server has been programmed into the backend, while anything done inside your browser has been programmed into the frontend. These are the two main components of any website.
You'll see later on that requests aren't just made to the server when we first open the website; it's often faster to make smaller requests first, load the important parts of a web page and then request additional bits of information when they're needed (think Facebook's Newsfeed). It's also used when we do things like attempt to log in to a website. This is one of the reasons why Javascript is so useful as a frontend programming language, as it allows us to do these kinds of things very easily and update the web page immediately without having to refresh the page.
Terminal (or Command Prompt on Windows) is basically a way for us to access the Command Line. This gives us access to a wonderful variety of things that we can do. We will be spending a good amount of time this weekend in here, so let's take some time to get used to it.
Once you fire up Terminal or Command Prompt (on Windows, you'll later need to run cmd.exe by right-clicking on the shortcut and click Run as Administrator, you'll know it's running as Admin if your path ends in ../system32
), here are a few simple commands that you can type:
ls
(DIR
on Windows) lists all the files in the current foldercd
allows you to change directory. So cd Documents
will move into the folder Documents if there is such a folder in the current directory. You can check this by using ls
(DIR
on windows). To move up a directory, say back to where you were before you went into Documents, type in cd ../
.pwd
prints out the current path you've traversed in the file system. It's particularly helpful once you've used cd
a few times, and aren't sure where you are anymore.mkdir
allows you to make a folder in the current directory. So mkdir Such Magic
makes a folder named 'Such Magic'.mv
(move
on windows) will let you move files and folders. In Terminal you can do mv ~/Desktop/MyFile.rtf /Volumes/Backup/MyFolder
to move MyFile.rtf. On Windows move c:\windows\temp\*.* c:\temp
will move everything from C:\windows\temp
to C:\temp
. *
works as a wildcard operator here. Careful with this one - you may not want to move things around haphazardly.Please do give members of the Code Weekend Team feedback on how to improve these workshops in the future and tell your friends what you've learned!