MCS 260 Intro to Computer Science Spring 2022

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

For this final undertaking you’ll create a undertaking of your personal selecting!

1 Basic necessities

1.1 Should use course subjects.

Your undertaking have to be designed to contain a few of the subjects from MCS 260, and an inventory of such subjects have to be included along with your proposal.

1.2 Have to be testable.

With guide testing of many scholar initiatives by a single teacher, it can be crucial that the method of testing of your undertaking is simple and clearly defined. Testing should not contain the creation of customized information recordsdata or different time-consuming preliminary steps. In case your program requires these, pattern enter recordsdata needs to be included along with your submission.

1.three Have to be documented.

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

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

A great litmus take a look at for whether or not your README.txt is nice could be: In the event you gave your undertaking to another person within the course, might they work out how to use it simply by studying README.txt? It might be a good suggestion to really do that! (In contrast to earlier initiatives the place everybody was engaged on an analogous process, on this case, asking another person to strive your program is suitable.)

It’s acceptable to embody further documentation, akin to a tutorial or reference guide. You have to be the only creator of the documentation. It shouldn’t consist primarily of quotations from

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

1.four Should not rely upon particular traits of your pc.

It have to be doable to take a look at your undertaking on any platform (Home windows/Mac/Linux). This system’s operation should not rely upon any system-specific particulars akin to the precise working system model, the person title, or the title of the listing wherein this system is run.

1.5 Should solely modify recordsdata in present listing.

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

1.6 No exterior modules with out approval.

Your program might not import any modules apart from these included with the Python commonplace library until that is indicated in your proposal and authorized.

College of Illinois at Chicago web page 1

MCS 260 Intro to Computer Science Spring 2022

1.7 Not an ordinary train.

Some programming initiatives (e.g. write a tic-tac-toe recreation) are so typically assigned in introductory programs that a whole bunch of options and plenty of associated dialogue might be discovered on-line. In the event you suggest considered one of these “commonplace” subjects, you may be requested to select one other matter or revise your proposal considerably. Mainly, if an thought reveals up prominently in an online seek for one thing like “Python newbie undertaking concepts”, it would in all probability not be acceptable.

1.eight Restricted overlap with different college students.

In case your proposal is considerably related to that of one other scholar in MCS 260 who submitted their proposal earlier than you submitted yours, you may be requested to make modifications. The aim is for every scholar to have a novel undertaking matter.

Notice that most of the pattern subjects 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 recordsdata related to your undertaking, they need to be publicly obtainable on the web, and you need to embody directions for the way to receive them within the undertaking documentation.

1.10 We enable mostly-documentation initiatives targeted on a brand new matter.

You’ll be able to suggest a undertaking that focuses totally on studying a brand new matter 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 need to point out this within the proposal kind, and whenever you submit your undertaking it ought to embody:

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

� A textual content file EXERCISES.txt that comprises a minimum of three programming workout routines that might be ap- propriate to assign to somebody studying this matter.

� A principal program options.py that comprises options to the workout routines in a kind 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 have to be written and submitted. Your submission should include a README.txt file assembly the necessities of subsection 1.three. Your submission should include a minimum of one Python supply file. All Python supply recordsdata in your undertaking

will need to have the extension .py. It’s possible you’ll select the title of your principal program, and of any modules you create within the undertaking. Every Python supply file you submit should start with an ordinary 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 title

� A remark line starting with # Declaration:, after which containing a full sentence that claims, in your personal phrases, that you’re the only creator of this system you might be submitting and that you just adopted the principles from the course syllabus in making ready it. (This half can span a number of traces.)

College of Illinois at Chicago web page 2

MCS 260 Intro to Computer Science Spring 2022

Right here is an instance of a suitable begin of a supply file for a undertaking submitted by a scholar 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 creator of this code, which # was developed in accordance with the principles within the course syllabus.

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

Feedback needs to be included at any time when the intent of a line just isn’t instantly obvious. Feedback on each line could be extreme, however it’s anticipated that this undertaking would require many descriptive feedback. Judging the right remark density includes a component of subjectivity. In case you are not sure about whether or not your code has sufficient feedback, simply ask. (You’ll be able to ask about this by submitting your code to Gradescope after which emailing the trainer, or by together with supply code immediately in an e mail to the trainer.)

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

