MCS 260 Intro to Computer Science Spring 2022

Challenge four Due Friday, April 29 by 11:59pm

For this final mission you’ll create a mission of your individual selecting!

1 Basic necessities

1.1 Should use course matters.

Your mission should be designed to contain a few of the matters from MCS 260, and an inventory of such matters should be included along with your proposal.

1.2 Have to be testable.

With handbook testing of many pupil tasks by a single teacher, it is necessary that the method of testing of your mission is easy and clearly defined. Testing should not contain the creation of customized information information or different time-consuming preliminary steps. In case your program requires these, pattern enter information ought to be included along with your submission.

1.three Have to be documented.

The following part describes necessities for the supply code of your mission. As well as to these require- ments, your mission should embody a file README.txt that describes the mission in no less than as a lot element because the proposal, and which paperwork the way it ought to be examined. This final level is extraordinarily essential:

If README.txt is lacking, or if I learn README.txt and can’t determine how to use your program relatively rapidly, there will probably be a big grading penalty.

A very good litmus check for whether or not your README.txt is sweet can be: For those who gave your mission to another person within the course, may they determine how to use it simply by studying README.txt? It might be a good suggestion to really do that! (In contrast to earlier tasks the place everybody was engaged on an identical job, on this case, asking another person to attempt your program is appropriate.)

It’s acceptable to embody extra documentation, akin to a tutorial or reference handbook. You should be the only writer of the documentation. It mustn’t consist primarily of quotations from

different sources, and any quotations current ought to be cited.

1.four Should not rely on particular traits of your laptop.

It should be attainable to check your mission on any platform (Home windows/Mac/Linux). This system’s operation should not rely on any system-specific particulars akin to the precise working system model, the person identify, or the identify of the listing by which this system is run.

1.5 Should solely modify information in present listing.

Your program should not alter or write any information outdoors of the present working listing when this system is run, until a filename is supplied as enter to your program that specifies one other location.

1.6 No exterior modules with out approval.

Your program could not import any modules aside from these included with the Python customary library until that is indicated in your proposal and accredited.

College of Illinois at Chicago web page 1

MCS 260 Intro to Computer Science Spring 2022

1.7 Not a normal train.

Some programming tasks (e.g. write a tic-tac-toe recreation) are so usually assigned in introductory programs that a whole bunch of options and plenty of associated dialogue might be discovered on-line. For those who suggest certainly one of these “customary” matters, you may be requested to select one other subject or revise your proposal considerably. Mainly, if an thought reveals up prominently in an online seek for one thing like “Python newbie mission concepts”, it should most likely not be acceptable.

1.eight Restricted overlap with different college students.

In case your proposal is considerably comparable to that of one other pupil in MCS 260 who submitted their proposal earlier than you submitted yours, you may be requested to make adjustments. The purpose is for every pupil to have a novel mission subject.

Observe that most of the pattern matters listed under enable for a lot of totally different proposals to be derived from them, relying on the way you fill within the particulars.

1.9 Restricted file dimension.

The whole dimension of the submission to Gradescope should not exceed 10MiB. If there are bigger information information related to your mission, they need to be publicly accessible on the web, and you must embody directions for the way to receive them within the mission documentation.

1.10 We enable mostly-documentation tasks centered on a brand new subject.

You may suggest a mission that focuses totally on studying a brand new subject in Python programming, for instance, a module from the usual library that we don’t cowl in MCS 260. If that is your plan, you must point out this within the proposal type, and while you submit your mission it ought to embody:

� An outline in about 300-500 phrases of what you realized in regards to the module/function in README.txt.

� A textual content file EXERCISES.txt that accommodates no less than three programming workout routines that might be ap- propriate to assign to somebody studying this subject.

� A foremost program options.py that accommodates options to the workout routines in a type that permits all of them to be run, and which stories on the outcomes by printing to the terminal.

2 Supply code specification

