All assignments are due at 8:00 PM on the due date. There is a late penalty of 7.5% per-day for up to a maximum of 2 days. All assignments will be posted at least 2 weeks prior to its due date. We will have a mix of both written and programming assignments. All assignments will be posted on this page. All assignments should be submitted using Canvas.
|
|
Released |
Due Date: Multiple deliverables in case of HW3 |
|
Exercises
[Extra Credit] |
21-Jan |
|
Jan 29 |
Feb 5 |
Feb 12 |
|
HW1 |
28-Jan |
19-Feb |
|
|
|
|
HW2 |
13-Feb |
12-Mar |
|
|
|
|
HW3
|
6-Mar |
|
26-Mar |
2-Apr |
9-Apr |
|
HW4 |
9-Apr |
7-May |
|
|
|
|
Extra Credit |
5-Feb |
26-Feb |
|
|
|
|
Generative AI Use and Consequences
Use of AI tools such as ChatGPT, Claude, Github Co-Pilot, and/or their ilk to write or “improve” your code or written work at *any* stage is prohibited; this includes the ideation phase. Turning in code or an essay written by generative AI tools will be treated as turning in work created by someone else, namely an act of plagiarism and/or cheating.
Ultimately, you will get out of the class what you put in. Simply copying and pasting code from generative AI tools is neither ethical nor does it contribute to your learning experience. There are multiple reasons why these generative AI tools are detrimental to your learning experience:
- They rob you of the ability to think and learn the concepts for yourself. Solving problems is an essential step to gaining a solid understanding of the material.
- You will struggle with the in-classroom quizzes and exams where you will not have access to these tools.
- While we acknowledge that these tools are likely to become an important part of a software engineer's workflow in the future, you are much more likely to use these tools in an effective manner if you already have expertise in the relevant technical topics. Developing such expertise requires putting in the effort to learn these topics without the assistance of these tools.
- These tools are prone to generating imperfect or even incorrect solutions, so trusting them blindly can lead to bad consequences.
|
|
Programming Exercises: A set of programming exercises in Java
The objective of this assignment is to help you hone your programming skills in a few aspects of Java. This programming exercise is Optional & Extra Credit. There are 15 programming exercises, and each accounts for 0.1 points of extra-credit towards your cumulative course grade. In total, this assignment will account for 1.5 points in extra-credit towards your final course grade. The assignments are due in batches as outlined in the due dates on Canvas. Additional details available here.
Due Dates:
- 01 through 05 (i.e. 5 programming exercises) are due on Wednesday, January 29th, @ 8:00 pm MT
- 06 through 10 (i.e. 5 programming exercises) are due on Wednesday, February 5th, @ 8:00 pm MT
- 11 through 15 (i.e. 5 programming exercises) are due on Wednesday, February 12th, @ 8:00 pm MT
Assignment 1: Working with numbering systems, bitwise operations, and common binary operations
Working with numbering systems, bitwise operations, and common binary operations
The objective of this assignment is to get you comfortable with numbering systems, bitwise operations, and common binary operations. Additional details available here.
Release date: 28-Jan
Due Date:19-Feb
Assignment 2: Profiling the impact of Caching, Memory accesses, and Choice of Data Structures
The objective of this assignment is to demonstrate the effects of caching, pre-fetching, the memory hierarchy, and how different data structures affect accessing memory. The programming assignment should be implemented in Java. You are required to work alone on this assignment. The assignment accounts for 7.5% towards your cumulative course grade. Additional details are available here.
Released: 13-Feb
Due Date: 12-March
Assignment 3: Networking Assignment -- experimentation with TCP/IP and Sockets
The objective of this assignment is to get you to be comfortable coding in a networked setting where you need to manage the underlying communications between nodes. All communications will be based on TCP and you will be using the sockets to implement this assignment. The programming assignment should be implemented in Java. You are required to work alone on this assignment. The assignment accounts for 7.5% towards your cumulative course grade. Additional details are available here.
Released: 6-Mar
Deliverable-1 Due: 26-Mar
Deliverable-2 Due: 2-Apr
Deliverable-3 Due: 9-Apr
Helpful Infospaces Videos:
https://infospaces.cs.colostate.edu/watch.php?id=175
https://infospaces.cs.colostate.edu/watch.php?id=176
Assignment 4: Storage Systems Assignment -- implementing BSTs and B-Trees
The objective of this assignment is to reinforce concepts we learned about BSTs and B Trees. The programming assignment should be implemented in Java. You are required to work alone on this assignment. The assignment accounts for 7.5% towards your cumulative course grade. Additional details are available here.
Released: 9-Apr
Due: 7-May
Extra-Credit Assignment : Working with Packages
The objective of this assignment is to get you comfortable with packages and their related file structures. The programming assignment should be implemented in Java. You are required to work alone on this assignment. This assignment will contribute a maximum of 3% of extra credit towards your final grade. There is no late-submission window for this assignment. Additional details available here.
Released: 5-Feb
Due: 26-Feb
|