Corning Community College CSCS2700 Data Communications Course Wiki Page ======Projects====== ======Hello, World!====== Since our getting started plan is learning some python, generally the first project that you do is making the "Hello, World!" program, that is probably where we should start :P. ======Morse Code Fun (Mcf0) Due October 17th====== **morse code sender/receiver:** Alright, so at this point we should all have a decent understanding of how python works... So that means we can now start some dank projects bbbooii'ss!! The first project that we shall try is the morse code sender/receiver... **What is morse code?** The International Morse Code encodes the ISO basic Latin alphabet, some extra Latin letters, the Arabic numerals and a small set of punctuation and procedural signals (prosigns) as standardized sequences of short and long signals called "dots" and "dashes", or "dits" and "dahs", as in amateur radio practice. ^^^ totally not copied from Wikipedia... Basically it's a way of communication through sound using long and short sounds called dits(short sounds) and dahs(long sounds). **How much functionality should the program have?** The program shall be able to recognize these letters: * **[A-Z]** * **Comma: ---...** * **Equals: -...-** * **Period (also called full stop): .-.-.-** * **Question mark: ..--..** * **AA new line (\n): .-.-** * **AR end of message (EOF): .-.-.** **Well okay what does this program need to do?** First thing we need to come up with a way to express our dits and dahs (that way we can use each others programs to encode/decode morse code). **We shall use "." for dits, and "-" for dahs. For spaces how about we use " | "**... Open to suggestions on that :P. So our encoder should be able to convert text into the dits and dahs, and our decoder should convert dits and dahs to text. encoder ex: * $ ./encode <<< "encoder" --> . -. -.-. --- -.. . .-. .-.- .-.-. * $ ./encode <<< "enc oder" --> . -. -.-. | --- -.. . .-. .-.- .-.-. * $ ./encode <<< "hello" --> .... . .-.. .-.. --- .-.- .-.-. decode ex: * $ ./decode «< “. -. -.-. --- -.. . .-. .-.- .-.-." --> encoder * $ ./decode «< “. -. -.-. | --- -.. . .-. .-.- .-.-." --> enc oder * $ ./encode <<< "hello" | ./decode --> hello **Should we have the program accept the augments in argv, or use input?** Quote from our lord: "Accepting input from STDIN, sending results to STDOUT. That way we'll know if we have that logic in place, before we explore any other communication scenarios." **If one desires, there is an opportunity to get some nice testing scripts up and going** Yet another quote from our lord again: "Also, there are opportunities to write evaluation scripts and whatnot to really give our encoders/decoders a stress test to make sure they process information accordingly." ======EOCE====== Well looks like the EOCE'S have been launched! May everyone do their best on it! Good luck to all :D ======URLs====== Pythons built in functions: [[https://www.programiz.com/python-programming/methods/built-in]] Pythons list methods: [[https://www.programiz.com/python-programming/methods/list]] Pythons string methods: [[https://www.programiz.com/python-programming/methods/string]] ======Notes====== How does one start programming on lab46? There might be a different way, but this is what i'm doing... So if you add this line to the file that you intend to program in, then you're all good to start programming in thee dank python. **#!/usr/bin/python3**, so all you would need to do is make the file executable, and run it whenever you want to execute your program. Just a note, we have decided to use python3 for our programming adventures, so make sure that you are using that, and not python2. Another way to run a Python Program is to simply include the command python before your script. python helloWorld.py ======Other====== I don't know if you want this posted in this section. Not to jump ahead of the "Hello, World!" starter, but i found a site with some python projects that are pretty cool. They are ranked based on their difficulty but also have the solutions on the right side. So if you get stuck you can see how they were done. https://www.practicepython.org/ Current things to look into * selection structures * Compound statements * if/else statements