Computer Systems Programming

Slides:



Advertisements
Similar presentations
Lab III – Linux at UMBC.
Advertisements

Orientation for CIS126AA Unix Operating System WEB Edition
An Introduction By Sonali and Rasika.  Required for the project  Show the versions of your code in the course of development  Show versions of your.
Git/Unix Lab March Version Control ●Keep track of changes to a project ●Serves as a backup ●Revert to previous version ●Work on the same files concurrently.
Introduction to Computer Systems Topics: Staff, text, and policies Lecture topics and assignments Lab rationale and infrastructure F ’08 class01b.ppt.
CSc 160 Overview of Fundamentals of Computer Programming II Spring (SO1) 2004.
CSCE 312 Computer Organization Lecture 0: Course Administration EJ Kim Department of Computer Science and Engineering 338B Bright
Hosted Git github. From an alumni (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for the.
 MyJU ◦ WebAdvisor: useful links such as classes, schedule, grades ◦ My Files: H Drive mapped in the whole campus.  This is Cloud storage!  You can.
1 CS 240 Programming in C and UNIX Lecturer: Bob Wilson Office: S Phone:
CS105 Lab 1 – Introduction Section: ??? TA: ??? ??? Announcements CITES Accounts Compass Netfiles Other Administrative Information CS105 Fall
 First time student activates their google account, they need to go to an internet browser and go to  drive.google.com/a/students.macon.k12.nc.usdrive.google.com/a/students.macon.k12.nc.us.
Introduction to Programming Summer 2010 Akil M. Merchant.
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
COMP Introduction to Programming Yi Hong May 13, 2015.
CGS-2531 Problem Solving with Computer Software Course home page: Course.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Git Fundamentals Rochelle Terman 13 January 2014.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
Creating Programs on UNIX This term you can create programs on UNIX or you can create programs using a C++ compiler on your PC. This set of slides steps.
CSCI 330 UNIX and Network Programming Unit I Introduction.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois at.
Object Oriented Programming COP3330 / CGS5409.  Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
Hosted Git github. From an alumnus (2010)  You know, the more time I spent in industry the better I've understood what a strong advocate you are for.
Course Information CSE 2031 Fall Instructor U.T. Nguyen Office: CSE Home page:
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Object Oriented Programming COP3330 / CGS5409.  Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
CSCI 3100 Tutorial 5 Bootstrap & Git ZENG, Jichuan Department of Computer Science and Engineering The Chinese University of Hong.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Course Information EECS 2031 Fall Instructor Uyen Trang (U.T.) Nguyen Office: LAS Office hours: 
Version Control Systems
ENEE150 Discussion 01 Section 0101 Adam Wang.
Class Projects and Environment
Course Information EECS 2031 – Section A Fall 2017.
L – Modeling and Simulating Social Systems with MATLAB
CSE 102/ISE 102 Introduction to Web Design and Programming
CS101 Computer Programming I
Open Source Software Development Environment
IT244 - Introduction to Linux / Unix Instructor: Bo Sheng
CS/COE 1520 Recitation Week 2
Setting up Git, GitBash, and GitHub
Setting up Git, GitBash, and GitHub
Computer Organization II
L – Modeling and Simulating Social Systems with MATLAB
Modern Version Control with Git
Course Information Mark Stanovich Principles of Operating Systems
Macaualy2 Workshop Berkeley 2017
Version Control Systems
Storing, Sending, and Tracking Files Recitation 2
Creating Programs on UNIX
Lab 1 introduction, debrief
The Big Picture
slides borrowed and adapted from Alex Mariakis and CSE 390a
Andy Wang Operating Systems COP 4610 / CGS 5765
Getting Started with Git and Bitbucket
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Git and Jira Tutorials Kan Qi
Using Github.
Accelerated Introduction to Computer Science
Course Information EECS 2031 Fall 2016.
Andy Wang Operating Systems COP 4610 / CGS 5765
Video Notes.
Andy Wang Operating Systems COP 4610 / CGS 5765
CS201 – Course Expectations
Presentation transcript:

Computer Systems Programming

About the course This course gives you an overview of how computer systems are organized This course provides skills and knowledge of C and how C is translated into assembly code, and how assembly code is executed in hardware

Course information Home page D2L site Slack Course objectives Updated course schedule Information about instructor, TA, office hours, textbooks Information about homeworks and submission instructions D2L site d2l.pdx.edu All homework submissions Slack pdx-cs.slack.com (#new_beginnings) Announcements, hints, help, class discussion

Textbooks Required Recommended Randal E. Bryant and David R. O’Hallaron, “Computer Systems: A Programmer’s Perspective”, Prentice Hall 2015, 3rd edition. csapp.cs.cmu.edu All slide materials in this class are based on material provided by Bryant and O’Hallaron Recommended Brian Kernighan and Dennis Ritchie, “The C Programming Language, Second Edition”, Prentice Hall, 1988 Some parts of the course rely on the C99 standard

Exams 2 exams (midterm and final) Closed book Closed notes No electronics of any kind Taken from problems in the textbook and in class (See lecture slides and web site for list of problems) practice201.oregonctf.org

Accounts Activation and access All programs must run on the CS Linux Lab machines Instructions for account setup and program submission on course web page Login remotely or in person (Basement of EB)‏ Linux systems in FAB 88-09, 88-10 linux.cs.pdx.edu Remote access via Linux or MacOS ssh ssh user@linux.cs.pdx.edu Remote access via Windows Putty http://www.chiark.greenend.org.uk/~sgtatham/putty Remote access via Cygwin ssh http://www.cygwin.com

Linux environment Can also install local Linux virtual machine via VirtualBox http://thefengs.com/wuchang/courses/ubuntu_virtualbox.txt Learn how to use Linux commands Helpful CTF: http://overthewire.org/wargames/bandit/ Linux commands to learn Filesystem ls, cd, mkdir, rm An editor (pick one) vim, nano, subl, emacs, gedit Homework tools gcc (GNU compiler) gdb (GNU debugger) make (Simple code building tool) zip (Archiver, compressor)

Assignments Reading assignments posted with each lecture Programming assignments and CTF See web site for grading breakdown Homework assignments due at start of class on due date

Assignment 1 The specification is on course web site Scroll down to the weekly schedule, click on “A1” Submission via Bitbucket Makefile required TA will run and read your program Code should be modular Code should be concise and readable Have consistent naming conventions Be commented (including descriptions of variables, function parameters, and function return values) https://www.stack.nl/~dimitri/doxygen/manual/docblocks.ht ml

Academic integrity Policy What is not cheating? What is cheating? Automatic failing grade given Departmental guidelines available in CS office What is not cheating? Discussing the design for a program is OK. Helping each other orally (not in writing) is OK. Using anything out of the textbook or my slides is OK. Copying code “snippets”, templates for library calls, or declarations from a reference book or header files are OK What is cheating? Copying code verbatim without attribution Copying someone’s answer or letting someone copy your answer

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Create an account on Bitbucket Log out of all of your Google accounts Go to https://bitbucket.org Use your @pdx.edu e-mail address to "Login with Google" Find the + and click on it to create a new repository Name your repository nb-<FirstName>-<LastName> (e.g. nb-Wuchang-Feng) Then "Create repository" using default options Pause We will create a git repo on linux.cs.pdx.edu then, connect it up to this repository Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Set-up ssh key access from linux.cs.pdx.edu (for convenience) If you have not set-up an ssh key before, run: ssh-keygen -t rsa Copy the contents of ~/.ssh/id_rsa.pub to the clipboard Go back to Bitbucket and access your profile In Settings, click "SSH keys", then "Add key" Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Add ssh key from linux.cs.pdx.edu https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Then, clone repo from linux.cs.pdx.edu using the ssh key added Example: git clone ssh://git@bitbucket.org/wuchangfeng/nb-wuchang-feng Change directories into your repo (cd nb-wuchang-feng) Create a file README.md with an initial message Add it to the files you would like to commit permanently into local repository git add README.md Commit the file permanently into local repository with a short message describing the commit Push the local repository onto the origin repository on the master branch git commit -m "First commit" git push -u origin master Go back to the new repository on Bitbucket and find "Send invitation" Add course instructor and TA with read access (wuchangfeng , sastrand) Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Read the first 6 steps of https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners git clone Fetch a copy of a remote repository git add Add a new file and/or directory to local repository git commit Commit changes to local repository git push Merge changes from local repository to a remote one Implicitly assumes "origin" (place that you retrieved repo from) and "master" (branch) git pull Merge changes from remote repository to your local one Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Create a directory called hw1 within local repository (mkdir hw1) Within the directory Create a markdown file called README.md that contains a colorful message to me that shows me how much Markdown you know cd hw1; vim README.md Add the directory and files to your repo via git add . Commit the changes locally via git commit Push the changes to your remote BitBucket repo via git push Portland State University CS 410/510 Internet, Web, and Cloud Systems

Portland State University CS 410/510 Internet, Web, and Cloud Systems Bitbucket Note: All code submissions will be via Bitbucket Commit changes to your repository frequently Use descriptive messages in commit messages Create a tag for your repository for each homework submitted Tags named hw1, hw2, hw3, … etc. Other resources http://rogerdudler.github.io/git-guide/ https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html Portland State University CS 410/510 Internet, Web, and Cloud Systems

Help CS Tutors Instructor and TA office hours Slack channel Anonymous feedback at https://sayat.me/wu4f