Comments (6)
Hey there! These are great choices. I agree that many of the standard
exercise problems involve a lot of branchy string manipulation work or
require libraries for functionality like Georgian dates. After implementing
these it may make sense to add new problems that suit lower level
programming. For instance we could add some of the exercises from K&R C.
Regarding nucleotide count, your strategy would be fine, or the caller
could just specify a memory location at which it expects the callee to
write four ints. If we maxed each count out at 256 we could even cram it
all into one register :)
On Tuesday, August 30, 2016, mpriestman [email protected] wrote:
Issue to just discuss possible problems that could be added to the MIPS
track. Looking down the list of available ones from other languages (
http://exercism.io/languages/mips/contribute), a lot seem just too hard
for assembly (a lot involve string or data structure manipulation).
However, I think there are still some that could make the transition to
assembly. The following could be good candidates:
- difference-of-squares - seems pretty straightforward, single integer
input, single integer output.- nucleotide-count - simple input, but needs to return 4 integer
values. Could use hi and lo parts of v0 and v1?- atbash-cipher - single string input, fixed size string output.
- luhn - could make for an interesting challenge, string input,
boolean result.- pangram - pretty similar to the isogram problem.
- binary-search - could be fun too.
Could also try to come up with some new exercises just for the MIPS track
that are more "assembly-like".Any thoughts?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#13, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG6z-Ldh956TKCwD--x-3TU79YuqKRMks5qlLOvgaJpZM4JxDzm
.
from mips.
Another interesting problem is bracket push. This appears to be a hard
problem to solve in any language, until the student decides to use a stack,
at which point it would be straightforward even in asm. Similarly once the
student knows how to implement a circular buffer or deque, a problem that
requires breadth first traversal is just as approachable in asm as in a
high level language. Something like the bucket problem could be a good
example.
On Wednesday, August 31, 2016, Ozan Onay [email protected] wrote:
Hey there! These are great choices. I agree that many of the standard
exercise problems involve a lot of branchy string manipulation work or
require libraries for functionality like Georgian dates. After implementing
these it may make sense to add new problems that suit lower level
programming. For instance we could add some of the exercises from K&R C.Regarding nucleotide count, your strategy would be fine, or the caller
could just specify a memory location at which it expects the callee to
write four ints. If we maxed each count out at 256 we could even cram it
all into one register :)On Tuesday, August 30, 2016, mpriestman <[email protected]
javascript:_e(%7B%7D,'cvml','[email protected]');> wrote:Issue to just discuss possible problems that could be added to the MIPS
track. Looking down the list of available ones from other languages (
http://exercism.io/languages/mips/contribute), a lot seem just too hard
for assembly (a lot involve string or data structure manipulation).
However, I think there are still some that could make the transition to
assembly. The following could be good candidates:
- difference-of-squares - seems pretty straightforward, single
integer input, single integer output.- nucleotide-count - simple input, but needs to return 4 integer
values. Could use hi and lo parts of v0 and v1?- atbash-cipher - single string input, fixed size string output.
- luhn - could make for an interesting challenge, string input,
boolean result.- pangram - pretty similar to the isogram problem.
- binary-search - could be fun too.
Could also try to come up with some new exercises just for the MIPS track
that are more "assembly-like".Any thoughts?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#13, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG6z-Ldh956TKCwD--x-3TU79YuqKRMks5qlLOvgaJpZM4JxDzm
.
from mips.
When I implemented the raindrops
problem, I ended up writing a version of a couple of C functions (itoa
, and strcat
). As you mentioned above, these in themselves could make good exercises; pretty small and self-contained, easy to test, and once the student is happy with them, then could open the door to using them in more complicated solutions.
Might only want a couple of interesting ones though. For example, is strlen
too easy? strdup
is also pretty straightforward, but would involve a memory allocation. itoa
is pretty meaty, and there are a few ways to solve it too.
from mips.
I like your idea of putting four results into a single register for the nucleotide count problem. A good example of packing smaller values into a large value.
from mips.
I've put in a PR for difference-of-squares
, and having "a bash" at atbash-cipher
.
from mips.
Certain exercises that require string computation seem doable, such as anagram
or potentially bob
.
In regards to dates, assembly has 4 input registers-- month, day, and year could be passed in through different registers. Assuming the response is either a string or integer, I think a problem like gigasecond
would be useful (and a good application of an implementation of a "switch/case statement").
Edit: Thinking more about gigasecond and time in general, it seems like too much of a hassle to implement (no current time, no simple way to return more than two values)
from mips.
Related Issues (20)
- Extract track-specific help instructions from `config/exercise_readme.go.tmpl`
- Extract track-specific test instructions from `config/exercise_readme.go.tmpl`
- Check docs are up to date
- atbash-cipher: runner treats $a1 as callee-saved register HOT 1
- Add grains practice exercise HOT 1
- Add luhn practice exercise HOT 1
- Add resistor-color practice exercise HOT 1
- Add rotational-cipher practice exercise HOT 1
- triangle: missing 2 test cases HOT 1
- Add all-your-base practice exercise HOT 1
- Add nucleotide-count practice exercise HOT 1
- Building a training set of tags for mips HOT 21
- Misnamed register in the Grains exercise HOT 2
- Documentation: point to resource listing available instructions HOT 4
- Build Representer and Analyzer HOT 1
- Update status of track
- Update status of Concept Exercises HOT 1
- Launch Tracker 🔴
- Add `hello-world` exercise HOT 1
- Add language blurb HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mips.