GithubHelp home page GithubHelp logo

prof-rossetti / nyu-info-2335-201706 Goto Github PK

View Code? Open in Web Editor NEW
14.0 6.0 62.0 50.06 MB

Programming in Python and Fundamentals of Software Development - Summer 2017

License: Other

nyu python course-materials course software-development software-testing open-source command-line-computing server-side-technologies professor

nyu-info-2335-201706's Introduction

INFO-GB.2335.70 - Programming in Python and Fundamentals of Software Development

This repository contains resources for instructing a graduate business school course on programming and software development.

University School Department Term Course Section Credits
New York University (NYU) Stern School of Business Department of Information, Operations, and Management Sciences (IOMS) - Information Systems (INFO) 2017 Summer Session II Programming In Python and Fundamentals of Software Development (GB.2335) Monday and Wednesday nights from 6pm to 9pm (70) 3

See the contributor's guide for instructions on how to add or revise repository content.

Bookmark-worthy Links:

Description

This course represents an opportunity for students to learn how to code, regardless of whether or not they possess prior programming experience. The Python programming language will be introduced with a progression of concepts from basic to intermediate. Students will then design and implement practical applications of the Python programming language ranging from basic scripts to intermediate programs. Throughout the semester, students will be immersed in contemporary software development practices and should emerge with marketable technology-related knowledge and skills. Prerequisites: N/A.

Scope

  • The Role of Application Software in Business and Organizations
  • Software Development Tools, Practices, and Methodologies
  • Programming Languages and Frameworks, with focus on Python

Objectives

  1. Become proficient in writing, debugging, testing, and executing Python scripts.
  2. Describe the ecosystem of tools and technologies used to plan, develop, and maintain computer-based information systems.
  3. Participate in all phases of the systems development lifecycle, and describe the difference between traditional "waterfall" and agile methodologies.
  4. Discuss security and privacy considerations relevant in designing and managing computer-based information systems.
  5. Describe the differences between functional and object-oriented programming.
  6. Participate in, and describe the advantages and disadvantages of software version control.
  7. Participate in, and describe the advantages and disadvantages of open source software.
  8. Participate in, and describe the advantages and disadvantages of test-driven development.
  9. Gain marketable programming skills and build an online portfolio consisting of multiple programming projects.
  10. Network with industry professionals.
  11. Have fun!

Learning Community

The maximum enrollment for this section is 50 students. Enrolled students represent a variety of graduate programs of study, however as of the first day of class, roughly 75% are in the Stern School of Business.

A pie chart showing 72% of enrolled students are in the Stern School of Business.

Michael Rossetti (LinkedIn, GitHub) will be administering the course and teaching all course material. If you have a question about assignments, projects, or anything covered in class, send a direct message to @prof-rossetti on Slack or email him at [email protected]. The professor aims to provide an average Slack response time of 1-2 business days and an average email response time of 3-4 business days. If emailing the professor, please use your university-issued email address. If requesting a LinkedIn connection, the professor usually waits to accept them until the end of the semester.

Mike Zhu (Github) will be providing instructional assistance as the course's Teaching Fellow (TF). To contact him, send a direct message to @mz909 on Slack or email him at [email protected].

Learning Activities

Student performance will be evaluated by assignments, projects, and a final exam. All assignments and projects are due before 11:59pm on the due date specified, unless otherwise noted. The final exam will be held on the last day of class. See the Activities page for up-to-date information about the due-dates and weights of all learning activities.

Materials

Texts

No textbook is required to accompany this course, however students will be expected to read significant quantities of online documentation from a variety of sources.

Some helpful Python resources include:

For perspective on contemporary software development attitudes, students may optionally read the following book:

  • Rework, by David Heinemeier Hansson and Jason Fried

Computers

Each student should have access to a personal computer during class.

The computer should allow installation of Python, third-party packages, and other software such as a text editor. It should have enough processing power to run all these programs, thus netbooks, tablets, and two-in-ones may prove problematic. Both Mac and Windows operating systems should provide a suitable development environment. Students with Windows computers may face additional and/or alternate instructions.