This part describes how your program should be written and submitted. Your submission should comprise a README.txt file assembly the necessities of subsection 1.three. Your submission should comprise no less than one Python supply file. All Python supply information in your mission

will need to have the extension .py. You could select the identify of your foremost program, and of any modules you create within the mission. Every Python supply file you submit should start with a normal header, which consists of a file-level

docstring adopted by:

� The next remark line, verbatim: # MCS 260 Spring 2022 Challenge four

� A remark line consisting of your full identify

� A remark line starting with # Declaration:, after which containing a full sentence that claims, in your individual phrases, that you’re the only writer of this system you’re submitting and that you simply adopted the foundations from the course syllabus in getting ready it. (This half can span a number of strains.)

College of Illinois at Chicago web page 2

MCS 260 Intro to Computer Science Spring 2022

Right here is an instance of an appropriate begin of a supply file for a mission submitted by a pupil named Srinivasa Ramanujan:

“””Digital machine that runs 6502 meeting code””” # MCS 260 Spring 2022 Challenge four # Srinivasa Ramanujan # Declaration: I, Srinivasa Ramanujan, am the only writer of this code, which # was developed in accordance with the foundations within the course syllabus.

Your supply code will probably be evaluated on the premise of readability. You might be anticipated to use descriptive variable names for an important variables (e.g. credit score as opposed to c). Single-letter names are permissible for the variable of a for loop.

Feedback ought to be included at any time when the intent of a line shouldn’t be instantly obvious. Feedback on each line can be extreme, however it’s anticipated that this mission would require many descriptive feedback. Judging the right remark density entails a component of subjectivity. If you’re not sure about whether or not your code has sufficient feedback, simply ask. (You may ask about this by submitting your code to Gradescope after which emailing the trainer, or by together with supply code instantly in an electronic mail to the trainer.)

Each remark within the supply information you submit ought to encompass explanatory textual content. Don’t use feedback to disable code that isn’t used; as an alternative, take away such code earlier than submitting.

Within the assessment of your supply code, my potential to perceive the best way your code works is essential. It’s theoretically attainable to write a particularly difficult program that performs a easy job appropriately however which is not possible for a human to perceive. Within the code assessment scoring, code that could be very tough to perceive could also be topic to a penalty. If you’re not sure in regards to the stage of understandability of your code, ask.

three No collaboration or use of exterior sources As with each different mission in MCS 260, Challenge four is topic to the foundations set out within the syllabus. Which means that any program you intend to create for Challenge four should be completely your individual work, and you have to not give or settle for help of any variety besides from course employees. Particularly, utilizing code tailored from on-line sources is forbidden. It’s acceptable to use books and on-line sources to be taught new abilities and methods on this mission, particularly in case you suggest a mission involving matters not coated in MCS 260. Studying how to do one thing is kind of totally different from discovering code that does one thing and pasting it into your mission, and these are typically straightforward to distinguish when reviewing submissions. However if you’re in any respect not sure about whether or not a sure means of utilizing a useful resource is permitted or not, ask earlier than continuing.

Violations of the foundations within the MCS 260 syllabus will probably be referred to the Dean of College students workplace for disciplinary proceedings.

four Challenge seeds Here’s a record of some “seeds” for tasks that you can broaden and develop right into a proposal. You might be free (and inspired!) to pursue concepts not on this record. You might be additionally free to modify any facet of certainly one of these concepts while you create your proposal (so long as it meets the foundations in part 1).

1. Recipe multiplier / unit converter — A program that reads the components for a cooking recipe from a textual content file, with strains like “11 ozpowdered bhut jolokia chilies” or “1.5 c butter” after which, upon request, does any of this stuff: (1) Convert from US/imperial items (cup, ounce, pound,…) to metric items (ml, g, …), (2) Convert from metric to US/imperial items, (three) Multiply the recipe portions by a given float (e.g. double or halve).

College of Illinois at Chicago web page three

MCS 260 Intro to Computer Science Spring 2022

