Introduction to computing principles and programming practices with an emphasis on the design, construction and implementation of problem solutions use of software tools.
This course has three high-level learning objectives. At the conclusion of this course, you will be able to:
- Describe and apply the fundamental thought processes and theories of computing.
- Write command-line computer programs using fundamental principles of programming.
- Apply those abilities to a real target domain.
Students are required to have access to a computer following the required computer ownership rules: https://catalog.gatech.edu/policies/computer-ownership/
A webcam and microphone are required as well.
Module Content: 50%
Extra Credit: 5%
Quizzes: 12.5% (4 at 2.5% each)
Tests: 10% (4 at 10% each)
There is no attendance policy.
Every Student is expected to read, understand and abide by the Georgia Tech Academic Honor Code. Academic misconduct is taken very seriously in this class.
Exercises and problem sets are collaborative. You are encouraged to work with your classmates to talk through problems, debug code, explain a concept, etc. However, the work submitted for a grade must be your own. You should not copy answers directly from other students, nor should you copy any code directly from other students.
Similarly, you should not send any code you write to your classmates. You can show it off either side-by-side or via teleconference, but it should not be shared in its copyable text format. When asking questions about your code on the course forum, we ask that you post screenshots of your code along with its output rather than copying the code itself. This makes it slightly more difficult to directly borrow from someone else's work, as well as often helps us answer your question by seeing its output and referencing specific line numbers.
Additionally, you should not copy/paste questions from this course to any third-party web sites, such as Stack Overflow. You are welcome to use these resources for additional support, but when doing so, you should have already attempted the problem and be able to explain what your goal and issue are in your own words. You should not copy the entire problem description and ask, "Can anyone help with this?" Instead, you should attempt the problem and be prepared to ask a question like, "I'm trying to reverse this string, but right now the string never seems to get changed. What's wrong? Here's my current code:" Not only is this restriction necessary to maintain academic honesty, but it is also good programming practice: you will often find that in the process of explaining where you're stuck, you solve the issue yourself.
These policies apply straightforwardly to collaboration with AI agents such as ChatGPT and Github Copilot as well. We encourage use of these tools as assistants when working on exercises and problem sets, but you should make sure you are using them as assistants. You should learn from these tools, then let that improved understanding show on the problems you complete. You should never send the entirety of a problem description to an AI assistant, nor should you copy the response you receive back into your own submission. Instead, you should attempt problems yourself, ask AI assistants for help if you are stuck, learn from their responses, and recreate those responses in your own work. You can ensure you are using AI assistance effectively by following these two heuristics: (a) never Copy (literally, Ctrl/Cmd+C copy) anything you receive from an AI assistant, and (b) do not have your own code open while interacting with the assistants. If you follow these two heuristics, you guarantee that any assistance you receive will contribute to your own understanding, which you can then demonstrate on the assignments.
No collaboration is permitted during quizzes and tests. You may not interact with anyone during the quizzes and tests: not in person, not via phone, not via the computer. During quizzes and tests, you should only access the quiz or test; no other resources. Our proctoring service will automatically flag any violations of this policy.
To summarize:
- You are permitted and encouraged to seek help from others on course exercises and problem sets, but you may not copy anyone else's code into your own submission.
- You are permitted and encouraged to help your friends and classmates, but you may not send them your actual code in an easily copyable format.
- You are permitted to seek additional support from third-party services like Stack Overflow and other sites, but you may not copy the actual assignment instructions into your question; instead, you must present your request in your own words.
- During quizzes and tests, you may not consult any other resources or interact with any other people via any mechanism.
This is a Core IMPACTS course that is part of the Institutional Priority area.
Core IMPACTS refers to the core curriculum, which provides students with essential knowledge in foundational academic areas. This course will help master course content, and support students’ broad academic and career goals.
This course should direct students toward a broad Orienting Question:
- How does my institution help me to navigate the world?
Completion of this course should enable students to meet the following Learning Outcome:
- Students will demonstrate the ability to think critically and solve problems related to academic priorities at their institution.
Course content, activities and exercises in this course should help students develop the following Career-Ready Competencies:
- Critical Thinking
- Teamwork
- Time Management