lapluviosilla / cs373-collatz Goto Github PK
View Code? Open in Web Editor NEWCollatz Projects for CS 373 Software Engineering Spring 2014
Collatz Projects for CS 373 Software Engineering Spring 2014
Add basic optimizations discussed in class and get Sphere to accept solution
Implementation
Use assert to check pre-conditions, post-conditions, argument validity, return-value validity, and invariants. Worry about this last, but your program should run as fast as possible and use as little memory as possible.
Implement and write code to get initial tests working.
Before we write implementation and generate acceptance tests, we should write some ourselves
Rename Makefile to makefile
Two of the acceptance tests are incorrect.
2 6 8
5 6 6
Before we calculate max cycle length across a range lets implement a simple function that will allow us to calculate the cycle length of a single number
Submission
Rename "makefile.py" to "makefile".
Fill out the Google Form and submit the ZIP file to Turnin.
There are currently 3 read implementations. We just want one. We also want to make sure we have at least 3 tests for the implementation we choose.
Git Repository
Set up a private Git repository at GitHub, named cs373-collatz.
Download the skeleton, rename the makefile, and use the makefile to confirm that the skeleton code runs as is, both the run harness and the test harness. Make that a completed issue in the issue tracker and commit the code to GitHub
Write acceptance tests before your write the code. When you encounter a bug, write an acceptance test that fails, fix the bug, and confirm that the acceptance test passes. Write an auxiliary program to randomly generate acceptance tests. Create at least 1000 lines of acceptance tests.
We want a simple implementation of collatz before we implement optimizations and cache
We want to at least use a simple cache to make our implementation run faster
Issue Tracker
The GitHub repository comes with an issue tracker.
Create an issue for each of the requirements in this table. Create an issue for each bug or feature, both open and closed. Describe and label each issue adequately. Set a milestone for important commits (e.g. without a cache, with a lazy cache, etc.). Create at least 10 more issues in addition to the requirements in this table.
Complete unit tests for skeleton code.
Write at least an average of 3 unit tests for each function.
Documentation
Use pydoc to document the interfaces.
The above documentation only needs to be generated for Collatz.py.
Comment each function meaningfully. Use comments only if you need to explain the why of a particular implementation.
Choose a coding convention and be consistent. Use good variable names. Write readable code with good indentation, blank lines, and blank spaces.
Get Sphere to accept our solution
Sphere requires a single file to be submitted.
Combine Collatz.py and RunCollatz.py.
This is the file that the grader will submit to Sphere to determine a zero vs. non-zero grade.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.