top of page
Search
kathwien

Homework Introduction to Programming: Learn the Basics of Coding with Python



For the first ten weeks of the Introduction to Programming with Python course, the homework will consist of readings from the textbook, 6-10 short-answer Challenge Problems and auto-graded Python problems, and one graded Python problem per week.




homework introduction to programming




For the first eight weeks of the Intermediate Programming with Python course, the homework will consist of readings from the textbook, 4-8 short-answer Challenge Problems and auto-graded Python problems, and one graded Python problem per week.


Continuation of object-centered design and implementation in C++. Building programs from modules. Data abstractions and classes to implement abstract data types. Static and dynamic memory allocation. Data structure implementation and algorithm efficiency. Lists, tables, stacks, and queues. Templates and generic programming.


I periodically teach an introduction to programming course using Java. I want to give my students some exciting assignments that they can relate to or find interesting. At the very least, I want assignments that make sense and have an internal cohesion (for example, some very bad programming exercises seem contrived just so that you have to use the most recent programming construct covered).


Like most other people who have experience of recruiting and interviewing programmers, it really makes me cringe that this level of tuition is needed at university, but alas, it probably will continue to be needed until schools treat programming as a serious subject on a par with mathematics or sciences


We created quite a few projects with just i/o, functions and conditional operators in school. All done before we learned about object oriented programming. These projects advanced slowly to be more and more difficult. Suffice to say, the 4 hours we had each week weren't nearly sufficient towards the end of the year.


In High School, I took an introductory programming class, and we used Karel J. Robot. It provides a gui for viewing your robot, and has a very basic set of sensors and movement methods which you have to extend in order to make it do interesting stuff. I think its good because robots are easy to understand for people who haven't yet developed a grasp of the difference between software is.


I'm going to be the dissenter here. I think you should give them valid business type-problems to solve not playtoys. If they aren't serious enough to be interested and motivated with the kind of work they will be actually doing as a professional, I'd rather you flunked them out in the intro course. Real work isn't about making cool stuff, it's about meeting the client's needs. I've also seen a lot of people who can;t make the leap between what they learning in a game and using the same techiniques in business programming.


Whereas CS50x itself focuses on computer science more generally as well as programming with C, Python, SQL, and JavaScript, this course, aka CS50P, is entirely focused on programming with Python. You can take CS50P before CS50x, during CS50x, or after CS50x. But for an introduction to computer science itself, you should still take CS50x!


1. Announce the team by submitting the team member names to Canvas, under the HW7_teams discussion board. The team must be formed and announced by Friday, 04/16, 11:59pm2. Add at least one of the extra suggestions. Clearly state at the top of your program what extra suggestion you added.3. The first two lines of comments at the top of your program must list the team members by their full name.4. Both members must submit the homework in their individual Canvas accounts. We will assume that both team members submitted the same files and so only one of the submissions will be graded and both students will get that grade. If you collaborated partly, but at some point you started with different variations, clearly state that at the top of the program. As an extra precaution, if you collaborated in a team but the final solutions have some variations, email the TA as well so that he will be aware of your situation.5. If you work in a team and you fail to acknowledge that (by announcing in Canvas and at writing at the top of your file) you will be reported for collusion.


There will be one homework assignment each week. Unless notifiedotherwise, the homework is due in one week after it is assigned. Pleaseemail your homework as plain text to nzhou (AT) brooklyn (DOT) cuny (DOT) edu.Please write your name, student ID, and the number of the assignment inthe Subject of the email. Sample answers to the programming questionswill be given and selected questions will be reviewed in class. Therewill be a one-point deduction for each missing homework or latesubmitted homework. The total deduction will not exceed 10 points.


In CS 61A, we are interested in teaching you about programming, not about howto use one particular programming language. We consider a series of techniquesfor managing program complexity, such as functional programming andobject-oriented programming.


