Day 0: Syllabus, and Computers are Really Neat
See the syllabus here (UMBC login required).
Welcome to CMSC 201 (Intro to Computer Science)!
Day 0 Agenda:
Who are you???
Why are you here?!
To learn programming! Probably!
My goals are, in order of priority:
We're going to learn the basics of programming, with a language called Python 🐍!
This may be your first class in programming... that’s great! We assume no prior programming experience.
This is what Python looks like:
from math import pi print(pi) radius = float(input("Input radius, I'll give circumference: ")) # Circumference = 2 * r * pi c = 2.0 * radius * pi print(c) if c > 24901: print("That's bigger than planet Earth (in miles)!")
3.141592653589793 Input radius, I'll give circumference: 3959 24875.130631123982
3.141592653589793 Input radius, I'll give circumference: 4000 25132.741228718343 That's bigger than planet Earth (in miles)!
What is programming good for?
Programming is instructing a computer what to do. Anything a computer does is, at some level, programmed!
But for now, the boring part...
Syllabus
Loose course outline:
Note: I will be out the weeks of October 7th and October 28th :( But worry not, I will record lecture videos (if I can't find a guest lecturer) and make sure you all are in a good place!
Grades
Grades are out of a thousand (1000) points, each 100 points is a letter grade (1000 is 100% (A), 900 is 90% (A), 800 is 80% (B)...)
CMPE and CMSC majors must earn a B to advance in their major!
This class has (see syllabus on Blackboard for authoritative details):
Coordination
This class is coordinated! That's a UMBC thing where one person or group creates material for all the sections, in order to keep things consistent. This class is coordinated by Prof. Eric Hamilton.
This means... I don't make the homework, projects, or exams. But I can still help you with all of the material! And I'm the person that'll be talking for two and a half hours a week :)
Your discussion section is a lab!
In your lab, you’ll be completing lab assignments. You MUST go to your assigned section -- you won’t get credit otherwise.
The coding lab-discussion is an opportunity for you to ask questions in a smaller environment and to really figure things out. You’ll be given short lab assignments after your TA goes over a short review or Q&A period at the beginning of the hour.
Assignment submission
submit
program on the GL server. They are due at 11:59:59PM on the day specified in the assignment.
Really no actually please for real though start early on assignments
Programming, if you haven't done it before, is VERY unintuitive!
Don't be intimiated-- anyone can learn it, and I will do my best to make it approachable-- but really start early and give yourself time to be stuck. Progress comes from pushing through those boundaries, which require time. Assume each assignment may take upwards of 20 hours! No time estimate is wrong, it all depends on you and your experience.
There is always a flood of emails before an assignment is due. Assume the worst, and assume the TAs or I won't be able to respond in time :(
SDS/ADA
If you have any disability information on record with SDS, I received a notification and Prof. Hamilton (who is running the exams) will be aware. If you ever have questions or concerns on this, or you do not receive your approved accomodations, reach out as soon as possible (sdonahue@umbc.edu or Eric at eric8@umbc.edu).
Attendance
...is not required! But highly recommended!
All the lecture material will be posted to the class page or blackboard. You will have access to it.
Lectures are NOT recorded, unless class is canceled. However, all material is in the lecture notes and homework.
If you like taking notes, that is also recommended! Helps solidify knowledge :) For digital note-taking, Logseq or obsidian.md are quite good!
I plan to do (optional) in-class quizzes for extra credit if I can get Prof. Hamilton to let me :)
The long part about cheating
Do NOT submit someone else’s work as your own. Both of you will receive an F in the class. Seriously. Don’t do it.
So what can you do?
DO:
DO NOT:
You should NOT worry about "accidentally cheating" by happening to have a solution that is similar to someone else. It is always very obvious and not a coincidence. As long as the code is coming exclusively from your brain and fingers, you're good.
See the syllabus for the full gory details. And as always reach out if you ever have a concern!
Oh yeah? How do you plan to thwart my cheating plans?
We use some special cheating software to detect similar submissions. It is very difficult to trick! But not impossible to trick. The catch is, it takes more effort to trick it than to do the assignment legitimately :)
All of the assignments have very specific Python features allowed. ChatGPT and friends will generate "forbidden arts", using Python features that are not "allowed" for the given assignment.
Just please don't... the risks are great and the benefits are marginal. Come to get help with the material instead!
Getting help on class material
In this course, the TA and instructors are part of the course offering! We are here to help you. You can ask ANY 201 TA for help in this course. They will hold office hours in ITE 240 (see schedule on blackboard). They will have yellow lanyards.
If you don't like the TAs, or just want to talk to me, you can come to my office hours at 2PM-3PM in ITE 373!
Other resources
- Please try to minimize round-trips on email! Include any pertinent information, your section, screenshots of your error...
Tools of the trade
(All of the information here is repeated in Homework 0.)
Linux and SSH
We will use SSH to connect to GL
. This is where all of our homework submissions will take place. You can also write code on it! Or do anything! I'm running Linux right now :)
SSH should already be on your computer, even Windows! Open cmd.exe
, and you can use ssh
just like I do.
Logging in:
ssh yourusername@gl.umbc.edu
(Then the annoying duo auth step).
Windows: You can use PuTTY or cmd.exe.
Mac: Open terminal and ssh from there.
You can edit on your local machine, and copy things over. You can use WinSCP (on Windows) or scp
(the command) on Mac or Linux.
Let's learn some Linux commands!
Text editors
We do not require any particular text editor. The only officially supported editor is emacs
.
Your options that I will help with:
You're-on-your-own options
I recommend using VS Code with the Remote-SSH add-on. Or just use emacs! There is minimal guidance on this. Try whichever you'd like, but remember that TAs will not provide any official IDE support.
Homework 0
Homework 0 is currently released, due Sep 6th 2024, and will walk you through “how” to do 201 homework:
- How to log onto the GL servers
- How to write and run Python code
- How to submit an assignment
- How to check submission was done correctly
Next up...
Next class will an intro to Python with variables! And we'll go from there :)
Questions or concerns?