Within the evaluate of your supply code, my potential to perceive the way in which your code works is essential. It’s theoretically doable to write a particularly sophisticated program that performs a easy process accurately however which is not possible for a human to perceive. Within the code evaluate scoring, code that could be very troublesome to perceive could also be topic to a penalty. In case you are not sure in regards to the degree of understandability of your code, ask.

three No collaboration or use of exterior assets As with each different undertaking in MCS 260, Challenge four is topic to the principles set out within the syllabus. Which means any program you plan to create for Challenge four have to be totally your personal work, and it’s essential to not give or settle for help of any sort besides from course employees. Particularly, utilizing code tailored from on-line assets is forbidden. It’s acceptable to use books and on-line assets to be taught new expertise and strategies on this undertaking, particularly if you happen to suggest a undertaking involving subjects not coated in MCS 260. Studying how to do one thing is sort of totally different from discovering code that does one thing and pasting it into your undertaking, and these are usually straightforward to distinguish when reviewing submissions. However if you’re in any respect not sure about whether or not a sure method of utilizing a useful resource is permitted or not, ask earlier than continuing.

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

four Challenge seeds Here’s a checklist of some “seeds” for initiatives that you may increase and develop right into a proposal. You might be free (and inspired!) to pursue concepts not on this checklist. You might be additionally free to modify any facet of considered one of these concepts whenever you create your proposal (so long as it meets the principles in part 1).