CS 61A primarily uses the Python 3 programming language. Python is a popularlanguage in both industry and academia. It is also particularly well-suited tothe task of exploring the topics taught in this course. It is an open-sourcelanguage developed by a large volunteer community that prides itself on thediversity of its contributors.


Mastery of a particular programming language is a very useful side effect of CS61A. However, our goal is not to dictate what language you use in your futureendeavors. Instead, our hope is that once you have learned the conceptsinvolved in programming, you will find that picking up a new programminglanguage is but a few days' work. In fact, you will be asked to learn at leasttwo other languages, Scheme and SQL, during the course.


There is no formal programming-related prerequisite for CS 61A, but taking thecourse without any prior programming experience is typically very challenging.Students who take the course without prior programming experience typicallymust work substantially harder to master the material and tend to receive lowerfinal grades in the course. Most CS 61A students have had significant priorprogramming experience. A typical background includes at least one courseequivalent to CS 10 or a score of 3 or above on the AP Computer Science A exam.


To build programming experience before taking CS 61A, we recommend that youfirst take a class that introduces you to programming. The most appropriateclass within the Berkeley CS department is CS 10, described below, but you mayalso find similar classes at Berkeley extension or in online courses. Feel freeto contact course staff if you are not sure what's best.


CS 10: The Beauty and Joy of Computing is an introductorycomputer science course which is similar to CS 61A but moves at a friendlierpace. CS 10 covers variables, functions, recursion, algorithmic complexity,object-oriented programming, and many other relevant CS 61A topics, with theoverall content overlap being about 50%. CS 10 starts the semester in Snap!, ablock-based programming language which allows students to focus on conceptualunderstanding without worrying about unfamiliar syntax. After the midterm, thecourse transitions into Python (the primary language 61A uses), applying thesame concepts you already learned to the new language, as well as introducingnew concepts more relevant to Python. CS 10 also covers big ideas and socialimplications that go beyond programming, showing you the beauty and joy ofcomputing.


Data 8: The Foundations of Data Science is an introductionto data science designed to be accessible and useful for all Berkeley students.This course was built for students without prior programming experience. Itteaches students to program in Python 3, but covers a much smaller subset ofthe language than CS 61A. Most of the course focuses on data processing andstatistical techniques that are central to using computers to answer questionsabout the world. Taking Data 8 before 61A is a good way to gain priorprogramming experience, but taking CS 10 is a better way.


CS 88: Computational Structures in DataScience is an introduction to programming andcomputing that has more than 50% concept overlap with CS 61A. It is designedfor students interested in data science who want to expand their knowledge ofprogramming and program structures beyond what is covered in Data 8. Studentswho complete CS 88 can either proceed directly to CS 61B or subsequently takeCS 61A, a path that offers a substantial amount of review because of the hightopic overlap between the courses.


Info 206A: Introduction to Programming andComputation is a 2-unitintroduction to programming that overlaps with many topics in the first eightweeks of CS 61A. Professor Hany Farid has placed all of the videos andexercises for this courseonline, and theseare an excellent resource to supplement CS 61A.


First-year students and students with limited prior programming experience arestrongly encouraged to choose a regular section. Working on programming-basedlab assignments with helpful course staff in the room and solving discussionquestions in small groups are great ways to learn.


Reading others' homework or project solution to a problem before you solve thatproblem on your own will incur large point penalties. You are free to discussthe problems with others beforehand, but you must write your own solutions. Theexception to this rule is that you may share code with your project partner.


Below are links to the lectures for that week. All other material will be provided via D2L (homework, projects, labs, etc.). Please be sure to read the lab (but not start it) prior to attending a synchronous lab section. 2ff7e9595c


1 view0 comments

Recent Posts

See All

Tamanho do download do atomic heart xbox

Tamanho de download do Atomic Heart Xbox: tudo o que você precisa saber Se você é fã de RPGs de ação com um toque de ficção científica,...

Comments


bottom of page