2. Interactive fiction — A recreation based mostly on keyboard enter that prints an outline of your present location and allows you to sort instructions like “north” to stroll north, “get laser” to choose up an object referred to as “laser”, “open tank” to launch the sharks, and so forth.. It ought to be attainable to win the sport by reaching a sure goal, akin to reaching a specified location, discovering a specified object, or one thing else.

three. Submitting system — A program to catalog a group (e.g. of books), storing its information in a file (e.g. CSV). This system would use a keyboard interface and provide instructions to find (search), print, modify, and delete information. The search command ought to enable looking for textual content contained in a specified subject, e.g. discover all books whose title accommodates “shark”.

four. Expanded textual content to HTML — A utility to convert textual content to HTML.

5. Todo record — A program that maintains an inventory of duties with non-compulsory due dates. It may well show duties within the order added, or so as of how quickly they’re due. It helps including or eradicating duties, or altering the deadline for a job. The duty record is saved in a file. (The dealing with of dates and instances on this mission will probably be one of many trickier elements.)

6. Open information Assessment — Use public information units from a supply such because the Chicago Knowledge Portal, the Illinois Knowledge Portal, information.gov, or a federal company. Write packages to extract helpful data from these information units and show or put it aside in a handy format. Doc precisely the place you downloaded the datasets, and what instructions are used to course of each. Instance: Checklist the road names of Chicago so as of lowering numbers of parking tickets issued in 2018. Doc what you realized out of your Assessment of the information.

7. Random textual content — This system accepts an enter textual content file which ought to be a really massive doc written in a pure language (e.g. English). A novel from Challenge Gutenberg can be a very good begin. It then produces a bunch of “random” textual content the place the probability of any two phrases showing subsequent to one another is comparable to the enter file (however the place the precise phrases are chosen randomly). This output textual content will probably be meaningless, however at a fast look it’d appear to be actual prose. (This mission requires some studying or data of likelihood and statistics.)

eight. Python supply stats — A program that reads a single Python supply file and prints some statistics in regards to the contents, together with the variety of strains that aren’t clean and never completely feedback (true “supply strains”), the variety of perform definitions, variety of perform calls, the common and most line size, and so forth.. You possibly can use the common expression module to seek for perform definitions, or find out about parsing Python supply in Python utilizing the ast module.

9. Easy spell checker — Discover and use a public area English glossary to make a easy spell checker. It ought to learn a given textual content file (whose identify is a command line argument) and print any strains that seem to comprise misspelled phrases. It’s going to then immediate the person to sort a alternative phrase, or allow them to press Enter to hold the present spelling. The consequence ought to be written to a brand new file. Work to make this system good about detecting what a ”phrase” is, in order that it ignores punctuation and mathematical expressions.

10. Discover massive information — Recursively search by way of a listing specified on the command line for information after which print an inventory of all information present in order of accelerating dimension. For each, additionally point out a share of the overall dimension of all information discovered that it accounts for. Additionally report on all of the directories discovered within the search, indicating the overall dimension of every listing’s contents (the sum of sizes of all information it accommodates), with directories listed so as of accelerating dimension. Additionally enable the person to specify a minimal dimension (e.g. as a second command line argument) in order that no gadgets smaller than this theshold are printed. Examine os.stat() to learn the way to get the dimensions of a file.

College of Illinois at Chicago web page four

MCS 260 Intro to Computer Science Spring 2022

11. Chase simulation — Create a program that may simulate two forms of robots that transfer on a 30×30 sq. grid. Chaser robots can transfer one sq. in every time step. A single Goal robotic can transfer two squares in every time step. Every Chaser is aware of the situation of the Goal robotic. The Goal robotic is aware of the situation of all of the Chasers. Program every robotic sort with a technique to both search the Goal robotic (for Chasers) or to evade Chasers (for the Goal). When run, this system reveals a diagram of the present state by printing a grid of characters to the display. Urgent Enter advances time and prints the brand new state. The simulation ends if the Goal is caught by a Chaser.

