CPS 2390 Computer Organization & Architecture
Fall 2023
Project Title: Assembly Language Programming Challenge
Requirements:
1. Topic Selection: Students can choose from a list of predefined topics or propose their own Assembly language project idea. The project topics should be focused on real-world applications and challenges, such as implementing algorithms, optimizing code, or simulating hardware components.
2. Assembly Language: Students must write their programs in Assembly language, and it should be running on LC-3.
3. Functionality: The project should demonstrate the students’ understanding of basic Assembly language concepts, such as data movement, arithmetic operations, conditional branching, and looping. The project should perform. a useful or interesting task, such as a simple calculator, a text-based game, or a file encryption/decryption utility.
4. User Interface (Optional): Depending on the complexity of the project, students can implement a simple text-based user interface to interact with their Assembly program. This could involve taking user input, displaying output, and providing clear instructions.
5. Code Documentation: Students are required to provide clear and concise comments within their Assembly code to explain the purpose and functionality of each segment. Properly documented code is essential for understanding and grading the project.
6. Optimization: Encourage students to optimize their Assembly code for performance and efficiency. This could involve minimizing the number of instructions, reducing memory usage, and improving execution speed.
7. Testing: Students should thoroughly test their Assembly programs to ensure they function correctly and handle edge cases appropriately. Test cases should be provided along with the project submission.
8. Project Report: Alongside the code, students must submit a project report that includes an explanation of the chosen topic, the design decisions made, challenges faced, and how they addressed those challenges. They should also reflect on what they learned from the project.
9. Presentation: Students will be required to give a short presentation showcasing their project to the class. This presentation should cover the project’s functionality, design, implementation, challenges, and outcomes.
Evaluation Criteria:
Projects will be evaluated based on the following criteria:
1. Functionality: Does the program perform. the intended task accurately?
2. Code Quality: Is the code well-structured, properly documented, and easy to follow?
3. Creativity: Does the project demonstrate innovative thinking or unique approaches to problem-solving?
4. Optimization: Has the student made efforts to optimize their code for efficiency?
5. Testing: Has the student thoroughly tested the program and provided relevant test cases?
6. Project Report: Is the project report well-written and does it provide insight into the student’s thought process and learning outcomes?
7. Presentation: Is the presentation clear, organized, and effectively communicates the key aspects of the project?
list of predefined topics:
1. Simple Calculator: Implement a basic calculator that can perform. arithmetic operations like addition, subtraction, multiplication, and division. The program should take user input for operands and the operator, and then display the result.
2. Number Conversion Tool: Create a tool that converts numbers between different bases, such as decimal to binary, binary to hexadecimal, etc. The program should handle both input and output in various bases.
3. Text Encryption/Decryption: Develop a program that can encrypt and decrypt text using a simple algorithm, like a Caesar cipher. Users should be able to provide the text and a key, and the program should output the encrypted or decrypted message.
4. Digital Clock: Build a digital clock that displays the current time in a text-based format. The clock should update in real-time and handle hours, minutes, and seconds.
5. File Manipulation: Create a program that reads data from a file, performs some manipulation (e.g., reversing the content, converting uppercase to lowercase), and then writes the modified data back to the file.
6. Text-Based Game: Develop a text-based game, such as a maze solver, a guessing game, or a simple role-playing game. The game should involve user interaction and decision-making.
7. Sorting Algorithm Implementation: Implement a sorting algorithm (e.g., bubble sort, insertion sort) in Assembly language. Compare the performance of your algorithm with built-in sorting functions.
8. Matrix Operations: Write a program that performs matrix operations like addition, multiplication, and transposition. The program should support matrices of different sizes.
9. Bit Manipulation Tasks: Create a program that performs various bit manipulation tasks, such as setting, clearing, or toggling specific bits in a binary number.
10. Basic Operating System Commands: Design a simple command-line interface that mimics basic operating system commands like listing files, creating directories, copying files, and navigating the file system.
11. ASCII Art Generator: Build a program that converts a text input into ASCII art. Users should be able to specify the font style. and size.
12. Palindrome Checker: Develop a program that checks whether a given string is a palindrome (reads the same forwards and backwards) or not.
13. Prime Number Generator: Write a program that generates prime numbers within a specified range using algorithms like the Sieve of Eratosthenes.
14. Data Compression/Decompression: Create a tool that can compress and decompress data using a simple compression algorithm, like Run-Length Encoding.
15. Digital Alarm Clock: Build a digital alarm clock that allows users to set alarms, snooze, and turn off alarms.
Reviews
There are no reviews yet.