Any student who doesn't own a personal computer may inquire about loaning a laptop from the library.

Computer Software

NOTE: Please do not install until instructed to do so by the professor!

Text Editor

Each student is expected to achieve proficiency using a text editor of choice. Ideally, the text editor should include syntax auto-completion functionality for the Python language. The official text editor for this course is Atom, however Sublime and Notepad++ are potential alternatives.

NOTE: If you're using Atom, you should be able to download third-party packages which provide additional functionality. Do so from the "Settings > Install" menu and see installed packages from the "Settings > Packages" menu. One recommended package to install is called "Sublime-Style-Column-Selection"; this package enables vertical text selection:

a screencast depicting usage of a text editor in which the user selects a vertical column segment of the text, and is able to write content on multiple lines simultaneously

Git Client

Each student is expected to achieve proficiency using a Git client of choice. By the end of the semester, students should strive to be interfacing with Git via the Git command-line utility, however students originally unfamiliar with Git may optionally start by using a Git GUI Application like GitHub Desktop and slowly transition to the Git command-line utility.

Python

Each student is expected to achieve proficiency running Python scripts via the Python command-line utility and managing Python packages using the Pip command-line utility.

Operations

Collaboration (GitHub)

All course materials exist in the course GitHub repository. Over the course of the semester, students will be expected to submit assignments and projects using a personal GitHub account. Any student who would like to keep these academic activities private may use an anonymous GitHub account not associated with his or her identity.

FYI: Student GitHub usernames are expected to differ from NYU-related usernames.

Students should expect to view the course materials online, and may "clone" or download the repository on a periodic basis to access course materials offline.

Additionally, to submit assignments and projects over the course of the semester, students will be expected to "fork" the repository, keep their forks up-to-date, and submit "pull requests" as instructed by the professor.

Communication (Slack)

All students should join the course Slack team at the beginning of the semester when invited by the professor. All course communications will be directed to members of the #2335 channel. Students may optionally join the #2335-dev channel to subscribe to a feed of updates to this course repository. The professor may create additional channels to serve assignment-specific purposes or facilitate affinity group communications.

REFERENCE: Emoji Cheatsheet ๐Ÿ˜ƒ

NYU Stern MediaSite

Audio-visual class recordings are accessible in real-time and on-demand through NYU Stern's MediaSite platform. Links to these videos are also posted to the #mediasite channel on Slack.

Non-Stern students should be able to access the MediaSite recordings after activating their Stern accounts at start.stern.nyu.edu. Any students having issues either activating their Stern accounts or accessing MediaSite recordings should contact the Stern Help Desk at [email protected].

Calendar

The Calendar provides a high-level overview of the dates and times when this class meets. It reflects the most up-to-date course scheduling information, including class times, instructor office hours, holidays, and more.

Schedule

The Schedule lists specific topics and technologies in focus during each class. The schedule is tentative and may change to reflect actual pace of instruction. In the event of a schedule change, the professor will send an announcement via NYU Classes. See the Announcements directory for copies of those announcements.

Policies

All members of the learning community agree to abide by the Policies described herein.

nyu-info-2335-201706's People

Contributors

adriandahlin avatar aeg486 avatar alpineghost avatar asad8855 avatar bja282 avatar danmikus avatar ecdodd avatar hk1936 avatar hl1221 avatar jalberts530 avatar joelstell avatar jrn223 avatar jwildeman-1 avatar jwkern05 avatar lilyyyyyyyyy avatar lkc9015 avatar marinapy avatar mavisli7 avatar maxfurman1 avatar mquarato avatar mz888 avatar ptroncoso avatar rjzap avatar rnigam87 avatar ryguy469 avatar s2t2 avatar srw390 avatar sternww avatar swanm89 avatar tadub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nyu-info-2335-201706's Issues

GIFs are hard to follow

The GIFs are hard to follow, so I'd appreciate a sample output of the project outputs that is easier to follow. - a student

Discussion Notes

Feedback from a student timesheet:

Are there any slides or handouts to go along with class lectures? It was a little challenging to know what to take notes on.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.