12. Language flashcards — A program for studying vocabulary in one other language that reads a user-supplied information file of corresponding phrase pairs (with strains like “Frühstück=breakfast”) after which selects phrases at random to ask the person to translate. The person’s success price on every phrase is tracked and saved to a file. The random phrase choice mustn’t use a uniform distribution. As a substitute, it ought to favor phrases the person beforehand bought incorrect and de-emphasize phrases the person has a excessive success price with.

13. Internet current worth calculator — Construct a instrument for analyzing projected revenue/loss information for an organization bearing in mind inflation. On the command line, the person supplies an enter file identify and an inventory of estimated charges of inflation for the following few years. The file ought to comprise an inventory of estimated earnings (optimistic numbers) or losses (destructive numbers), with every line corresponding to one 12 months. This system then computes and prints the online current worth of the earnings stream. (Observe: Requires data or studying of the idea of web current worth!)

14. Private expense tracker — A easy program for monitoring private earnings and bills. It shops information in a JSON file, and when run prompts the person for instructions. Instructions can specify spending (with quantity, class, and non-compulsory date) or earnings to be recorded, or can ask for a abstract of spending and earnings for the final month, 12 months, or different time interval. Such a abstract would point out spending in every class and complete spending, every in absolute numbers and as a fraction of earnings for a similar interval. (Observe: Dealing with dates/instances will probably be a tough a part of this mission.)

15. Faux code typist — A program that lets an actor who doesn’t know Python seem to be typing Python code within the terminal for cinematic functions. First, learn the way to detect particular person key presses within the terminal in Home windows or Linux. Then, make a program that may enable the person to sort rubbish textual content (random letters) on the keyboard and have good Python supply code present up on the display. One character of supply code ought to seem for every key pressed. The code displayed ought to come from some pre-loaded pattern code information which are written by you, are supplied as examples in MCS 260, or are within the public area.

16. Location guessing recreation — A one-player recreation shows a grid utilizing textual content printed to the terminal. Every sq. within the grid may comprise an impediment (a sinkhole, an enemy, and so forth.) and the person is allowed to check places by coming into coordinates. The sport supplies some suggestions about every guess, akin to the space to an impediment, the variety of close by obstacles, or one thing else. The following time the grid is printed, it additionally displays what the participant has realized in regards to the contents of the grid squares. You may decide the very best win/loss logic, based mostly on what seems to be enjoyable; examples: (1) Should find an impediment inside a hard and fast variety of strikes to win; (2) Should keep away from all obstacles and discover all different squares to win; (three) After a restricted variety of strikes, the variety of obstacles discovered is the rating.

17. Textual content to LATEX — This mission is appropriate for college students who know (or need to be taught) the LATEX doc preparation language. It consists of a program that converts textual content to LATEX with Help for variable substitution, feedback, and bullet lists.

College of Illinois at Chicago web page 5

MCS 260 Intro to Computer Science Spring 2022

18. Javascript Obfuscator — That is for college students who know or need to be taught Javascript. This program will take a Javascript file and convert variable names and user-created code into random strings in an try to make the code much less readable to a shopper. It’s going to make certain the random string names are all legitimate in Javascript and correctly modified in all places.

19. Nerdle recreation support — Comparable to Challenge three the place we created a Tkinter GUI to support a person in fixing the each day Wordle, you may create a Tkinter GUI to support a person in fixing the each day Nerdle.

5 Components thought-about in assessment

This part describes the principle elements that may affect how your mission is graded.

5.1 Can I determine what to do?

By studying README.txt, can I simply decide how to use your program and what it does?

5.2 Does it work?

Does this system do what’s promised within the documentation?

5.three Does it comply with the foundations?

part 1 and part 2 comprise a lot of guidelines that apply to this task. A submission that violates any of those guidelines won’t obtain full credit score.

5.four Matter protection (and bonus)

A mission that makes use of quite a lot of ideas from the course, particularly ones coated after the due date of Challenge 2, will probably be seen favorably. Which means that the remainder of the mission doesn’t want to be as advanced or polished to earn full credit score.