1. Recipe multiplier / unit converter — A program that reads the elements for a cooking recipe from a textual content file, with traces 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 models (cup, ounce, pound,…) to metric models (ml, g, …), (2) Convert from metric to US/imperial models, (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 known as “laser”, “open tank” to launch the sharks, and so forth.. It needs to be doable to win the sport by attaining 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 set (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 data. The search command ought to enable trying to find textual content contained in a specified subject, e.g. discover all books whose title comprises “shark”.

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

5. Todo checklist — A program that maintains an inventory of duties with elective 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 process. The duty checklist is saved in a file. (The dealing with of dates and instances on this undertaking will likely be one of many trickier elements.)

6. Open information Assessment — Use public information units from a supply such because the Chicago Information Portal, the Illinois Information Portal, information.gov, or a federal company. Write applications to extract helpful info 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 every one. Instance: Listing 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 needs to be a really massive doc written in a pure language (e.g. English). A novel from Challenge Gutenberg could be begin. It then produces a bunch of “random” textual content the place the probability of any two phrases showing subsequent to one another is analogous to the enter file (however the place the precise phrases are chosen randomly). This output textual content will likely be meaningless, however at a fast look it’d appear to be actual prose. (This undertaking requires some studying or information 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 traces that aren’t clean and never totally feedback (true “supply traces”), the variety of operate definitions, variety of operate calls, the typical and most line size, and so forth.. You could possibly use the common expression module to seek for operate 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 thesaurus to make a easy spell checker. It ought to learn a given textual content file (whose title is a command line argument) and print any traces that seem to include misspelled phrases. It’s going to then immediate the person to sort a substitute phrase, or allow them to press Enter to maintain the present spelling. The outcome needs 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 recordsdata — Recursively search by means of a listing specified on the command line for recordsdata after which print an inventory of all recordsdata present in order of accelerating dimension. For every one, additionally point out a proportion of the overall dimension of all recordsdata 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 recordsdata it comprises), 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 objects smaller than this theshold are printed. Examine os.stat() to learn the way to get the scale 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 kinds 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 placement of the Goal robotic. The Goal robotic is aware of the placement 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 screen. 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 traces like “Frühstück=breakfast”) after which selects phrases at random to ask the person to translate. The person’s success charge on every phrase is tracked and saved to a file. The random phrase choice shouldn’t use a uniform distribution. As an alternative, it ought to favor phrases the person beforehand bought incorrect and de-emphasize phrases the person has a excessive success charge 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 gives an enter file title and an inventory of estimated charges of inflation for the subsequent few years. The file ought to include an inventory of estimated income (optimistic numbers) or losses (unfavourable numbers), with every line corresponding to one yr. This system then computes and prints the online current worth of the earnings stream. (Notice: Requires information or studying of the idea of internet 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 elective date) or earnings to be recorded, or can ask for a abstract of spending and earnings for the final month, yr, or different time interval. Such a abstract would point out spending in every class and whole spending, every in absolute numbers and as a fraction of earnings for a similar interval. (Notice: Dealing with dates/instances will likely be a tough a part of this undertaking.)

15. Pretend 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 can enable the person to sort rubbish textual content (random letters) on the keyboard and have good Python supply code present up on the display screen. One character of supply code ought to seem for every key pressed. The code displayed ought to come from some pre-loaded pattern code recordsdata which might be written by you, are offered 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 would possibly include an impediment (a sinkhole, an enemy, and so forth.) and the person is allowed to take a look at places by getting into coordinates. The sport gives some suggestions about every guess, akin to the gap 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’ll be able to decide one of the 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 undertaking 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 consumer. It’s going to make certain the random string names are all legitimate in Javascript and correctly modified in all places.

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

5 Components thought-about in evaluate

This part describes the primary components that can affect how your undertaking is graded.

5.1 Can I work out 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 principles?

part 1 and part 2 include a variety of guidelines that apply to this project. A submission that violates any of those guidelines is not going to obtain full credit score.

5.four Matter protection (and bonus)

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

At a minimal, the undertaking should use the ideas within the authorized 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 undertaking is about and the way the included Python code can be utilized?

5.7 Further documentation bonus

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

However for different initiatives that concentrate on writing a program, if the undertaking contains a whole lot of high-quality documentation (past simply the fundamental README.txt that’s required), then I’ll enable the remainder of the undertaking 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 particular ideas in MCS 260 that novices generally draw back from. In the event you use these extensively, then I’ll enable the remainder of the undertaking to be much less advanced or much less polished and nonetheless earn full credit score.

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

� Object-oriented programming

� Group into modules

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

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

� Common expressions

� Listing and dictionary comprehensions

5.9 Originality bonus

A undertaking thought that isn’t based mostly on one of many recommendations on this doc, and never related to an ordinary programming instance, will likely be rewarded by permitting the remainder of the undertaking to be much less advanced and nonetheless earn full credit score.

5.10 Resuable module bonus

A undertaking that features a module containing a minimum of four capabilities that, as a gaggle, seem to be they might in all probability be helpful in different applications will likely be rewarded by permitting the remainder of the undertaking to be much less advanced and nonetheless earn full credit score.

5.11 Proposal Due Date and Grading

Whereas the ultimate undertaking submission is due on April 29, your proposal is due by April 11 at 11:59pm. You’ll submit your proposal utilizing the Google kind posted in Blackboard. The proposal itself is value 10% of your undertaking four grade. It doesn’t have to be lengthy, however it ought to at minimal describe the fundamental concepts/duties, the MCS 260 subjects it would cowl, any modules it’d use, and roughly the way you assume you will get it to work. This proposal have to be authorized by me earlier than the top of the day on April 11 to earn the 10%. Subsequently, it’s extremely really helpful that you just don’t wait till April 11 to submit your proposal in case modifications are crucial.

College of Illinois at Chicago web page 7

Basic necessities
Should use course subjects.
Have to be testable.
Have to be documented.
Should not rely upon particular traits of your pc.
Should solely modify recordsdata in present listing.
No exterior modules with out approval.
Not an ordinary train.
Restricted overlap with different college students.
Restricted file dimension.
We enable mostly-documentation initiatives targeted on a brand new matter.
Supply code specification
No collaboration or use of exterior assets
Challenge seeds
Components thought-about in evaluate
Can I work out what to do?
Does it work?
Does it comply with the principles?
Matter protection (and bonus)
Supply readability
Documentation readability
Further 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.

You’ll design a undertaking of your alternative for this remaining undertaking!

1 Basic conditions

1.1 Course subjects have to be used.

Your undertaking should embody a few of the subjects coated in MCS 260, and an inventory of such subjects have to be included along with your proposal.

1.2 It has to be testable.

With a single teacher manually testing many scholar initiatives, it’s vital that the testing course of in your undertaking is straightforward and well-explained. Customized information recordsdata or different time-consuming preliminary steps should not be utilized in testing. Pattern enter recordsdata needs to be included along with your submission in case your program requires them.

1.three It’s required

Published by
Write
View all posts