Course Description:
A first course in computer science, focusing on the practice of problem solving, in the context of interesting software applications. Problem formulation, problem decomposition, procedural formulation of problem solution. Three Hours. One Hour lab. One Hour Tutorial.
Textbook: Computer Science Illuminated by Nell Dale and John Lewis
Course Breakdown:
Assignment 1: 10%
Assignment 2: 10%
Midterm 1: 15%
Midterm 2: 15%
Final Exam: 50%
Topics According to Syllabus:- Digital Computers and Layers of Abstraction
- Number Systems and Data Representation
- Computer Languages
- Problem Solving and Algorithm Design
- Abstraction and Modularization
- Machine Level Programming
- Operating Systems
- File Systems
- Information Systems
- Limitations of Computing
Assignments:
This course used the programming language, Python. If you're familiar with programming, this course will be easy for you. However, if you're new to programming, like I was, you'll find python simple enough to learn, but a considerable challenge when it came to do assignments. The assignments gave you 3 or 4 problems each to solve using python. The problems required you to learn an extremely large amount of coding in very little time. Presumably, that is why this course has lab and tutorial time.
Tutorials & Labs:
The labs and tutorials were essentially useless. For two hours, the TAs took arbitrary problems and solved it for you. Essentially, the purpose of this was the learn python coding. However, I personally didn't find it very helpful.
Midterms:
The midterms were very simple. So simple, most people didn't do well on them. The midterms both consisted of some binary, flowchart and an algorithm. The second one contained some python code, you have to decipher. Because flowcharts nor algorithms weren't covered in an organized manner, if you didn't know how to draw a flowchart or write an algorithm from beforehand, it was difficult to do well. Both midterms were conducted during class time for only an hour.
Final Exam:
The final exam was nothing like the midterm nor the assignments. It contained no python code, one flowchart and the rest were questions focused on the textbook material, all short answer. The questions were not difficult, but personally, I was thrown off by the fact that the stuff we spent all year learning was no where on the final exam.
Final Thoughts:
The course overall is very demanding. It requires you to learn a lot in a short period of time. If you have a programming background, you'll be fine. However, this course is anything but a beginner course.