CSCI 2133
CSCI 2133 – Rapid Programming Techniques for Innovation
Week 1 – About Course Projects
CSCI 2133 Rapid Programming Techniques for Innovation Week 1 - - PowerPoint PPT Presentation
CSCI 2133 Rapid Programming Techniques for Innovation Week 1 About Course Projects CSCI 2133 2 Previous Lecture Course Introduction logistics and administrivia textbook and main references course calendar overview
CSCI 2133
Week 1 – About Course Projects
CSCI 2133
– logistics and administrivia – textbook and main references – course calendar overview – evaluation scheme – academic integrity policy – culture of respect policy – tentative course schedule
2
CSCI 2133
particularly in a start-up environment; this means: – building a substantial and useful system – working in a team – having (hopefully) real users
pattern
3
CSCI 2133
4
CSCI 2133
and services: – Google, Facebook, Twitter, Amazon, Instagram, LinkedIn, . .. – email, chat, search, collaboration, maps, mobile apps, . .. – standalone applications are okay, but may be challenging to recruit beta testers
much simpler and feasible for a term project
5
CSCI 2133
(www.paulgraham.com): “The way to get startup ideas is not to think of startup
have yourself. The very best startup ideas tend to have three things in common: they’re something the founders themselves want, that they themselves can build, and that few others realize are worth doing. . .
6
CSCI 2133
an MVP (Minimal Viable Product)
courses, so your product must be much simpler than popular examples
7
CSCI 2133
beginning of February), the use of SVN or git will be required for team work and to keep instructor in the loop
second part of the term.
8
CSCI 2133
9
CSCI 2133
10
CSCI 2133
11
CSCI 2133
short meeting)
elevator speech
CSCI 2133
Presenting Strong Case for Your Project
Different approaches to think about your project:
investor during 60min elevator ride
put on your landing web page
client
model and similar
employer 1 3
CSCI 2133
Requirements, Design, Implementation, Testing, Maintenance
Specifications Requirements Architectural design Detailed design Coding Integration Testing Delivery
1 4
CSCI 2133
Credit to article of Existek ek (Full-cycle software development company)
https://medium.com/existek/sdlc-models-explained-agile-waterfall-v-shaped-iterative-spiral-e3f012f390c5 15
CSCI 2133
16
CSCI 2133
17
CSCI 2133
18
CSCI 2133
19
CSCI 2133
20
CSCI 2133
21
CSCI 2133
22
CSCI 2133
23
CSCI 2133
– follows the “big bang” model ofdevelopment
be able to declare success and walk away
2 4
CSCI 2133
25
CSCI 2133
26
CSCI 2133
A Less Formal Approach to Development Process
– general description, sketches, scenarios, screenshots, rough diagrams
– precise ideas and requirements; understanding that once requirements are set it will be costly to change them
– overall structure diagrams: components and connections, subsystems, interactions and interfaces, languages, systems, connectivity, data availability
– make prototype and iterate, get real users asap, prepare tests as you go 2 7
CSCI 2133
components
semantics
component can be changed without affecting the rest of the system
2 8
CSCI 2133
Design Choice Examples
– browser, desktop, phone, game console, API, mobile . . . – HTML/CSS/LESS, Javascript, Flash, Jquery, Bootstrap, Swing, . ..
– C, Java, C++, PHP , Python, Perl, Javascript, Ruby, Objective C, C# . . .
– bluenose, own machine, Google App Engine, Amazon AWS, Heroku, . ..
– MySQL, SQLite, Postgres, MongoDB, Redis, plain files, . ..
– custom text format, JSON, XML, REST, . ..
– Django, Flask, Rails, Express, Google Web Toolkit, . ..
– JetBrain, emacs, Eclipse, XCode, Visual Studio, . ..
2 9
CSCI 2133
such as open source
implementaion work
described in the documentation at the end
system, but there should inevitably be some original ideas about your system when compared to an existing system
3
CSCI 2133
Some Relevant Topics and Tools
– Standalone app – Web client: HTML, CSS, JavaScript, Flash, . ..
Tier 2; “Wire” format – formatted text, JSON, REST, XML, SOAP , . ..
– Java, Python, PHP , Perl, Ruby, Node.js, C++, C, Objective-C, Go,
Tier 3; “Plumbing” – TCP/IP , authentication, . ..
– MySQL, SQLite, Postgres, MongoDB, Redis, flat files, . ..
– own server, bluenose, cloud solutions, AWS, Heroku, Google App Engine, . .. 3 1
CSCI 2133
Some Relevant Topics and Tools (2)
– NodeJs, jQuery, Dojo, YUI, . ..
– Swing, TkInter (Python), jQueryUI, Bootstrap, Angular, . ..
– GWT, Django, Flask, Zend, Rails, Cocoa, Express, . ..
– shell and tools (emacs, make, . . . ), Eclipse, Xcode, . . .
– Github, SVN, Git, Mercurial, Bazaar, . . . 3 2
CSCI 2133
3 3
CSCI 2133
– different ways to develop and compile (shell, emacs, Eclipse, JGrasp, . . . )
3 4
CSCI 2133
– different ways to develop and compile (shell, emacs, Eclipse, JGrasp, . . . )
– a.k.a., CLI — Command Line Interface – Login to the bluenose server (blusenose.cs.dal.ca) – work with a shell, e.g., bash, basic Unix commands – file system commands (cd, ls, mkdir, chmod, chown, . . . ) – C compilation: gcc – Java compilation and execution: javac, java – basic use of make, maybe svn?, even git? – use of regular expressions (to be refreshed) – other: learn touch typing 3 5
CSCI 2133
W32), following the GNU convention whereby Windows is shortened as "W32".[4][5] The numbers were dropped in order to avoid the implication that it would be limited to producing 32-bit binaries. Colin Peters authored the initial release in 1998, consisting only of a Cygwin port of GCC.[6][7] Jan-Jaap van der Heijden created a Windows-native port of GCC and added binutils and make.[6][7] Mumit Khan later took over development, adding more Windows-specific features to the package, including the Windows system headers by Anders Norlander.[6][7] In 2000, the project was moved to SourceForge in order to solicit more assistance from the community and centralize its development.[6][7]
36
CSCI 2133
37
CSCI 2133
38
CSCI 2133