Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Dr Brian Mitchell, University Teacher  This website is a work in progress Browse Brian’s Bookshelf Please put the books back where you found them and switch the light off when you’re done Projects General Information Preliminary Contact from Propective Students I am happy for students from any Computer Science degree to email me about a project. But there are conditions, so please do study this ‘book’ carefully and please do as it asks. Put ‘I 💓 email’ in the Test question of the contact form. Me as your supervisor: You can expect (many) (usually long) emails. I like writing. I also like being interested in your project — expect (long) emails about this. I like attention to detail — expect (long) emails about that too. I was brought up with ‘if it’s worth doing, it’s worth doing properly’ so I am always seeking ways to make improvements. I will make more suggestions for enhancements to your project than you can fit in the time available because that is what my project supervisors did to me — and I am all the better for it. Fictitious yet somehow entirely plausible quotes from imaginary former students: He taught me an engaging writing style. Paige Turner He gave me plenty of momentum throughout my project. Stan Still He helped us overcome obstacles and produce a project that opened doors. Barb Dwyer & Dawn Hobbs As an NLP expert, he knows a lot about trees. Tim Burr He does have a sense of humour but he wasn't kidding about the emails. Jo King You as my project student: You need to enjoy reading emails and feel comfortable writing regular replies with honest updates including problems and mistakes. I expect you to use plain text for information, version control for everything, and LaTeX on Overleaf for your report (shared with me). Text file manipulation skills, especially from the command-line, are always handy. You need to (learn to) use appropriate tools properly especially an editor or IDE. You must also look constantly for improvements, expansions, and increased usability. Early on you need a reasonable idea how you will define and evaluate ‘success’ in your project. Ideally you should use an end-to-end approach instead of top-down or bottom-up. You need contingencies for when things go better (or worse) than expected and you find yourself expanding (or shrinking) your goals. When initiating contact, please include information on how much (or little) the project fits your existing skills, experience, and knowledge. There’s no need to be shy about gaps in your knowledge or be embarrassed about any courses you’ve struggled with: this is all about learning and improving. It’s less about how good you are now and more about how much better you can be. Please tell me what you expect to learn and improve from undertaking your project including any transferrable skills. Your initial email will invariably be too short, or worse too vague, or worst of all too long — yes, I know… So ideally send me the second or third draft. To demonstrate you have read these instructions, click the fifth word in this paragraph to reveal a code to include at the start of your email to me otherwise I might consider you unsuitable. Other Advice Two of the costliest mistakes students make with projects are spending (far) too much time writing code yet (far) too little time writing the report. You should assume that only the parts of your practical work described clearly in your report will gain marks. A typical major mistake with the report is not telling us what you have done — it is hard for examiners to give marks to something they don’t know you’ve done. Another mistake is telling us what you have done but not what you have learnt. It doesn’t matter that parts of your project did not work: what really matters is showing what you’ve learnt from those problems.¹ Mistakes make the best teachers. ¹ Note that I am ‘allergic’ to the term ‘issue(s)’ in this context so please call a problem ‘a problem.’ I urge you to write the user guide before you code your interface; then code the interface to match the instructions. This greatly increases the usability of the final software. Another trap is trying to solve every problem you encounter, so stick to the project’s main aims. While you will meet problems head-on and defeat them, be prepared to circumvent or simplify some problems. You might even need to adjust the project’s goals. Do your best to have lots of small goals with short deadlines. Build a contingency of about two weeks into your timetable to allow for unexpected yet entirely predictable problems: distractions, anxiety, tiredness, and illness. Never forget: ‘simple’ software simply never is, tools rarely integrate smoothly, and there’s always one more bug. Turn your presentations into PDFs so you can be more confident that they will display as you intend on another computer. Use more graphics and less text in your slides. Read and follow advice from Edward Tufte and Michael Alley. Choose professionally designed fonts that were intended for the exact purpose you want. Check professionally written reviews of fonts by other font designers. If you don’t believe that is important then read the short story by Mark Twain How I Edited an Agricultural Paper Once — it will help if you have a very basic knowledge of agriculture and farming. Learn about colour theory to enhance your designs. Use websites, like those by paint manufacturers, to help create colour-matched designs. Check your results on WebAIM and colour-blindness simulators. Ensure you make multiple regular backups and keep them physically separate in case of flood, fire, or theft. Be careful about putting your work on public-facing websites: assume cloud storage is public. If you are intending to use your own computer for a computationally intensive project, it’s worth replacing the thermal paste on the CPU and GPU. I have had 3 previous project students whose own laptops were damaged or destroyed by overheating from running machine learning experiments that took days or even weeks to complete. 💻🔥   💻🔥   💻🔥 (artist’s impression) Requirements and advice for projects. Student Projects Read Me First 2022 List of Available Undergraduate Projects First read my ‘book’ Read Me First. Project details on these pages supersede information on the official pages because those versions cannot be updated. System for managing Machine Learning data, experiments, and results Pedagogical-based linter and analyser for Java Tool to help students write proper emails Assignment submission checklist generator and checker Tool to visualise command-line programming Interactive instruction sheets Turn program code into English 1 System for managing Machine Learning data, experiments, and results Write an easy-to-install, easy-to-use system for managing data, experiments, and results for Machine Learning projects. This is not really an ML project: it’s an HCI + command-line + technical writing + data management project about creating and documenting a tool to manage data, experiments, and results for a Machine Learning toolkit of your choice, probably Weka or Scikit-Learn. This project requires a high-level of organisational skills. You will need to (learn to) be good at platform-independent command-line programming and GUI programming. Knowledge of statistical testing is useful but not necessary. The completed system must be easy to use, and easily installed without needing a massive tool chain. intuitive, configurable, robust, easily maintained, Code must be suitable for open source publishing though it will remain private. There must be a well-written user guide suitable for someone who is a Machine Learning user but not a Machine Learning expert. 2 Pedagogical-based Java linter + analyser Create a linter for Java suitable for beginners that is based on what teachers currently want their students to concentrate on. Some code smells will be ignored or down-played while others will have a higher severity than usual. The tool needs to be highly configurable, yet easy to reconfigure and use. Ideally it will be an IntelliJ plugin though an easy-to-install, platform-independent command-line tool is ok. There is scope for researching what teachers want to prioritise, allowing for priorities to change. It would be great if it could automatically score (non-)compliance, and track and report the progress of students or an entire class. 3 Email assistant to help students write proper emails (to university staff) The tool, ideally for Thunderbird — although a browser-based or other GUI will do — should help students to write appropriately worded and formatted emails, to university staff, with scope for further scenarios. It is vital that this tool is really easy (and quick) to use and to understand. It must also be highly (and easily) configurable. It is fine for you to consider this project if you feel you really need it yourself. You could also make it work for your first language. The project has scope for conducting research to see what students find difficult or confusing, and to see what different staff would like to receive. 4 Assignment submission checklist generator and checker Create a configurable, intuitive, easily installed platform-independent tool that checks a student’s assignment complies with the assignment’s requirements. This is a project of three main parts: a platform-independent tool that can be distributed with the assignment, a parent tool for creating these checkers, and the all-important user guides. The platform-independent requirements will be tricky but not insurmountable, although you need to make it easy for the user to install the tool without needing a million other things installing separately. The project has scope for researching what a particular lecturer does (not) want students to actually submit. 5 Tool to visualise command-line programming Command-line programming is extremely useful but can be unnecessarily hard for the beginner or novice programmer. A well-designed graphical interface, perhaps browser-based, should be able to help. The aim of this project is to build a tool a beginner or novice programmer can easily install and use to create command-line programs. How elaborate you want these programs to be is up to you. It's fine if you are unfamiliar with command-line programming because you’re creating the tool needed to help you learn. It's also fine if you are already a CLI whizz. 6 Interactive instruction sheets Create a tool that makes ‘smart’ platform-independent interactive instruction sheets that help a user install and configure a tool chain that is specific to the user’s platform. This a project of three main parts: interactive instruction sheets, the tool that makes them, and the user guide. It is hard to assess the exact difficulty of this project — how hard can it be and what could possibly go wrong? — but if you expect it to be tricky you probably won’t be disappointed. The more experience you have with different platforms, tool chains, HCI, and command-line and GUI programming, the easier it should be.🤞 The tool will be fantastically useful if it really works. 7 Turn program code into English This project will turn program code into English. In its simplest form it will verbalise a statement complete with punctuation. You can extend the scope of the project as far as you dare, hence the project difficultly is marked as 'variable.' Essentially the project is (probably) impossible, so it’s not a question of ‘solving’ the problem but seeing how far you can push a heavy rock up a steep slope (in typical Scottish weather). It would be wonderful if you could write this as a JetBrains plugin. Multiple projects are available providing each student tackles a different language. My list of MSc projects. Undergraduate Projects 2022 Software & Reading Worth Considering Software choice is personal. To be a productive Computer Scientist you should be highly fluent with at least one fully configurable editor, at least one IDE, and at least one shell or command-line language. Learn how to use command-line interfaces and learn virtual machines and containerisation. Explore plugins and skins for software to increase functionality. Learn its short-cut keys to increase productivity. Prefer software that respects privacy. Learn how to undelete files and how to avoiding deleting files in the first place. Also learn how to take proper backups of your work and use version control. Use a file compressor that handles modern archives. Write your documents in LaTeX so they look altogether more professional. Investigate high quality free fonts specifically designed for the type of task you want to use them for — see what the creator says. Use proper advice for how to pair fonts. Turn your presentations into PDFs so they are more reliably displayed on someone else’s computer. If you only ever read one Computer Science book, then make it The Pragmatic Programmer by Andrew Hunt and David Thomas. ISBN 978-0-135-95705-9 (2019). At the very least, find an online list of their tips and put some into practice, for example: Tip 25 Keep knowledge in plain text Tip 68 Build end-to-end not top-down or bottom-up. Don’t Make Me Think by Steve Krug. Essential reading for designing interfaces. ISBN 978-0-321-96551-6 (2014). The Design of Everyday Things by Donald Norman. Essential reading for designing. ISBN 978-0-465-06710-7 (1988). The Craft of Scientific Presentations by Michael Alley. ISBN 978-1-4419-8279-7 (2013). Publications on analytical design and visualisation by Edward Tufte. Machine Learning by Tom Mitchell (no relation) is excellent for learning essential concepts. ISBN 978-0-071-15467-3 (2013). Practical Statistics for Medical Research by Douglas G Altman is the perfect guide to learning applied statistics even if you are not using them in medicine. The book is brilliant for learning tests of statistical significance. ISBN 978-1-584-88039-4 (2020). The Mythical Man Month by FP Brooks is a classic for anyone in project management. ISBN 0-201-83595-9 (1995). Some books are worth reading. Software & Reading English Language Advice This book is still being written. Don't worry if you don't understand every word in a lecture: just keep going. It shouldn't be necessary to watch a recording of an entire lecture more than once although you will sometimes need to watch small parts of a lecture multiple times. You can improve your long listening skill by watching English-language films. Watch each film all the way through without stopping. You can use subtitles but they must be in English otherwise you will reading instead of listening. You will probably need to have watched 10–12 films before you really notice an improvement in your long listening ability. Tips for improving your English. English Language Advice Teaching Duties 2021–22 Semester 1: Inf1A Semester 2: Inf1B and IPP My teaching duties for the academic year. Teaching 2021–2022 Website Acknowledgements If you wish to make an apple pie from scratch, you must first invent the universe. Carl Sagan This is my justification for building this website (v 22.1.31, layout by Siqi Su, a former NLP project student) from others’ components, notably: Animated books by Mary Lou Shelf by Tobias Bleckert Lightbulb by Jon Kantner I am still working on this website when I have time — not just the content but also functionality, platforms it works on, realism, and accessibility, all while keeping it intuitive and interesting. I want to make it CSS only but it looks like some JS is inevitable for the books. Suggestions, improvements, and bug-fixes welcome. Colophon Archivo Narrow by Omnibus Type Arvo by Anton Koovit Iosevka by Belleve Invis Merriweather by Sorkin Type Montserrat by Julieta Ulanovsky Raleway by Matt McInerney Rosario by Omnibus Type Acknowledging the others’ work which has been used on this website Website Acknowledgements My Little Black Book Brian Mitchell I am a University Teacher, mainly providing support teaching and behind-the-scenes technical magic. I am an Inclusive Educator certified by The University of Birmingham. If you use traditional British classifications, I am a ‘working class’ academic, a Northerner, and from the 93% of UK university graduates who went to a state school. Both my schools struggled with underfunding but some of my teachers were excellent, inspiring me to be the best teacher I can. I feel truly at home now I’m at Edinburgh University but getting here wasn’t easy. I suffered 7 years of bullying at school for being ‘clever’ and from imposter syndrome as a postgrad for not feeling clever enough, even though I was and I earned my place. After an awful start to my undergrad studies, the rest was great and my only regret that I realised far too late there’s so much more to university than just the studying. My ERASMUS placement was a dream come true. It gave me the utmost respect for anyone studying abroad, especially in a foreign language. My background and skills include: ├─Computer Science │ ├─Artificial Intelligence │ │ ├─Applied Machine Learning │ │ └─Natural Language Processing │ │ ├─Computational Linguistics │ │ │ └─Ambiguity Resolution │ │ ├─Language Engineering │ │ │ └─Named Entity Classification │ │ └─Parsing │ ├─Programming │ ├─Tools │ └─User Interfaces │ ├─Linguistics │ ├─Grammar │ ├─Modern Languages │ └─Technical Writing │ └─Pedagogy ├─Academic English and Study Skills ├─Accessibility └─Computer Aided Learning Brian’s address book About Brian Mitchell