At a minimal, the mission should use the ideas within the accredited proposal so as to get full credit score.

5.5 Supply readability

Is the supply code well-organized, with descriptive variable names, feedback, and a docstring for each file, class, and performance?

5.6 Documentation readability

Is the documentation written in full sentences? Does it make sense, and provides a helpful abstract of what the mission is about and the way the included Python code can be utilized?

5.7 Additional documentation bonus

As talked about earlier, some tasks could focus totally on documentation and workout routines a few subject we didn’t cowl in MCS 260.

However for different tasks that concentrate on writing a program, if the mission consists of quite a lot of high-quality documentation (past simply the fundamental README.txt that’s required), then I’ll enable the remainder of the mission to be much less advanced and nonetheless earn full credit score.

College of Illinois at Chicago web page 6

https://nerdlegame.com/
MCS 260 Intro to Computer Science Spring 2022

5.eight Use of superior options bonus

There are specific ideas in MCS 260 that rookies generally shrink back from. For those who use these extensively, then I’ll enable the remainder of the mission to be much less advanced or much less polished and nonetheless earn full credit score.

Making in depth and efficient use of those ideas can have a big impact:

� Object-oriented programming

� Group into modules

� Checks included with the supply (e.g. utilizing pytest)

Making in depth and efficient use of those ideas can have a reasonable impact:

� Common expressions

� Checklist and dictionary comprehensions

5.9 Originality bonus

A mission thought that isn’t based mostly on one of many solutions on this doc, and never comparable to a normal programming instance, will probably be rewarded by permitting the remainder of the mission to be much less advanced and nonetheless earn full credit score.

5.10 Resuable module bonus

A mission that features a module containing no less than four capabilities that, as a gaggle, look like they’d most likely be helpful in different packages will probably be rewarded by permitting the remainder of the mission to be much less advanced and nonetheless earn full credit score.

5.11 Proposal Due Date and Grading

Whereas the ultimate mission submission is due on April 29, your proposal is due by April 11 at 11:59pm. You’ll submit your proposal utilizing the Google type posted in Blackboard. The proposal itself is value 10% of your mission four grade. It doesn’t have to be lengthy, but it surely ought to at minimal describe the fundamental concepts/duties, the MCS 260 matters it should cowl, any modules it’d use, and roughly the way you suppose you may get it to work. This proposal should be accredited by me earlier than the top of the day on April 11 to earn the 10%. Subsequently, it’s extremely really helpful that you simply don’t wait till April 11 to submit your proposal in case adjustments are vital.

College of Illinois at Chicago web page 7

Basic necessities
Should use course matters.
Have to be testable.
Have to be documented.
Should not rely on particular traits of your laptop.
Should solely modify information in present listing.
No exterior modules with out approval.
Not a normal train.
Restricted overlap with different college students.
Restricted file dimension.
We enable mostly-documentation tasks centered on a brand new subject.
Supply code specification
No collaboration or use of exterior sources
Challenge seeds
Components thought-about in assessment
Can I determine what to do?
Does it work?
Does it comply with the foundations?
Matter protection (and bonus)
Supply readability
Documentation readability
Additional documentation bonus
Use of superior options bonus
Originality bonus
Resuable module bonus
Proposal Due Date and Grading

————–

Spring 2022 MCS 260 Intro to Computer Science

Challenge four is due by 11:59 p.m. on Friday, April 29.

For this final mission you’ll create a mission of your individual selecting!

1 Basic necessities

1.1 Should use course matters.

Your mission should be designed to contain a few of the matters from MCS 260, and an inventory of such matters should be included along with your proposal.

1.2 Have to be testable.

With handbook testing of many pupil tasks by a single teacher, it is necessary that the method of testing of your mission is easy and clearly defined. Testing should not contain the creation of customized information information or different time-consuming preliminary steps. In case your program requires these, pattern enter information ought to be included along with your submission.

1.three Should

Published by
Write
View all posts